Operation:
if (PR[qp]) {
if (PSR.cpl != 0)
privileged_operation_fault(0);
if (GR[r
register_nat_consumption_fault(0);
if (unimplemented_virtual_address(GR[r
unimplemented_data_address_fault(0);
if (PSR.vm == 1)
virtualization_fault();
tmp_rid = RR[GR[r
tmp_va = GR[r
tmp_size = GR[r
tmp_va = align_to_size_boundary(tmp_va, tmp_size);
if (data_form) {
tlb_must_purge_dtr_entries(tmp_rid, tmp_va, tmp_size);
tlb_must_purge_dtc_entries(tmp_rid, tmp_va, tmp_size);
tlb_may_purge_itc_entries(tmp_rid, tmp_va, tmp_size);
} else {
tlb_must_purge_itr_entries(tmp_rid, tmp_va, tmp_size);
tlb_must_purge_itc_entries(tmp_rid, tmp_va, tmp_size);
tlb_may_purge_dtc_entries(tmp_rid, tmp_va, tmp_size);
}
}
Privileged Operation fault
Interruptions:
Register NaT Consumption fault
For the data form, software must issue a data serialization operation to ensure the
Serialization:
purge is completed before issuing an instruction dependent upon the purge. For the
instruction form, software must issue an instruction serialization operation to ensure
the purge is completed before fetching an instruction dependent on that purge.
Volume 3: Instruction Reference
].nat || GR[r
].nat)
3
2
]{63:61}].rid;
3
]{60:0};
3
]{7:2};
2
], PSR.vm))
3
// instruction_form
Unimplemented Data Address fault
Virtualization fault
ptr
3:235