remove non-working pre-armv4t support from arm asm
[musl] / arch / arm / src / arm / atomics.s
1 .text
2
3 .global __a_barrier
4 .hidden __a_barrier
5 .type __a_barrier,%function
6 __a_barrier:
7         ldr ip,1f
8         ldr ip,[pc,ip]
9         add pc,pc,ip
10 1:      .word __a_barrier_ptr-1b
11 .global __a_barrier_dummy
12 .hidden __a_barrier_dummy
13 __a_barrier_dummy:
14         bx lr
15 .global __a_barrier_oldkuser
16 .hidden __a_barrier_oldkuser
17 __a_barrier_oldkuser:
18         push {r0,r1,r2,r3,ip,lr}
19         mov r1,r0
20         mov r2,sp
21         ldr ip,=0xffff0fc0
22         mov lr,pc
23         mov pc,ip
24         pop {r0,r1,r2,r3,ip,lr}
25         bx lr
26 .global __a_barrier_v6
27 .hidden __a_barrier_v6
28 __a_barrier_v6:
29         mcr p15,0,r0,c7,c10,5
30         bx lr
31 .global __a_barrier_v7
32 .hidden __a_barrier_v7
33 __a_barrier_v7:
34         .word 0xf57ff05b        /* dmb ish */
35         bx lr
36
37 .global __a_cas
38 .hidden __a_cas
39 .type __a_cas,%function
40 __a_cas:
41         ldr ip,1f
42         ldr ip,[pc,ip]
43         add pc,pc,ip
44 1:      .word __a_cas_ptr-1b
45 .global __a_cas_dummy
46 .hidden __a_cas_dummy
47 __a_cas_dummy:
48         mov r3,r0
49         ldr r0,[r2]
50         subs r0,r3,r0
51         streq r1,[r2]
52         bx lr
53 .global __a_cas_v6
54 .hidden __a_cas_v6
55 __a_cas_v6:
56         mov r3,r0
57         mcr p15,0,r0,c7,c10,5
58 1:      .word 0xe1920f9f        /* ldrex r0,[r2] */
59         subs r0,r3,r0
60         .word 0x01820f91        /* strexeq r0,r1,[r2] */
61         teqeq r0,#1
62         beq 1b
63         mcr p15,0,r0,c7,c10,5
64         bx lr
65 .global __a_cas_v7
66 .hidden __a_cas_v7
67 __a_cas_v7:
68         mov r3,r0
69         .word 0xf57ff05b        /* dmb ish */
70 1:      .word 0xe1920f9f        /* ldrex r0,[r2] */
71         subs r0,r3,r0
72         .word 0x01820f91        /* strexeq r0,r1,[r2] */
73         teqeq r0,#1
74         beq 1b
75         .word 0xf57ff05b        /* dmb ish */
76         bx lr
77
78 .global __aeabi_read_tp
79 .type __aeabi_read_tp,%function
80 __aeabi_read_tp:
81
82 .global __a_gettp
83 .hidden __a_gettp
84 .type __a_gettp,%function
85 __a_gettp:
86         ldr r0,1f
87         ldr r0,[pc,r0]
88         add pc,pc,r0
89 1:      .word __a_gettp_ptr-1b
90 .global __a_gettp_dummy
91 .hidden __a_gettp_dummy
92 __a_gettp_dummy:
93         mrc p15,0,r0,c13,c0,3
94         bx lr
95
96 .data
97 .global __a_barrier_ptr
98 .hidden __a_barrier_ptr
99 __a_barrier_ptr:
100         .word 0
101
102 .global __a_cas_ptr
103 .hidden __a_cas_ptr
104 __a_cas_ptr:
105         .word 0
106
107 .global __a_gettp_ptr
108 .hidden __a_gettp_ptr
109 __a_gettp_ptr:
110         .word 0