1 <!-- X Instructions here described in PowerISA Version 3.0 B Book 1 -->
3 <!-- Section 4.6 Fixed-point Synchronisation instructions. Pages 865 - 877 -->
5 # Instruction Synchronise
16 Special Registers Altered:
20 # Load Byte And Reserve Indexed
31 Special Registers Altered:
35 # Load Halfword And Reserve Indexed
46 Special Registers Altered:
50 # Load Word And Reserve Indexed
61 RESERVE_ADDR <- real_addr(EA)
62 RT <- [0]*32 || MEM(EA, 4)
64 Special Registers Altered:
68 # Load Doubleword And Reserve Indexed
79 Special Registers Altered:
83 # Store Byte Conditional Indexed
94 Special Registers Altered:
98 # Store Halfword Conditional Indexed
109 Special Registers Altered:
113 # Store word Conditional Indexed
125 if (RESERVE_LENGTH = 4 &
126 RESERVE_ADDR = real_addr(EA)) then
127 MEM(EA, 1) <- (RS)[32:63]
131 z <- REAL_PAGE_SIZE # smallest implementation's real page size
132 if RESERVE_ADDR / z = real_addr(EA) / z then
140 if undefined_case then
143 MEM(EA, 1) <- (RS)[32:63]
145 CR0 <- 0b00 || u2 || XER[SO]
147 CR0 <- 0b00 || store_performed || XER[SO]
151 Special Registers Altered:
155 # Store Doubleword Conditional Indexed
166 Special Registers Altered: