LLVM如何处理x86标志寄存器?

时间:2019-06-15 07:08:02

标签: assembly compiler-construction llvm x86-64 llvm-ir

我开始使用llvm玩语言。在经历了万花筒教程之后,我很好奇,LLVM如何表示,操纵x86标志寄存器?

如果有溢出,进位或任何其他状态,我如何在IR中达到该状态并使用它?

1 个答案:

答案 0 :(得分:2)

x86标志和状态寄存器是非常特定于目标的,当然不应在LLVM IR中建模-它太低级。可以通过llvm.uadd.with.overflow等以相同于目标的方式对相同的概念进行建模。

此外,请记住,LLVM IR通常采用SSA格式,因此说明很容易例如如果最终值相同,则重新排列。但是,此操作将不会使x86标志寄存器保持相同。