可能であればサム32ビット命令を強制的に生成できますか?gccがサム32ビット命令を生成するようにするには?
int main(void) {
8000280: b480 push {r7}
8000282: b085 sub sp, #20
8000284: af00 add r7, sp, #0
uint32_t a, b, c;
a = 1;
8000286: 2301 movs r3, #1
8000288: 60fb str r3, [r7, #12]
b = 1;
800028a: 2301 movs r3, #1
800028c: 60bb str r3, [r7, #8]
c = a+b;
800028e: 68fa ldr r2, [r7, #12]
8000290: 68bb ldr r3, [r7, #8]
8000292: 4413 add r3, r2
8000294: 607b str r3, [r7, #4]
while (1) ;
8000296: e7fe b.n 8000296 <main+0x16>
しかし、彼らはすべての親指16ビット以下のとおりです。
は、例えば、私が持っています。テストの理由から私は親指の32ビット命令が欲しいです。
私はThumbの全体が16ビット命令を優先すると考えていましたか?おそらく –
。しかし、可能であればサム32の命令を生成したいと思います。 (Cortex M4) – jsmith
私はここでは専門家ではありませんが、私はARMプロセッサを所有していませんが、[私が見つけるガイダンス](http://stackoverflow.com/questions/10638130/what-is-the-arm -thumb-instruction-set)は、あなたが不可能な仕事を追求していることを私にははっきりと見せてくれます。 32ビット命令を発行するには、標準のARM命令セット用にコンパイルするだけです。それが満足できない場合は、*なぜ*あなたがこれをやろうとしているのかを考えてみてください。誰かがあなたにもっと良い回避策を与えるかもしれません。 –