ARM Thumb 命令セット gcc サポート ひとまずまとめ †いろいろつついてみて,わかったことをひとまずまとめてみる. Thumb Interwork と Super Interworking †これら 2 つの枠組みの性格としては,おそらく
というようなところなのだろう. 根本的な問題 †Thumb Interwork, Super Interworking に共通する問題として C プログラムの場合,ARM モードと Thumb モードの指定はファイル単位でしか行えない,という制限がある. 例えばデータ処理で
コンパイルしたい,なんてことは十分有り得るだろう. で,このようなプログラムの場合,(規模にもよるが)前処理と本処理は1つのソースファイルにまとめるのが普通である. が,gcc の縛りにより,1 つのソースファイル中で任意に ARM モード・Thumb モードの切り替えはできない. フルスクラッチでプログラムを起こす場合は「しょうがないから ARM モードの部分と Thumb モードの部分でソースを分けよう」なんてこともできるが,既存のプログラムを移植するような場合は…ちょっと考えたくない. ソースファイル内で例えば #pragma ARM とかのコンパイラ指令でモードを行き来できたりすると,移植はしやすいんだけどなぁ. |