|
@@ -46,13 +46,11 @@ ENTRY( \name )
|
|
|
mov x2, #1
|
|
|
add x1, x1, x0, lsr #3 // Get word offset
|
|
|
lsl x4, x2, x3 // Create mask
|
|
|
- smp_dmb ish
|
|
|
-1: ldxr x2, [x1]
|
|
|
+1: ldaxr x2, [x1]
|
|
|
lsr x0, x2, x3 // Save old value of bit
|
|
|
\instr x2, x2, x4 // toggle bit
|
|
|
- stxr w5, x2, [x1]
|
|
|
+ stlxr w5, x2, [x1]
|
|
|
cbnz w5, 1b
|
|
|
- smp_dmb ish
|
|
|
and x0, x0, #1
|
|
|
3: ret
|
|
|
ENDPROC(\name )
|