我希望将高度优化的加密ASM实现移植到Go ASM。关于Go Arm Assembly的唯一文档是快速指南,它提到了以下内容:
寄存器 R10 和 R11 由编译器和链接器保留。
R10指向g(戈鲁汀)结构。在汇编程序源代码中,此指针必须称为 g;无法识别名称 R10。
手写汇编可以使用R11,但这样做需要确保链接器也没有使用它来实现函数中的任何其他指令。
我希望移植使用的ASM,所以我的问题是:R10
R11
我可以使用R10/g吗?
如果我使用R10 / g,只要我在堆栈上调用开始时存储R10值,然后在结束时加载它,会有任何问题吗?(假设用于停止抢占行为)go:nosplit
只要我没有从Go ASM调用任何其他函数,那么我就不必担心链接器对R11的限制,对吗?
森栏
相关分类