Apple の llvm-gcc を使用して、インライン アセンブリでコードをコンパイルしています。やりたいことを書きましたが、変数をメモリに書き込み続ける無関係なコマンドが追加されます。なぜこれを行っているのですか?どうすれば停止できますか?
例:
__asm__{
mov r11, [rax]
and r11, 0xff
cmp r11, '\0'
}
になります (「アセンブリ」アシスタント ビューで):
mov 0(%rax), %r11 // correct
movq %r11, -104(%rbp) // no, GCC, obviously wrong
and $255, %r11
movq %r11, -104(%rbp)
cmp $0, %r11
乾杯。