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;
}
}
中斷
“非法操作”錯誤