aboutsummaryrefslogtreecommitdiff
path: root/src/sync/atomic
diff options
context:
space:
mode:
Diffstat (limited to 'src/sync/atomic')
-rw-r--r--src/sync/atomic/asm_ppc64x.s22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/sync/atomic/asm_ppc64x.s b/src/sync/atomic/asm_ppc64x.s
index ed348458b4..2474e96435 100644
--- a/src/sync/atomic/asm_ppc64x.s
+++ b/src/sync/atomic/asm_ppc64x.s
@@ -15,8 +15,7 @@ TEXT ·SwapUint32(SB),NOSPLIT,$0-20
SYNC
LWAR (R3), R5
STWCCC R4, (R3)
- BNE -3(PC)
- SYNC
+ BNE -2(PC)
ISYNC
MOVW R5, old+16(FP)
RET
@@ -30,8 +29,7 @@ TEXT ·SwapUint64(SB),NOSPLIT,$0-24
SYNC
LDAR (R3), R5
STDCCC R4, (R3)
- BNE -3(PC)
- SYNC
+ BNE -2(PC)
ISYNC
MOVD R5, old+16(FP)
RET
@@ -49,10 +47,9 @@ TEXT ·CompareAndSwapUint32(SB),NOSPLIT,$0-17
SYNC
LWAR (R3), R6
CMPW R6, R4
- BNE 8(PC)
+ BNE 7(PC)
STWCCC R5, (R3)
- BNE -5(PC)
- SYNC
+ BNE -4(PC)
ISYNC
MOVD $1, R3
MOVB R3, swapped+16(FP)
@@ -73,10 +70,9 @@ TEXT ·CompareAndSwapUint64(SB),NOSPLIT,$0-25
SYNC
LDAR (R3), R6
CMP R6, R4
- BNE 8(PC)
+ BNE 7(PC)
STDCCC R5, (R3)
- BNE -5(PC)
- SYNC
+ BNE -4(PC)
ISYNC
MOVD $1, R3
MOVB R3, swapped+24(FP)
@@ -94,8 +90,7 @@ TEXT ·AddUint32(SB),NOSPLIT,$0-20
LWAR (R3), R5
ADD R4, R5
STWCCC R5, (R3)
- BNE -4(PC)
- SYNC
+ BNE -3(PC)
ISYNC
MOVW R5, ret+16(FP)
RET
@@ -113,8 +108,7 @@ TEXT ·AddUint64(SB),NOSPLIT,$0-24
LDAR (R3), R5
ADD R4, R5
STDCCC R5, (R3)
- BNE -4(PC)
- SYNC
+ BNE -3(PC)
ISYNC
MOVD R5, ret+16(FP)
RET