[譯] ARMv8-A架構(gòu)基礎(chǔ)之AArch32中的寄存器

與ARMv7-A兼容意味著诬滩,對于以AArch32執(zhí)行狀態(tài)運行的處理器萌狂,ARMv8-A架構(gòu)的AArch32狀態(tài)與ARMv7-A通用寄存器提供的視圖之間必須存在某些對應(yīng)關(guān)系冠场。

記住炬丸,在ARMv7-A體系結(jié)構(gòu)中秆麸,有16個供軟件使用的32位通用寄存器(R0-R15)初嘹。 其中15個(R0-R14)可用于通用數(shù)據(jù)存儲。剩下的R15寄存器是程序計數(shù)器(PC)沮趣,當硬件內(nèi)核執(zhí)行指令時屯烦,其值被改變。 軟件還可以訪問CPSR房铭,以及從SPSR中訪問先前執(zhí)行的模式中保存的CPSR副本驻龟。 在發(fā)生異常時,將CPSR復制到發(fā)生異常的模式的SPSR缸匪。

這些寄存器中的那個及在哪里被訪問翁狐,取決于軟件執(zhí)行的處理器模式和寄存器本身。 這被稱為banking豪嗽。 下圖中的陰影寄存器被存儲備份谴蔑。它們使用物理上獨立的存儲豌骏,并且通常只有進程執(zhí)行在特定模式下時才可以訪問。


banked_registers.png

在ARMv7中使用Banking來減少異常的延遲隐锭。 但是窃躲,這也意味著在相當多的可能的寄存器中,任何時候只有不到一半的寄存器可用钦睡。

ARMv8-A具有31個64位通用寄存器蒂窒,在所有異常級別都可以訪問。

當發(fā)生從AArch32到AArch64的異常時荞怒,有一些特殊的情況要考慮洒琢。 AArch64處理程序代碼可能需要訪問AArch32寄存器,因此架構(gòu)定義了映射以允許訪問AArch32寄存器褐桌。

X寄存器的[63:32]位在AArch32狀態(tài)下不可用衰抑,并且要么為0,要么是AArch64中寫入的最后值荧嵌。 沒有架構(gòu)用來保證它是什么值呛踊。 因此通常訪問AArch32的寄存器,用W寄存器表示啦撮。
該映射如下圖所示:


register_mapping.png

AArch32還將存儲的寄存器映射到另外無法被訪問的AArch64寄存器谭网。

AArch32中的SPSR和ELR_Hyp寄存器是只能使用系統(tǒng)指令訪問的額外寄存器。 它們沒有映射到AArch64架構(gòu)的AArch64通用寄存器空間赃春。 其中一些寄存器在AArch32和AArch64之間對應(yīng):

  • SPSR_svc映射到SPSR_EL1愉择。
  • SPSR_hyp映射到SPSR_EL2。
  • ELR_hyp映射到ELR_EL2织中。

以下寄存器僅在AArch32執(zhí)行期間使用锥涕。 然而,在使用AArch64的EL1執(zhí)行期間抠璃,它們保持其狀態(tài)站楚,并且在該異常級別的AArch64執(zhí)行期間不可訪問。

  • SPSR_abt.
  • SPSR_und.
  • SPSR_irq.
  • SPSR_fiq.

如果要訪問SPSR寄存器搏嗡,只能在AArch64執(zhí)行在更高的異常級別的上下文切換期間進行訪問。

如果從一個使用AArch32的異常級別發(fā)生一個使用AArch64的異常級別拉一,則AArch64 ELR_ELn的高32位全為零采盒。

AArch32上的系統(tǒng)寄存器

在ARMv7-A架構(gòu)中,系統(tǒng)寄存器提供的功能是通過CP15寄存器訪問的蔚润。與AArch64的32位W寄存器映射到AArch32通用寄存器的映射方式大致相同磅氨,在CP15寄存器和AArch64系統(tǒng)寄存器之間有一個定義好的映射。

許多系統(tǒng)寄存器都是32位的嫡纠,在這種情況下烦租,AArch32和AArch64實例之間有一對一的映射關(guān)系延赌。 例如,AArch32 Hyp系統(tǒng)控制寄存器(HSCTLR)映射到SCTLR_EL2

一些AArch64系統(tǒng)寄存器是64位寬的叉橱,通常映射到兩個AArch32 CP15寄存器挫以。 例如:

  • HCR映射到HCR_EL2 [31:0]。
  • HCR2映射到HCR_EL2 [63:32]窃祝。

AArch32上的PSTATE

在ARMv8-A中掐松,傳統(tǒng)CPSR的不同組件被呈現(xiàn)為可獨立訪問的處理器狀態(tài)(PSTATE)字段。 PSTATE還包括特定于AArch32狀態(tài)的字段粪小。

下圖顯示了AArch32上的CPSR位分配:


exceptions_from_aarch64 .png

給予的額外PSTATE位只能在AArch32訪問:

名稱 說明
Q 累積飽和標志大磺。
GE(4) 大于或等于標志。
IT(8) If-Then執(zhí)行位探膊。
J J位杠愧。
T T32位。
E 字節(jié)順序位逞壁。
M 模式字段殴蹄。

原文
https://developer.arm.com/products/architecture/a-profile/docs/100878/latest/registers-at-aarch32

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猾担,隨后出現(xiàn)的幾起案子袭灯,更是在濱河造成了極大的恐慌,老刑警劉巖绑嘹,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稽荧,死亡現(xiàn)場離奇詭異,居然都是意外死亡工腋,警方通過查閱死者的電腦和手機姨丈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擅腰,“玉大人蟋恬,你說我怎么就攤上這事〕酶裕” “怎么了歼争?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渗勘。 經(jīng)常有香客問我沐绒,道長,這世上最難降的妖魔是什么旺坠? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任乔遮,我火速辦了婚禮,結(jié)果婚禮上取刃,老公的妹妹穿的比我還像新娘蹋肮。我一直安慰自己出刷,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布坯辩。 她就那樣靜靜地躺著馁龟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪濒翻。 梳的紋絲不亂的頭發(fā)上屁柏,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音有送,去河邊找鬼淌喻。 笑死,一個胖子當著我的面吹牛雀摘,可吹牛的內(nèi)容都是我干的裸删。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼阵赠,長吁一口氣:“原來是場噩夢啊……” “哼涯塔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起清蚀,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤匕荸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后枷邪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榛搔,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年东揣,在試婚紗的時候發(fā)現(xiàn)自己被綠了践惑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘶卧,死狀恐怖尔觉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情芥吟,我是刑警寧澤侦铜,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站运沦,受9級特大地震影響泵额,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜携添,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篓叶。 院中可真熱鬧烈掠,春花似錦羞秤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至矫限,卻和暖如春哺哼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叼风。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工取董, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人无宿。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓茵汰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親孽鸡。 傳聞我的和親對象是個殘疾皇子蹂午,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容