Change-Id: Ibabbca3988d39bdce584924173a912d45f50f0dd
Reviewed-on: https://go-review.googlesource.com/2243
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Minux Ma <minux@golang.org>
MOVL new+8(FP), CX
LOCK
CMPXCHGL CX, 0(BX)
- JZ 4(PC)
- MOVL $0, AX
- MOVB AX, ret+12(FP)
- RET
- MOVL $1, AX
- MOVB AX, ret+12(FP)
+ SETEQ , ret+12(FP)
RET
TEXT runtime·casuintptr(SB), NOSPLIT, $0-13
MOVL new_hi+16(FP), CX
LOCK
CMPXCHG8B 0(BP)
- JNZ fail
- MOVL $1, AX
- MOVB AX, ret+20(FP)
- RET
-fail:
- MOVL $0, AX
- MOVB AX, ret+20(FP)
+ SETEQ , ret+20(FP)
RET
// bool casp(void **p, void *old, void *new)
MOVL new+8(FP), CX
LOCK
CMPXCHGL CX, 0(BX)
- JZ 4(PC)
- MOVL $0, AX
- MOVB AX, ret+12(FP)
- RET
- MOVL $1, AX
- MOVB AX, ret+12(FP)
+ SETEQ , ret+12(FP)
RET
// uint32 xadd(uint32 volatile *val, int32 delta)
MOVL new+12(FP), CX
LOCK
CMPXCHGL CX, 0(BX)
- JZ 4(PC)
- MOVL $0, AX
- MOVB AX, ret+16(FP)
- RET
- MOVL $1, AX
- MOVB AX, ret+16(FP)
+ SETEQ , ret+16(FP)
RET
// bool runtime·cas64(uint64 *val, uint64 old, uint64 new)
MOVQ new+16(FP), CX
LOCK
CMPXCHGQ CX, 0(BX)
- JNZ fail
- MOVL $1, AX
- MOVB AX, ret+24(FP)
- RET
-fail:
- MOVL $0, AX
- MOVB AX, ret+24(FP)
+ SETEQ , ret+24(FP)
RET
TEXT runtime·casuintptr(SB), NOSPLIT, $0-25
MOVQ new+16(FP), CX
LOCK
CMPXCHGQ CX, 0(BX)
- JZ 4(PC)
- MOVL $0, AX
- MOVB AX, ret+24(FP)
- RET
- MOVL $1, AX
- MOVB AX, ret+24(FP)
+ SETEQ , ret+24(FP)
RET
// uint32 xadd(uint32 volatile *val, int32 delta)
MOVL new+8(FP), CX
LOCK
CMPXCHGL CX, 0(BX)
- JZ 4(PC)
- MOVL $0, AX
- MOVB AX, ret+16(FP)
- RET
- MOVL $1, AX
- MOVB AX, ret+16(FP)
+ SETEQ , ret+16(FP)
RET
TEXT runtime·casuintptr(SB), NOSPLIT, $0-17
MOVQ new+16(FP), CX
LOCK
CMPXCHGQ CX, 0(BX)
- JNZ fail
- MOVL $1, AX
- MOVB AX, ret+24(FP)
- RET
-fail:
- MOVL $0, AX
- MOVB AX, ret+24(FP)
+ SETEQ , ret+24(FP)
RET
// bool casp(void **val, void *old, void *new)
MOVL new+8(FP), CX
LOCK
CMPXCHGL CX, 0(BX)
- JZ 4(PC)
- MOVL $0, AX
- MOVB AX, ret+16(FP)
- RET
- MOVL $1, AX
- MOVB AX, ret+16(FP)
+ SETEQ , ret+16(FP)
RET
// uint32 xadd(uint32 volatile *val, int32 delta)