什么是破坏者?
What is a clobber?
Clang TargetInfo
有一个名为 getClobbers
的方法:
Returns a string of target-specific clobbers, in LLVM format.
那么,什么是破坏者?
被破坏的寄存器是被破坏的寄存器,即被内联汇编程序以不可预测的方式修改。这通常发生在您需要临时工时。注册或使用恰好将某些寄存器修改为 by-product.
的特定指令
通常程序员会显式声明寄存器,这些寄存器会被他的内联 asm 代码破坏,但有些可能被默认认为是垃圾,这就是 getClobbers
发挥作用的地方。
getClobbers
returns 大多数目标的空结果。在 MIPS 上,GCC 历来没有在生成的代码中使用 </code>,因此大多数程序员都懒得将其声明为已破坏。为了降低可移植性成本,LLVM 认为 <code>
总是在内联 asm 中被破坏。另一个例子是 GCC 在 i386 和 x86_64 目标上 considered to be always clobbered by inline asm 的算术标志寄存器 (cc)。
Clang TargetInfo
有一个名为 getClobbers
的方法:
Returns a string of target-specific clobbers, in LLVM format.
那么,什么是破坏者?
被破坏的寄存器是被破坏的寄存器,即被内联汇编程序以不可预测的方式修改。这通常发生在您需要临时工时。注册或使用恰好将某些寄存器修改为 by-product.
的特定指令通常程序员会显式声明寄存器,这些寄存器会被他的内联 asm 代码破坏,但有些可能被默认认为是垃圾,这就是 getClobbers
发挥作用的地方。
getClobbers
returns 大多数目标的空结果。在 MIPS 上,GCC 历来没有在生成的代码中使用 </code>,因此大多数程序员都懒得将其声明为已破坏。为了降低可移植性成本,LLVM 认为 <code>
总是在内联 asm 中被破坏。另一个例子是 GCC 在 i386 和 x86_64 目标上 considered to be always clobbered by inline asm 的算术标志寄存器 (cc)。