1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
.file "arm-tas-v7.S"
#ifndef ARMv7
#define DMB mcr p15, 0, r0, c7, c10, 5
#else
#define DMB dmb
#endif
.align 2
.global _tas
.type _tas, %function
_tas:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
@ lr needed for prologue
DMB
mov r1, r0
mov r2, #0xaa
tas1:
ldrex r0, [r1]
cmp r0, #0
bne lockbusy
strex r3, r2, [r1]
cmp r3, #0
bne tas1
DMB
bx lr
lockbusy:
clrex
bx lr
.size _tas, .-_tas
|