ldfp
指令型別 M
格式
(qp) ldfps.fldtype.ldhint f1, f2 = [r3] single_form, no_base_update_form
(qp) ldfps.fldtype.ldhint f1, f2 = [r3], 8 single_form, base_update_form
(qp) ldfpd.fldtype.ldhint f1, f2 = [r3] double_form, no_base_update_form
(qp) ldfpd.fldtype.ldhint f1, f2 = [r3], 16 double_form, base_update_form
(qp) ldfp8.fldtype.ldhint f1, f2 = [r3] integer_form, no_base_update_form
(qp) ldfp8.fldtype.ldhint f1, f2 = [r3], 16 integer_form, base_update_form
說明
從 GR r3 中的值指定的地址開始,從記憶體讀取八 (single_form) 或十六 (double_form/integer_form) 個位元組。對於 single_form/double_form,讀取的值作為一對連續的浮點值處理;而對於 integer_form,則作為整數/並行 FP 數據處理。每個數字均轉換成浮點暫存器格式。最低地址上的值放入 FR f1,最高地址上的值則放入 FR f2。 fldtype 完成符指定特殊的載入操作。
對於非推測性載入型別,如果與 GR r3 關聯的 NaT 位是 1,則執行“暫存器 NaT 使用”錯誤的處理。對於推測性載入與推測性高級載入,不觸發任何錯誤,而且會緩發異常。
在 base_update_form 中,GR r3 中的值加到暗示的立即數(等於數據大小的兩倍)上,結果放回 GR r3。載入之後便完成此基址暫存器的更新,且不影響載入地址。
ldhint 修正符的值指定記憶體訪問的區域性。在基址更新形式中,會暗示預取提示。基址更新之後 GR r3 中的值指定的地址充當預取指定的快取線提示。此預取操作使用 ldhint 指定的區域性提示。預取與區域性提示不影響程式功能,在具體實現的版本中可能會被忽略。
在 no_base_update 形式中,GR r3 中的值不修改,並且不暗示任何預取提示。
PSR.mfl 與 PSR.mfh 位會進行更新,以反映 FR f1 與 FR f2 的修改。
這裡在目標暫存器的選擇上有一項限制。暫存器指示符 f1 與 f2 必須指定一個奇數物理 FR 與一個偶數物理 FR。指定兩個偶數暫存器或奇數暫存器將導致“非法操作”錯誤。此項限制施加在暫存器循環之後的物理暫存器編號上。這表示,如果 f1 與 f2 都指定靜態暫存器,或都指定循環暫存器,則 f1 與 f2 必須是奇數/偶數,或偶數/奇數。如果 f1 與 f2 指定一個靜態暫存器與一個循環暫存器,則限制取決於 CFM.rrb.fr。如果 CFM.rrb.fr 是偶數,則限制是相同的;f1 與 f2 必須是奇/偶或偶/奇。如果 CFM.rrb.fr 是奇數,則 f1 與 f2 必須是偶數/偶數,或奇數/奇數。僅當 CFM.rrb.fr 有可預測的值(例如 0)時,才能指定一個靜態暫存器與一個循環暫存器。