| | |
| | |
| | |
| |
|
| | #include "textflag.h" |
| |
|
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | TEXT cas<>(SB),NOSPLIT,$0 |
| | MOVW $0xffff0fc0, R15 |
| |
|
| | TEXT 路Cas(SB),NOSPLIT|NOFRAME,$0 |
| | MOVB runtime路goarm(SB), R11 |
| | CMP $7, R11 |
| | BLT 2(PC) |
| | JMP 路armcas(SB) |
| | JMP kernelcas<>(SB) |
| |
|
| | TEXT kernelcas<>(SB),NOSPLIT,$0 |
| | MOVW ptr+0(FP), R2 |
| | |
| | |
| | MOVW (R2), R0 |
| | MOVW old+4(FP), R0 |
| | MOVW new+8(FP), R1 |
| | BL cas<>(SB) |
| | BCC ret0 |
| | MOVW $1, R0 |
| | MOVB R0, ret+12(FP) |
| | RET |
| | ret0: |
| | MOVW $0, R0 |
| | MOVB R0, ret+12(FP) |
| | RET |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | TEXT memory_barrier<>(SB),NOSPLIT|NOFRAME,$0 |
| | MOVW $0xffff0fa0, R15 |
| |
|
| | TEXT 路Load(SB),NOSPLIT,$0-8 |
| | MOVW addr+0(FP), R0 |
| | MOVW (R0), R1 |
| |
|
| | MOVB runtime路goarm(SB), R11 |
| | CMP $7, R11 |
| | BGE native_barrier |
| | BL memory_barrier<>(SB) |
| | B end |
| | native_barrier: |
| | DMB MB_ISH |
| | end: |
| | MOVW R1, ret+4(FP) |
| | RET |
| |
|
| | TEXT 路Store(SB),NOSPLIT,$0-8 |
| | MOVW addr+0(FP), R1 |
| | MOVW v+4(FP), R2 |
| |
|
| | MOVB runtime路goarm(SB), R8 |
| | CMP $7, R8 |
| | BGE native_barrier |
| | BL memory_barrier<>(SB) |
| | B store |
| | native_barrier: |
| | DMB MB_ISH |
| |
|
| | store: |
| | MOVW R2, (R1) |
| |
|
| | CMP $7, R8 |
| | BGE native_barrier2 |
| | BL memory_barrier<>(SB) |
| | RET |
| | native_barrier2: |
| | DMB MB_ISH |
| | RET |
| |
|
| | TEXT 路Load8(SB),NOSPLIT,$0-5 |
| | MOVW addr+0(FP), R0 |
| | MOVB (R0), R1 |
| |
|
| | MOVB runtime路goarm(SB), R11 |
| | CMP $7, R11 |
| | BGE native_barrier |
| | BL memory_barrier<>(SB) |
| | B end |
| | native_barrier: |
| | DMB MB_ISH |
| | end: |
| | MOVB R1, ret+4(FP) |
| | RET |
| |
|
| | TEXT 路Store8(SB),NOSPLIT,$0-5 |
| | MOVW addr+0(FP), R1 |
| | MOVB v+4(FP), R2 |
| |
|
| | MOVB runtime路goarm(SB), R8 |
| | CMP $7, R8 |
| | BGE native_barrier |
| | BL memory_barrier<>(SB) |
| | B store |
| | native_barrier: |
| | DMB MB_ISH |
| |
|
| | store: |
| | MOVB R2, (R1) |
| |
|
| | CMP $7, R8 |
| | BGE native_barrier2 |
| | BL memory_barrier<>(SB) |
| | RET |
| | native_barrier2: |
| | DMB MB_ISH |
| | RET |
| |
|