我正在为编译器编写x86后端,发现为每个汇编指令编码非常乏味,显然是在重新发明轮子。是否有声明性表示该指令集的任何地方,例如将指令操作和操作数映射到字节的XML文件?
我正在为编译器编写x86后端,发现为每个汇编指令编码非常乏味,显然是在重新发明轮子。是否有声明性表示该指令集的任何地方,例如将指令操作和操作数映射到字节的XML文件?
.h
文件中。https://llvm.org/docs/TableGen/index.html
lib/Target/X86/X86InstrInfo.td
llvm-tblgen-10 --help
这基本上是一些C宏#define
的网络,可以相对简单地处理(看一个Lisp的例子)。
以下是我在网上发现的副本/版本:
https://github.com/cebix/macemu/blob/master/BasiliskII/src/uae_cpu/compiler/codegen_x86.h
https://unix.superglobalmegacorp.com/previous/newsrc/src/cpu/jit/codegen_x86.h.html
https://github.com/probonopd/previous/blob/master/src/cpu/jit/codegen_x86.h