Thumbモード

今、BREWスレでThumbモードにするとコードサイズが減る、と言う話が出ている。
どうやらコードサイズが30%ほど小さくなるらしい。非常に便利だ。


で、自分もThumbモードで組んでみよう……と思ったんだけど、そもそもどうやってThumbモードにするんだろう?


ということで、ARMコンパイラのドキュメントを見てみると、

#pragma thumb

こんだけかよ( ̄□ ̄;)!!


--thumbオプションを付ける方法もあるみたいだけど、ファイルごとにMakefileを書き換えるのは面倒なので#pragmaのほうがよさげ。。


あとはコンパイラオプションに

-apcs /inter

を指定すればいいのかな?



あと、よくわからないけどリンカにも

-strict

を付けた方が良いのかな?
てか、これを付けると、(自分のプログラムはinterworkでコンパイルするとして)nointerworkになってるライブラリ側の関数のアドレスが取得できなくなるのような……。
いや、BREWが使ってるライブラリって、__faddとかの浮動小数点演算ライブラリぐらいか。
さすがにそんなアドレスは取得しないだろうから大丈夫かな。。
追記:
てか、問題なのはnointerwork側からinterworkの関数アドレスを取得することか。
そんなのあり得ないだろうから大丈夫っぽいか。
それに-strictは警告をエラーにするだけなのね(;´Д`)
とりあえず付けておくか……。



今度時間があるときに試してみよっと。