Store Instructionst
Instruction Type M
Format
(qp) stsz.sttype.sthint [r3] = r2 normal_form, no_base_update_form
(qp) stsz.sttype.sthint [r3] = r2, imm9 normal_form, imm_base_update_form
(qp) st8.spill.sthint [r3] = r2 spill_form, no_base_update_form
(qp) st8.spill.sthint [r3] = r2, imm9 spill_form, imm_base_update_form
Description
A value consisting of the least significant sz bytes of the value in GR r2 is written to memory starting at the address specified by the value in GR r3. The sttype completer specifies special store operations. If the NaT bit corresponding to GR r3 is 1 (or in the normal_form, if the NaT bit corresponding to GR r2 is 1), a Register NaT Consumption fault is taken.
In the spill_form, an 8-byte value is stored, and the NaT bit corresponding to GR r2 is copied to a bit in the UNAT application register. This instruction is used for spilling a register/NaT pair.
In the imm_base_update form, the value in GR r3 is added to a signed immediate value (imm9) and the result is placed back in GR r3. This base register update is done after the store, and does not affect the store address, nor the value stored (for the case where r2 and r3 specify the same register).
The ALAT is queried using the physical memory address and the access size, and all overlapping entries are invalidated.
The value of the sthint completer specifies the locality of the memory access. A prefetch hint is implied in the base update forms. The address specified by the value in GR r3 after the base update acts as a hint to prefetch the indicated cache line. This prefetch uses the locality hints specified by sthint.