2017-03-27 110 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)转换为您自己的可能更加困难,因为您必须模拟非常复杂的每个细节机。