mirror of https://github.com/golang/go.git
cas
R=rsc APPROVED=rsc DELTA=31 (1 added, 8 deleted, 22 changed) OCL=35752 CL=35757
This commit is contained in:
parent
f72ea8eb76
commit
b83549a7e6
|
|
@ -10,5 +10,20 @@
|
|||
// }else
|
||||
// return 0;
|
||||
|
||||
TEXT cas+0(SB),0,$12
|
||||
TODO
|
||||
TEXT cas(SB),7,$0
|
||||
MOVW 0(FP), R1 // *val
|
||||
MOVW 4(FP), R2 // old
|
||||
MOVW 8(FP), R3 // new
|
||||
l:
|
||||
LDREX (R1), R0
|
||||
CMP R0, R2
|
||||
BNE fail
|
||||
STREX R3, (R1), R0
|
||||
CMP $0, R0
|
||||
BNE l
|
||||
MOVW $1, R0
|
||||
RET
|
||||
fail:
|
||||
MOVW $0, R0
|
||||
RET
|
||||
|
||||
|
|
|
|||
|
|
@ -10,5 +10,21 @@
|
|||
// }else
|
||||
// return false;
|
||||
|
||||
TEXT sync·cas+0(SB),0,$12
|
||||
TODO
|
||||
TEXT sync·cas(SB),7,$0
|
||||
MOVW 0(FP), R1 // *val
|
||||
MOVW 4(FP), R2 // old
|
||||
MOVW 8(FP), R3 // new
|
||||
l:
|
||||
LDREX (R1), R0
|
||||
CMP R0, R2
|
||||
BNE fail
|
||||
STREX R3, (R1), R0
|
||||
CMP $0, R0
|
||||
BNE l
|
||||
MOVW $1, R0
|
||||
MOVW R0, 16(SP)
|
||||
RET
|
||||
fail:
|
||||
MOVW $0, R0
|
||||
MOVW R0, 16(SP)
|
||||
RET
|
||||
|
|
|
|||
Loading…
Reference in New Issue