ptc.e
格式
(qp)ptc.er 3 M28
說明
從本地處理器的指令與數據轉譯快取清除一個或多個轉譯項。“轉譯暫存器”與 VHPT 不會修改。
清除的轉譯快取項數取決於具體實施版本。有些版本只要執行 ptc.e 一次便可清除轉譯快取層次結構中所有級別的專案,而其它一些版本則需要重複多次才能清除指令與數據轉譯快取的所有級別、快取線組及聯合。GRr3 指定與每次執行關聯的取決於具體版本的參數。
下面定義的循環可清除所有型號的處理器的整個轉譯快取。軟體可以通過與處理器有關的層(通過過程介面訪問)獲取參數。在循環期間,選擇的區域暫存器必須保持不變。
disable_interrupts();
addr = base;
for (i = 0; i < count1; i++) {
for (j = 0; j < count2; j++) {
ptc.e(addr);
addr += stride2;
}
addr += stride1;
}
enable_interrupts();
操作
if (PR[qp]) {
if (PSR.cpl != 0)
privileged_operation_fault(0);
if (GR[r 3 ].nat)
register_nat_consumption_fault(0);
tlb_purge_translation_cache(GR[r 3 ]);
中斷序列化
在發出同清除有關的數據訪問與非訪問引用之前,軟體必須先發出數據序列化操作,以確保清除操作完成。在獲取同清除相關的指令之前,軟體必須發出指令序列化操作。