2015-06-27 68 views
0

我是LLVM IR的新手,我试图模拟LLVM IR中的一些x86指令。什么是LLVM IR中的“移动”操作码?

下面是一个简单的例子:

move %eax, %ebx 

但是,我没有找到在herehere看材料之后的任何相应mov操作码。

所以我的问题是:

  1. 如果我想模拟使用LLVM IR的mov操作码?我该怎么办?

  2. 我是LLVM IR的新手,可能我会花很长时间在这个“模拟”工作上,关于LLVM IR的最佳参考应该是什么?

我真的很感激,如果有人可以给我一些帮助。谢谢!

回答

5

没有与mov指令相当的指令。 LLVM IR在SSA (Static Single Assignment) form中,这意味着每个寄存器只有一次赋值。无限数量的(虚拟)寄存器 - 每个操作根据需要创建一个新的寄存器。

目前还不清楚你通过模拟x86指令的意思,但如果它适合你,你可以在栈上分配的内存为每个寄存器(使用alloca指令)的局部变量,并使用loadstore的指示进行复制它们之间的值。