使用$gp寄存器存储值是否存在危险?我想我的问题是$gp的真正功能是什么,它是以某种方式在幕后调用的,所以如果我使用它,事情可能会变得非常非常错误?
发布于 2010-04-12 05:43:50
$gp寄存器指向全局区域。Convention指示您应该在编写函数时存储它(请参阅.cprestore)。
如果你需要使用它(老实说,不知道为什么),记住这些事情:
1)始终将其存储在堆栈的已保存寄存器区域中。
2)在销毁堆栈时,始终将该值加载到$gp中。
3)不要使用它。(即不访问全局作用域)
另外,我不确定,但你可以忘记PIC代码。
https://stackoverflow.com/questions/2618790
复制相似问题