asm2go
该项目旨在根据本机程序集和golang声明文件自动生成有效的Golang程序集,该文件主要用于在程序集中实现性能密集的复杂功能。
用法
asm2go需要2个文件,一个使用as (GNU汇编程序)正确进行汇编的本机汇编文件,以及一个包含汇编中实现的功能签名的Golang声明文件。 这些名称必须完全匹配,如果程序集中的符号没有相应的go函数声明,则生成将失败(此限制目前在某种程度上是任意的,将来可能会取消)。
关于编写要翻译的实际汇编代码,有一些警告。
Go中的参数调用约定将参数放置在堆栈上,因此您应编写汇编代码以引用堆栈以访问提供给函数的参数。 这可能与通常执行的结果不匹配,例如有时使用寄存器代替传递参数,但是引用堆栈似乎是执行此操作的最佳方法。
尚不支持数据符号。 例如,不支持使用引用数组开头的符号来定义数据数组。 这是因为该工具将编译后的目标代码转换为Golang程
1