我开始使用llvm来玩弄语言。在看过万花筒教程后,我很好奇,LLVM是如何表示和操作x86标志寄存器的?
如果存在溢出、进位或任何其他状态,我如何在IR中获得该状态并使用它?
发布于 2019-06-22 15:50:41
x86标志和状态寄存器是特定于目标的,当然不应该在LLVM中建模-它太低级了。同样的概念可以通过llvm.uadd.with.overflow等以目标中立的方式建模。
此外,请记住,LLVM IR通常是SSA形式的,因此,如果最终值相同,则指令可以很容易地重新排列。然而,此操作不会使x86标志寄存器保持相同。
https://stackoverflow.com/questions/56608181
复制相似问题