stf Operation:
if
(PR[qp]) {
if (imm_base_update_form)
check_target_register(r3);
if (tmp_isrcode = fp_reg_disabled(f2,
0, 0, 0))
disabled_fp_register_fault(tmp_isrcode, WRITE);
if (GR[r3].nat
|| (!spill_form && (FR[f2]
== NATVAL)))
register_nat_consumption_fault(WRITE);
size = spill_form ? 16 : (integer_form ? 8 : fsz);
paddr = tlb_translate(GR[r3],
size, WRITE, PSR.cpl, &mattr, &tmp_unused);
val = fp_fr_to_mem_format(FR[f2],
size, integer_form);
mem_write(val,
paddr, size, UM.be, mattr, UNORDERED, sthint);
alat_inval_multiple_entries(paddr,
size);
if (imm_base_update_form) {
GR[r3] = GR[r3] + sign_ext(imm9,
9);
GR[r3].nat = 0;
mem_implicit_prefetch(GR[r3],
sthint, WRITE);
}
}