Assembly 将llvm IR转换为NASM程序集

Assembly 将llvm IR转换为NASM程序集,assembly,llvm,nasm,Assembly,Llvm,Nasm,我试图将一大堆llvm IR代码转换为在NASM上运行的汇编代码。我不太熟悉汇编或llvm IR。我想知道是否有任何transpiler/assembler/tools可以帮助我完成这项工作,或者是否有任何此类工具可用 LLVM-IR仍然需要编译。例如,使用clang-c-O3-march=native-ffast math进行反汇编,然后使用NASM语法反汇编程序进行反汇编,例如,该反汇编程序生成可汇编的输出 不过,编译->反汇编对于保留标签和符号名称来说并不太好 如果您的意思是手工将LLVM

我试图将一大堆llvm IR代码转换为在NASM上运行的汇编代码。我不太熟悉汇编或llvm IR。我想知道是否有任何transpiler/assembler/tools可以帮助我完成这项工作,或者是否有任何此类工具可用

LLVM-IR仍然需要编译。例如,使用
clang-c-O3-march=native-ffast math进行反汇编,然后使用NASM语法反汇编程序进行反汇编,例如,该反汇编程序生成可汇编的输出

不过,编译->反汇编对于保留标签和符号名称来说并不太好

如果您的意思是手工将LLVM-IR编写到可维护的NASM中,那么我认为移植的容易程度将取决于代码使用的寄存器数量是否少于16个;x86-64只有15个通用整数寄存器,不包括堆栈指针

如果LLVM-IR使用了更多的变量,那么您需要决定将哪些“变量”溢出/重新加载到堆栈中或从堆栈中溢出/重新加载(以及何时,如果您不只是将一些变量永久保留在堆栈上,而将其他变量永久保留在寄存器中)