亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對 ARM 寄存器 R10 和 R11 的限制

對 ARM 寄存器 R10 和 R11 的限制

Go
搖曳的薔薇 2022-08-01 15:15:30
我希望將高度優化的加密ASM實現移植到Go ASM。關于Go Arm Assembly的唯一文檔是快速指南,它提到了以下內容:寄存器 R10 和 R11 由編譯器和鏈接器保留。R10指向g(戈魯汀)結構。在匯編程序源代碼中,此指針必須稱為 g;無法識別名稱 R10。手寫匯編可以使用R11,但這樣做需要確保鏈接器也沒有使用它來實現函數中的任何其他指令。我希望移植使用的ASM,所以我的問題是:R10R11我可以使用R10/g嗎?如果我使用R10 / g,只要我在堆棧上調用開始時存儲R10值,然后在結束時加載它,會有任何問題嗎?(假設用于停止搶占行為)go:nosplit只要我沒有從Go ASM調用任何其他函數,那么我就不必擔心鏈接器對R11的限制,對嗎?
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

例如,如果您的代碼被搶占或發生恐慌,您不應該觸摸。我相信指南對此非常清楚。R10

R11鏈接器用于合成一些指令,例如對全局變量的引用。最好檢查是否通過組裝然后反匯編代碼來使用。在反匯編中,鏈接器引入的任何引用都應該是可見的。R11R11


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 254 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號