xchg
指令型別 M
格式
(qp) xchgsz.ldhint r1 = [r3], r2
說明
從 GRr3 中的值指定的地址開始,從記憶體中讀取 sz 個位元組組成的值。GR r2 中 sz 個位元組的最低有效值從 GR r3 中的值指定的地址開始寫入記憶體。從記憶體讀取的值隨後進行零擴充套件,放入 GR r1,並清除 GR r1 對應的 NaT 位。
如果 GR r3 中的值指定的地址未自然對齊記憶體中訪問的值的大小,則不管“使用者掩碼”對齊檢查位 UM.ac(在“處理器狀態暫存器”中,是 PSR.ac)的狀態如何,都將執行“未對齊的數據引用”錯誤的處理。
對於引用的頁,同時需要讀取與寫入訪問許可權。
交換使用獲取語義執行,也就是說,在進行後續的所有數據記憶體訪問之前,記憶體讀取/寫入都成為可見的。
記憶體讀取與寫入確保是原子型(不可再分)指令。
只有採用寫回型寫入策略的可快取頁才支援此指令。訪問 NaTPage 會導致“數據 NaT 頁使用”錯誤。訪問使用其它記憶體屬性的頁會導致“不支援的數據引用”錯誤。
ldhint 完成符的值指定記憶體訪問的區域性。區域性提示不影響程式功能,在實現的版本中可能會被忽略。