diff options
Diffstat (limited to 'src/runtime/internal/atomic/sys_nonlinux_arm.s')
| -rw-r--r-- | src/runtime/internal/atomic/sys_nonlinux_arm.s | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/runtime/internal/atomic/sys_nonlinux_arm.s b/src/runtime/internal/atomic/sys_nonlinux_arm.s deleted file mode 100644 index b55bf908a2..0000000000 --- a/src/runtime/internal/atomic/sys_nonlinux_arm.s +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !linux - -#include "textflag.h" - -// TODO(minux): this is only valid for ARMv6+ -// bool armcas(int32 *val, int32 old, int32 new) -// Atomically: -// if(*val == old){ -// *val = new; -// return 1; -// }else -// return 0; -TEXT ·Cas(SB),NOSPLIT,$0 - JMP ·armcas(SB) - -// Non-linux OSes support only single processor machines before ARMv7. -// So we don't need memory barriers if goarm < 7. And we fail loud at -// startup (runtime.checkgoarm) if it is a multi-processor but goarm < 7. - -TEXT ·Load(SB),NOSPLIT|NOFRAME,$0-8 - MOVW addr+0(FP), R0 - MOVW (R0), R1 - - MOVB runtime·goarm(SB), R11 - CMP $7, R11 - BLT 2(PC) - DMB MB_ISH - - 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 - BLT 2(PC) - DMB MB_ISH - - MOVW R2, (R1) - - CMP $7, R8 - BLT 2(PC) - DMB MB_ISH - RET - -TEXT ·Load8(SB),NOSPLIT|NOFRAME,$0-5 - MOVW addr+0(FP), R0 - MOVB (R0), R1 - - MOVB runtime·goarm(SB), R11 - CMP $7, R11 - BLT 2(PC) - DMB MB_ISH - - 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 - BLT 2(PC) - DMB MB_ISH - - MOVB R2, (R1) - - CMP $7, R8 - BLT 2(PC) - DMB MB_ISH - RET - |
