【发布时间】:2019-04-10 17:37:47
【问题描述】:
【问题讨论】:
-
clang 不支持
_emit(至少我不知道)。您可以使用asm关键字获得类似的效果,但我想知道您要达到什么目的。
标签: assembly clang inline-assembly llvm-clang emit
【问题讨论】:
_emit(至少我不知道)。您可以使用asm 关键字获得类似的效果,但我想知道您要达到什么目的。
标签: assembly clang inline-assembly llvm-clang emit
在支持 GNU 扩展的编译器中,不需要单独的 emit 关键字,只需使用 GNU C 内联汇编:
asm(".byte 0x90"); // implicitly asm volatile
或.long 发出一个 32 位常量。
GNU C inline asm 没有被解析来检测clobbers或任何东西,所以你可以asm("nop");
如果您想使用修改寄存器的指令,您通常需要使用 GNU C 扩展内联汇编(输出/输入/clobbers)告诉编译器。见https://stackoverflow.com/tags/inline-assembly/info。
【讨论】: