MIPS 64 的 gcc 使用復雜的方法來定位和呼叫編譯單元中不存在的函式。這個代碼模型的名稱是什么(以及它在哪里記錄)?我搜索但沒有發現它即將發布。它涉及$28/$gp和$25/$t9作為某種引數傳遞給被呼叫函式。
而且,這個翻譯中是否存在錯誤(在代碼生成或文本輸出中)?
以下代碼序列:
extern int g(int);
int f(int x)
{
return g(x) 2;
}
生成此輸出:
daddiu $sp,$sp,-16
sd $28,0($sp)
lui $28,%hi(%neg(%gp_rel(f(int))))
daddu $28,$28,$25 <--- sourcing $25/$t9
daddiu $28,$28,%lo(%neg(%gp_rel(f(int))))
ld $25,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/411264.html
標籤:
