2017-03-27 85 views
0

我有我自己的連接器和機器代碼converter.I使用我自己的彙編指令爲我的machine.This機器是一個軟件處理器執行由asm生成機器碼到十六進制轉換器。而不是彙編,我想現在使用c語言。我的問題是如何使用LLVM來達到這個目的。 一種方法可能是這樣的: 創建一個解析器,它將讀取由LLVM IR生成的.s文件(各種asm文件),並將這些指令映射到特定於處理器的asm指令。如何使用LLVM IR連接我自己的LLVM後端

我不想創建鏈接器和asm再次機器代碼轉換器。

我的方法好嗎?或者什麼可能是更好的方式來做到這一點。

回答

0

您讀取的* .s文件不僅僅是「sort of asm」,它實際上是彙編程序,它已經通過了一些LLVM後端,如果您沒有選擇不同的目標,可能是某種X86變體。

你真正想要做的是讓LLVM爲你自己的機器發出組裝指令。這是Writing an LLVM Backend和類似的指南。

這並不簡單,但我期望嘗試將某些其他機器的指令集(更不用說X86)轉換爲您自己的可能更加困難,因爲您必須模擬非常複雜的每個細節機。