epc
格式
epc B8
說明
此指令增加特權級別。TLB 專案為包含此指令的頁提供一個新的特權級別。此指令可用於實現對高許可權例程的呼叫,而不會導致中斷開銷。
在增加特權級別之前,會執行檢查。檢查 PFS.ppl(前一個特權級別),以確保不超過當前的特權級別。如果此項檢查失敗,則指令產生“非法操作”錯誤。
如果檢查成功,則按以下方式增加許可權:
如果啟用指令地址轉譯,包含 epc 指令的頁擁有僅執行頁訪問許可權,並且指定給頁的特權級別比目前特權級別高(數值小於),則將目前特權級別設定給包含 epc 指令的頁的轉譯的特權級別欄位。此指令可以升級但不得降級,新的許可權來自 TLB 專案。
如果禁用指令地址轉譯,則目前特權級別設定為 0(許可權最高)
在相同的指令組中,epc 後面的指令可能會在舊的特權級別或更高的新特權級別下執行。後續指令組中的指令將在更高的新特權級別下執行。
如果包含 epc 指令的頁除僅執行之外還有其它訪問許可權,或如果指定給頁的特權級別小於或等於(數值大於或等於)目前特權級別,則不採取任何操作(目前特權級別保持不變)。
請注意,ITLB 在指令獲取時實際僅讀取一次。訪問許可權與轉譯的特權級別欄位等資訊隨後會用於執行此指令。
此指令無法斷定。
中斷
“非法操作”錯誤