MicroBlaze Processor Reference Guide
255
UG081 (v14.7)
Instructions
Registers Altered
•
MSR[C], unless an exception is generated
•
MSR[UM], MSR[VM], MSR[UMS], MSR[VMS], if a TLB miss exception or a data storage
exception is generated
•
ESR[EC], ESR[S], if an exception is generated
•
ESR[DIZ], if a data storage exception is generated
Latency
•
1 cycle with
C_AREA_OPTIMIZED=0
•
2 cycles with
C_AREA_OPTIMIZED=1
Note
This instruction is used together with LWX to implement exclusive access, such as semaphores and
spinlocks
.
The carry flag (MSR[C]) may not be set immediately (dependent on pipeline stall behavior). The
SWX instruction should not be immediately followed by an MSRCLR, MSRSET, MTS, or SRC
instruction, to ensure the correct value of the carry flag is obtained.