ARM

ARMアセンブラ勉強中(3)

昨日のアセンブラを、もう少し最適化してみたいと思います。

ARMアセンブラ勉強中(2)

前の、RGB565→RGB565の転送を透過転送用functorで組んだルーチンをアセンブラで出力してみると、8ループ展開の内部は次のようになってました。

ARMアセンブラ勉強中

いやね、おかしいとは思ってたんですよ。 ハーフワードの転送をしてると、 ADD r6,r14,r8,LSL #2 LDR r4,[r6,#0] こんな感じの記述が沢山出てくるわけですよ。 なんでLSL #2なんだ?LSL #1の間違いじゃないのか? まあ、ARM様は自分の計り知れない崇高な計算…

Thumbモード(2)

ということでThumbモードを試してみました。 まず、BREWスレによると、#pragmaは使用出来ないみたい……(;´Д`) 実際にやってみましたが出来ませんでした。 というか、Thumbモードでコンパイルするにはarmcc,armcppではなくて、tcc,tcppを使わないといけない…

Thumbモード

今、BREWスレでThumbモードにするとコードサイズが減る、と言う話が出ている。 どうやらコードサイズが30%ほど小さくなるらしい。非常に便利だ。 で、自分もThumbモードで組んでみよう……と思ったんだけど、そもそもどうやってThumbモードにするんだろう? と…

ARMの最適化(2)

今日、ARMのfromELFのリファレンスを見てたんですが、なんと、こいつはアセンブラコードを吐き出してくれるんですよ。 出し方は、 fromelf -c -o <出力ファイル> <ELFファイル>こんな感じです。 QUALCOMM標準のMakefileを使うなら、 $(HEXTOOL) -c -o $(TARGET).asm $(TAR</elfファイル>…

ARMの最適化

ARMの命令は、x86系の命令とは全然違うので、どうやって最適化するのかが全然わかんないです(;´Д`) 例えば、画像の転送をする際に、 for(i=0;ifor(j=0;jこんなのを書いたとしても、ほんとに速度は上がるのだろうか? ARMの命令を見てみたけど、オフセット…

BREWでsingleton(8)

どうやら落ちるのは、ARMのバグではないか、ということらしいです(;´Д`) ということは、今まで自分がやってきた苦労って一体……(;´Д`) こういうバグとかにはあまり触れたくなかったのに(;つД`) しかも、singletonは別に無くても困らないそうです。 …