Operation:
if (PR[qp]) {
check_target_register(r
if (GR[r
register_nat_consumption_fault(SEMAPHORE);
paddr = tlb_translate(GR[r
if (!ma_supports_semaphores(mattr))
unsupported_data_reference_fault(SEMAPHORE, GR[r
val = mem_xchg(GR[r
alat_inval_multiple_entries(paddr, sz);
GR[r
] = zero_ext(val, sz * 8);
1
GR[r
].nat = 0;
1
}
Illegal Operation fault
Interruptions:
Register NaT Consumption fault
Unimplemented Data Address fault
Data Nested TLB fault
Alternate Data TLB fault
VHPT Data fault
Data TLB fault
Data Page Not Present fault
Data NaT Page Consumption fault
Volume 3: Instruction Reference
);
1
].nat || GR[r
].nat)
3
2
], sz, SEMAPHORE, PSR.cpl, &mattr,
3
&tmp_unused);
], paddr, sz, UM.be, mattr, ACQUIRE, ldhint);
2
]);
3
Data Key Miss fault
Data Key Permission fault
Data Access Rights fault
Data Dirty Bit fault
Data Access Bit fault
Data Debug fault
Unaligned Data Reference fault
Unsupported Data Reference fault
xchg
3:275