summaryrefslogtreecommitdiff
path: root/Documentation/translations/zh_TW/arch/parisc/registers.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/translations/zh_TW/arch/parisc/registers.rst')
-rw-r--r--Documentation/translations/zh_TW/arch/parisc/registers.rst157
1 files changed, 157 insertions, 0 deletions
diff --git a/Documentation/translations/zh_TW/arch/parisc/registers.rst b/Documentation/translations/zh_TW/arch/parisc/registers.rst
new file mode 100644
index 000000000000..695acb21134a
--- /dev/null
+++ b/Documentation/translations/zh_TW/arch/parisc/registers.rst
@@ -0,0 +1,157 @@
+.. include:: ../../disclaimer-zh_TW.rst
+
+:Original: Documentation/arch/parisc/registers.rst
+
+:翻譯:
+
+ 司延騰 Yanteng Si <siyanteng@loongson.cn>
+
+.. _tw_parisc_registers:
+
+=========================
+Linux/PA-RISC的寄存器用法
+=========================
+
+[ 用星號表示目前尚未實現的計劃用途。 ]
+
+ABI約定的通用寄存器
+===================
+
+控制寄存器
+----------
+
+============================ =================================
+CR 0 (恢復計數器) 用於ptrace
+CR 1-CR 7(無定義) 未使用
+CR 8 (Protection ID) 每進程值*
+CR 9, 12, 13 (PIDS) 未使用
+CR10 (CCR) FPU延遲保存*
+CR11 按照ABI的規定(SAR)
+CR14 (中斷向量) 初始化爲 fault_vector
+CR15 (EIEM) 所有位初始化爲1*
+CR16 (間隔計時器) 讀取週期數/寫入開始時間間隔計時器
+CR17-CR22 中斷參數
+CR19 中斷指令寄存器
+CR20 中斷空間寄存器
+CR21 中斷偏移量寄存器
+CR22 中斷 PSW
+CR23 (EIRR) 讀取未決中斷/寫入清除位
+CR24 (TR 0) 內核空間頁目錄指針
+CR25 (TR 1) 用戶空間頁目錄指針
+CR26 (TR 2) 不使用
+CR27 (TR 3) 線程描述符指針
+CR28 (TR 4) 不使用
+CR29 (TR 5) 不使用
+CR30 (TR 6) 當前 / 0
+CR31 (TR 7) 臨時寄存器,在不同地方使用
+============================ =================================
+
+空間寄存器(內核模式)
+----------------------
+
+======== ==============================
+SR0 臨時空間寄存器
+SR4-SR7 設置爲0
+SR1 臨時空間寄存器
+SR2 內核不應該破壞它
+SR3 用於用戶空間訪問(當前進程)
+======== ==============================
+
+空間寄存器(用戶模式)
+----------------------
+
+======== ============================
+SR0 臨時空間寄存器
+SR1 臨時空間寄存器
+SR2 保存Linux gateway page的空間
+SR3 在內核中保存用戶地址空間的值
+SR4-SR7 定義了用戶/內核的短地址空間
+======== ============================
+
+
+處理器狀態字
+------------
+
+====================== ================================================
+W (64位地址) 0
+E (小尾端) 0
+S (安全間隔計時器) 0
+T (產生分支陷阱) 0
+H (高特權級陷阱) 0
+L (低特權級陷阱) 0
+N (撤銷下一條指令) 被C代碼使用
+X (數據存儲中斷禁用) 0
+B (產生分支) 被C代碼使用
+C (代碼地址轉譯) 1, 在執行實模式代碼時爲0
+V (除法步長校正) 被C代碼使用
+M (HPMC 掩碼) 0, 在執行HPMC操作*時爲1
+C/B (進/借 位) 被C代碼使用
+O (有序引用) 1*
+F (性能監視器) 0
+R (回收計數器陷阱) 0
+Q (收集中斷狀態) 1 (在rfi之前的代碼中爲0)
+P (保護標識符) 1*
+D (數據地址轉譯) 1, 在執行實模式代碼時爲0
+I (外部中斷掩碼) 由cli()/sti()宏使用。
+====================== ================================================
+
+“隱形”寄存器(影子寄存器)
+---------------------------
+
+============= ===================
+PSW W 默認值 0
+PSW E 默認值 0
+影子寄存器 被中斷處理代碼使用
+TOC啓用位 1
+============= ===================
+
+----------------------------------------------------------
+
+PA-RISC架構定義了7個寄存器作爲“影子寄存器”。這些寄存器在
+RETURN FROM INTERRUPTION AND RESTORE指令中使用,通過消
+除中斷處理程序中對一般寄存器(GR)的保存和恢復的需要來減
+少狀態保存和恢復時間。影子寄存器是GRs 1, 8, 9, 16, 17,
+24和25。
+
+-------------------------------------------------------------------------
+
+寄存器使用說明,最初由John Marvin提供,並由Randolph Chung提供一些補充說明。
+
+對於通用寄存器:
+
+r1,r2,r19-r26,r28,r29 & r31可以在不保存它們的情況下被使用。當然,如果你
+關心它們,在調用另一個程序之前,你也需要保存它們。上面的一些寄存器確實
+有特殊的含義,你應該注意一下:
+
+ r1:
+ addil指令是硬性規定將其結果放在r1中,所以如果你使用這條指令要
+ 注意這點。
+
+ r2:
+ 這就是返回指針。一般來說,你不想使用它,因爲你需要這個指針來返
+ 回給你的調用者。然而,它與這組寄存器組合在一起,因爲調用者不能
+ 依賴你返回時的值是相同的,也就是說,你可以將r2複製到另一個寄存
+ 器,並在作廢r2後通過該寄存器返回,這應該不會給調用程序帶來問題。
+
+ r19-r22:
+ 這些通常被認爲是臨時寄存器。
+ 請注意,在64位中它們是arg7-arg4。
+
+ r23-r26:
+ 這些是arg3-arg0,也就是說,如果你不再關心傳入的值,你可以使用
+ 它們。
+
+ r28,r29:
+ 這倆是ret0和ret1。它們是你傳入返回值的地方。r28是主返回值。當返回
+ 小結構體時,r29也可以用來將數據傳回給調用程序。
+
+ r30:
+ 棧指針
+
+ r31:
+ ble指令將返回指針放在這裏。
+
+
+ r3-r18,r27,r30需要被保存和恢復。r3-r18只是一般用途的寄存器。
+ r27是數據指針,用來使對全局變量的引用更容易。r30是棧指針。
+