MOVL addr+0(FP), BP
MOVL new+4(FP), AX
XCHGL AX, 0(BP)
- MOVL AX, new+8(FP)
+ MOVL AX, old+8(FP)
RET
TEXT ·SwapInt64(SB),NOSPLIT,$0-20
// success
// return DX:AX
- MOVL AX, new_lo+12(FP)
- MOVL DX, new_hi+16(FP)
+ MOVL AX, old_lo+12(FP)
+ MOVL DX, old_hi+16(FP)
RET
TEXT ·SwapUintptr(SB),NOSPLIT,$0-12
MOVL AX, val+4(FP)
RET
-TEXT ·LoadInt64(SB),NOSPLIT,$0-16
+TEXT ·LoadInt64(SB),NOSPLIT,$0-12
JMP ·LoadUint64(SB)
-TEXT ·LoadUint64(SB),NOSPLIT,$0-16
+TEXT ·LoadUint64(SB),NOSPLIT,$0-12
MOVL addr+0(FP), AX
TESTL $7, AX
JZ 2(PC)
XCHGL AX, 0(BP)
RET
-TEXT ·StoreInt64(SB),NOSPLIT,$0-16
+TEXT ·StoreInt64(SB),NOSPLIT,$0-12
JMP ·StoreUint64(SB)
-TEXT ·StoreUint64(SB),NOSPLIT,$0-16
+TEXT ·StoreUint64(SB),NOSPLIT,$0-12
MOVL addr+0(FP), AX
TESTL $7, AX
JZ 2(PC)
MOVL addr+0(FP), BX
MOVL new+4(FP), AX
XCHGL AX, 0(BX)
- MOVL AX, new+8(FP)
+ MOVL AX, old+8(FP)
RET
TEXT ·SwapInt64(SB),NOSPLIT,$0-24
MOVL 0, BX // crash with nil ptr deref
MOVQ new+8(FP), AX
XCHGQ AX, 0(BX)
- MOVQ AX, new+16(FP)
+ MOVQ AX, old+16(FP)
RET
-TEXT ·SwapUintptr(SB),NOSPLIT,$0-24
+TEXT ·SwapUintptr(SB),NOSPLIT,$0-12
JMP ·SwapUint32(SB)
-TEXT ·SwapPointer(SB),NOSPLIT,$0-24
+TEXT ·SwapPointer(SB),NOSPLIT,$0-12
JMP ·SwapUint32(SB)
TEXT ·CompareAndSwapInt32(SB),NOSPLIT,$0-17
SETEQ swapped+16(FP)
RET
-TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-25
+TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-17
JMP ·CompareAndSwapUint32(SB)
-TEXT ·CompareAndSwapPointer(SB),NOSPLIT,$0-25
+TEXT ·CompareAndSwapPointer(SB),NOSPLIT,$0-17
JMP ·CompareAndSwapUint32(SB)
TEXT ·CompareAndSwapInt64(SB),NOSPLIT,$0-25
TEXT ·AddUintptr(SB),NOSPLIT,$0-12
JMP ·AddUint32(SB)
-TEXT ·AddInt64(SB),NOSPLIT,$0-12
+TEXT ·AddInt64(SB),NOSPLIT,$0-24
JMP ·AddUint64(SB)
TEXT ·AddUint64(SB),NOSPLIT,$0-24