2015-06-27 32 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的指示進行復制它們之間的值。