安騰(R) 處理器主題轉譯雜湊項地址指令

thash

字型慣例

格式

(qp)thashr 1 = r3     M46


說明

“虛擬雜湊頁表”(VHPT) 項地址基於指定的虛擬地址產生,結果放入 GR r1。虛擬地址由 GR r3 指定;區域暫存器由 GR r3 位 {63:61} 指定。

如果給出 thash 時將 NaT 輸入參數或未實現的虛擬地址用作輸入,則產生的目標暫存器值未定義,其 NaT 位設為一。配置處理器使用基於區域的短格式 VHPT (PTA.vf=0) 時,thash 返回的值由架構的短格式雜湊函式定義。請參閱 Intel(R) Itanium(R) ArchitectureSoftware Developer's Manual(英特爾(R) 安騰(R) 體系結構軟件開發人員手冊)第 2 卷中的“基於區域的 VHPT 短格式”。

處理器配置為使用長格式 VHPT (PTA.vf=1) 時,thash 在虛擬地址上執行特定於具體實現版本的長格式雜湊函式,以產生長格式 VHPT 中的雜湊索引。

在長格式中,VHPT 中的轉譯項必須可以使用此指令產生的雜湊索引及 ttag 指令產生的雜湊標記唯一標識。

雜湊函式必須使用所有實施的區域位,並只使用虛擬地址位 {60:0} 去確定 VHPT 的偏移量。虛擬地址位 {63:61} 僅由短格式雜湊用於確定 VHPT 的區域。

此指令必須在所有型號的處理器上實施,即使是未實施 VHPT 查詢器的處理器型號。

操作

if (PR[qp]) {

check_target_register(r 1 );

if (GR[r 3 ].nat || unimplemented_virtual_address(GR[r 3 ])) {

GR[r 1 ] = undefined();

GR[r 1 ].nat = 1;

} else {

tmp_vr = GR[r 3 ]{63:61};

tmp_va = GR[r 3 ]{60:0};

GR[r 1 ] = tlb_vhpt_hash(tmp_vr, tmp_va, RR[tmp_vr].rid,

RR[tmp_vr].ps);

GR[r 1 ].nat = 0;

}

}

中斷

“非法操作”錯誤