| .syntax unified |
| .text |
| |
| .global __a_barrier_dummy |
| .hidden __a_barrier_dummy |
| .type __a_barrier_dummy,%function |
| __a_barrier_dummy: |
| bx lr |
| |
| .global __a_barrier_oldkuser |
| .hidden __a_barrier_oldkuser |
| .type __a_barrier_oldkuser,%function |
| __a_barrier_oldkuser: |
| push {r0,r1,r2,r3,ip,lr} |
| mov r1,r0 |
| mov r2,sp |
| ldr ip,=0xffff0fc0 |
| mov lr,pc |
| mov pc,ip |
| pop {r0,r1,r2,r3,ip,lr} |
| bx lr |
| |
| .global __a_barrier_v6 |
| .hidden __a_barrier_v6 |
| .type __a_barrier_v6,%function |
| __a_barrier_v6: |
| .arch armv6t2 |
| mcr p15,0,r0,c7,c10,5 |
| bx lr |
| |
| .global __a_barrier_v7 |
| .hidden __a_barrier_v7 |
| .type __a_barrier_v7,%function |
| __a_barrier_v7: |
| .arch armv7-a |
| dmb ish |
| bx lr |
| |
| .global __a_cas_dummy |
| .hidden __a_cas_dummy |
| .type __a_cas_dummy,%function |
| __a_cas_dummy: |
| mov r3,r0 |
| ldr r0,[r2] |
| subs r0,r3,r0 |
| streq r1,[r2] |
| bx lr |
| |
| .global __a_cas_v6 |
| .hidden __a_cas_v6 |
| .type __a_cas_v6,%function |
| __a_cas_v6: |
| .arch armv6t2 |
| mov r3,r0 |
| mcr p15,0,r0,c7,c10,5 |
| 1: ldrex r0,[r2] |
| subs r0,r3,r0 |
| strexeq r0,r1,[r2] |
| teqeq r0,#1 |
| beq 1b |
| mcr p15,0,r0,c7,c10,5 |
| bx lr |
| |
| .global __a_cas_v7 |
| .hidden __a_cas_v7 |
| .type __a_cas_v7,%function |
| __a_cas_v7: |
| .arch armv7-a |
| mov r3,r0 |
| dmb ish |
| 1: ldrex r0,[r2] |
| subs r0,r3,r0 |
| strexeq r0,r1,[r2] |
| teqeq r0,#1 |
| beq 1b |
| dmb ish |
| bx lr |
| |
| .global __a_gettp_cp15 |
| .hidden __a_gettp_cp15 |
| .type __a_gettp_cp15,%function |
| __a_gettp_cp15: |
| mrc p15,0,r0,c13,c0,3 |
| bx lr |
| |
| /* Tag this file with minimum ISA level so as not to affect linking. */ |
| .object_arch armv4t |
| .eabi_attribute 6,2 |
| |
| .data |
| .align 2 |
| |
| .global __a_barrier_ptr |
| .hidden __a_barrier_ptr |
| __a_barrier_ptr: |
| .word __a_barrier_dummy |
| |
| .global __a_cas_ptr |
| .hidden __a_cas_ptr |
| __a_cas_ptr: |
| .word __a_cas_dummy |
| |
| .global __a_gettp_ptr |
| .hidden __a_gettp_ptr |
| __a_gettp_ptr: |
| .word __a_gettp_cp15 |