我有自己的链接器和机器代码转换器。我正在为我的机器使用我自己的汇编指令。这台机器是一个软件处理器,它执行由asm到hex转换器生成的机器代码。而不是汇编,我现在要使用c语言。我的问题是如何使用LLVM来达到这个目的。 一种方法可能是: 创建一个解析器,它将读取由LLVM IR生成的.s文件(asm文件的类型),并使用我的处理器特定的asm指令映射这些指令。
我不想再次为机器代码转换器创建链接器和asm。
我的方法可以吗?或者什么是更好的方法。
答案 0 :(得分:0)
你读的* .s文件不仅仅是“asm”,实际上汇编程序已经传递了一些LLVM后端,如果你没有选择不同的目标,可能是一些X86变体。
您真正想要做的是让LLVM为您自己的计算机发出汇编指令。这就是Writing an LLVM Backend和类似指南的内容。
这不是很简单,但我希望尝试将其他机器的指令集(更不用说X86)转换为您自己的指令集可能更加困难,因为您必须模拟非常复杂的机器的每个细节