File Index
Files and directories
Sign in
FILE

registers.rst

File preview with syntax highlighting.

linux-6.19.14/Documentation/translations/zh_TW/arch/parisc/registers.rst RESTRUCTUREDTEXT
  1.. include:: ../../disclaimer-zh_TW.rst
  2
  3:Original: Documentation/arch/parisc/registers.rst
  4
  5:翻譯:
  6
  7 司延騰 Yanteng Si <siyanteng@loongson.cn>
  8
  9.. _tw_parisc_registers:
 10
 11=========================
 12Linux/PA-RISC的寄存器用法
 13=========================
 14
 15[ 用星號表示目前尚未實現的計劃用途。 ]
 16
 17ABI約定的通用寄存器
 18===================
 19
 20控制寄存器
 21----------
 22
 23============================    =================================
 24CR 0 (恢復計數器)               用於ptrace
 25CR 1-CR 7(無定義)               未使用
 26CR 8 (Protection ID)            每進程值*
 27CR 9, 12, 13 (PIDS)             未使用
 28CR10 (CCR)                      FPU延遲保存*
 29CR11                            按照ABI的規定(SAR)
 30CR14 (中斷向量)                 初始化爲 fault_vector
 31CR15 (EIEM)                     所有位初始化爲1*
 32CR16 (間隔計時器)               讀取週期數/寫入開始時間間隔計時器
 33CR17-CR22                       中斷參數
 34CR19                            中斷指令寄存器
 35CR20                            中斷空間寄存器
 36CR21                            中斷偏移量寄存器
 37CR22                            中斷 PSW
 38CR23 (EIRR)                     讀取未決中斷/寫入清除位
 39CR24 (TR 0)                     內核空間頁目錄指針
 40CR25 (TR 1)                     用戶空間頁目錄指針
 41CR26 (TR 2)                     不使用
 42CR27 (TR 3)                     線程描述符指針
 43CR28 (TR 4)                     不使用
 44CR29 (TR 5)                     不使用
 45CR30 (TR 6)                     當前 / 0
 46CR31 (TR 7)                     臨時寄存器,在不同地方使用
 47============================    =================================
 48
 49空間寄存器(內核模式)
 50----------------------
 51
 52========                        ==============================
 53SR0                             臨時空間寄存器
 54SR4-SR7                         設置爲0
 55SR1                             臨時空間寄存器
 56SR2                             內核不應該破壞它
 57SR3                             用於用戶空間訪問(當前進程)
 58========                        ==============================
 59
 60空間寄存器(用戶模式)
 61----------------------
 62
 63========                        ============================
 64SR0                             臨時空間寄存器
 65SR1                             臨時空間寄存器
 66SR2                             保存Linux gateway page的空間
 67SR3                             在內核中保存用戶地址空間的值
 68SR4-SR7                         定義了用戶/內核的短地址空間
 69========                        ============================
 70
 71
 72處理器狀態字
 73------------
 74
 75======================          ================================================
 76W (64位地址)                  0
 77E (小尾端)                    0
 78S (安全間隔計時器)            0
 79T (產生分支陷阱)              0
 80H (高特權級陷阱)              0
 81L (低特權級陷阱)              0
 82N (撤銷下一條指令)            被C代碼使用
 83X (數據存儲中斷禁用)          0
 84B (產生分支)                  被C代碼使用
 85C (代碼地址轉譯)              1, 在執行實模式代碼時爲0
 86V (除法步長校正)              被C代碼使用
 87M (HPMC 掩碼)                 0, 在執行HPMC操作*時爲1
 88C/B (進/借 位)                被C代碼使用
 89O (有序引用)                  1*
 90F (性能監視器)                0
 91R (回收計數器陷阱)            0
 92Q (收集中斷狀態)              1 (在rfi之前的代碼中爲0)
 93P (保護標識符)                1*
 94D (數據地址轉譯)              1, 在執行實模式代碼時爲0
 95I (外部中斷掩碼)              由cli()/sti()宏使用。
 96======================          ================================================
 97
 98“隱形”寄存器(影子寄存器)
 99---------------------------
100
101=============                   ===================
102PSW W 默認值                    0
103PSW E 默認值                    0
104影子寄存器                      被中斷處理代碼使用
105TOC啓用位                       1
106=============                   ===================
107
108----------------------------------------------------------
109
110PA-RISC架構定義了7個寄存器作爲“影子寄存器”。這些寄存器在
111RETURN FROM INTERRUPTION AND RESTORE指令中使用,通過消
112除中斷處理程序中對一般寄存器(GR)的保存和恢復的需要來減
113少狀態保存和恢復時間。影子寄存器是GRs 1, 8, 9, 16, 17,
11424和25。
115
116-------------------------------------------------------------------------
117
118寄存器使用說明,最初由John Marvin提供,並由Randolph Chung提供一些補充說明。
119
120對於通用寄存器:
121
122r1,r2,r19-r26,r28,r29 & r31可以在不保存它們的情況下被使用。當然,如果你
123關心它們,在調用另一個程序之前,你也需要保存它們。上面的一些寄存器確實
124有特殊的含義,你應該注意一下:
125
126    r1:
127       addil指令是硬性規定將其結果放在r1中,所以如果你使用這條指令要
128       注意這點。
129
130    r2:
131       這就是返回指針。一般來說,你不想使用它,因爲你需要這個指針來返
132       回給你的調用者。然而,它與這組寄存器組合在一起,因爲調用者不能
133       依賴你返回時的值是相同的,也就是說,你可以將r2複製到另一個寄存
134       器,並在作廢r2後通過該寄存器返回,這應該不會給調用程序帶來問題。
135
136    r19-r22:
137       這些通常被認爲是臨時寄存器。
138       請注意,在64位中它們是arg7-arg4。
139
140    r23-r26:
141       這些是arg3-arg0,也就是說,如果你不再關心傳入的值,你可以使用
142       它們。
143
144    r28,r29:
145       這倆是ret0和ret1。它們是你傳入返回值的地方。r28是主返回值。當返回
146       小結構體時,r29也可以用來將數據傳回給調用程序。
147
148    r30:
149       棧指針
150
151    r31:
152       ble指令將返回指針放在這裏。
153
154
155    r3-r18,r27,r30需要被保存和恢復。r3-r18只是一般用途的寄存器。
156    r27是數據指針,用來使對全局變量的引用更容易。r30是棧指針。
157
~/ Read-only file preview.