ppc 中的 r13 是小資料區指標暫存器。
將使用此暫存器的 C 源代碼中的示例是什么?
uj5u.com熱心網友回復:
您正在尋找讓編譯器使用.sdata或.sbss用于全域資料變數。一個帶有全域變數和正確編譯選項的簡單程式應該可以做到。
來自 RS6000 / PowerPC 的 gcc:
https://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html
-msdata=eabi
在 System V.4 和嵌入式 PowerPC 系統上,將小的初始化 const 全域和靜態資料放在暫存器 r2 指向的 .sdata2 部分中。將小的初始化非常量全域和靜態資料放在暫存器 r13 指向的 .sdata 部分中。將小的未初始化的全域和靜態資料放在 .sbss 部分,該部分與 .sdata 部分相鄰。-msdata=eabi 選項與 -mrelocatable 選項不兼容。-msdata=eabi 選項還設定了 -memb 選項
-msdata=sysv
在 System V.4 和嵌入式 PowerPC 系統上,將小的全域和靜態資料放在暫存器 r13 指向的 .sdata 部分中。將小的未初始化的全域和靜態資料放在 .sbss 部分,該部分與 .sdata 部分相鄰。-msdata=sysv 選項與 -mrelocatable 選項不兼容。
-msdata=default
-msdata
在 System V.4 和嵌入式 PowerPC 系統上,如果使用 -meabi,編譯代碼與 -msdata=eabi 相同,否則編譯代碼與 -msdata=sysv 相同。
-msdata=data
在 System V.4 和嵌入式 PowerPC 系統上,將小的全域資料放在 .sdata 部分。將小的未初始化的全域資料放在 .sbss 部分。但是不要使用暫存器 r13 來尋址小資料。這是默認行為,除非使用其他 -msdata 選項。
-G num
在嵌入式 PowerPC 系統上,將小于或等于 num 位元組的全域和靜態項放入小資料或 BSS 部分,而不是普通資料或 BSS 部分。默認情況下,num 為 8。 -G num 開關也傳遞給聯結器。所有模塊都應使用相同的 -G num 值進行編譯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/395667.html
