summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/arm/cas5.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/arm/cas5.s')
-rw-r--r--src/pkg/runtime/arm/cas5.s43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/pkg/runtime/arm/cas5.s b/src/pkg/runtime/arm/cas5.s
deleted file mode 100644
index 20bd3c3e2..000000000
--- a/src/pkg/runtime/arm/cas5.s
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2009 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.
-
-#include "arm/asm.h"
-
-// This version works on pre v6 architectures
-
-// bool cas(int32 *val, int32 old, int32 new)
-// Atomically:
-// if(*val == old){
-// *val = new;
-// return 1;
-// }else
-// return 0;
-
-TEXT runtime·cas(SB),7,$0
- MOVW 0(FP), R0 // *val
- MOVW 4(FP), R1 // old
- MOVW 8(FP), R2 // new
- MOVW $1, R3
- MOVW $runtime·cas_mutex(SB), R4
-l:
- SWPW (R4), R3 // acquire mutex
- CMP $0, R3
- BNE fail0
-
- MOVW (R0), R5
- CMP R1, R5
- BNE fail1
-
- MOVW R2, (R0)
- MOVW R3, (R4) // release mutex
- MOVW $1, R0
- RET
-fail1:
- MOVW R3, (R4) // release mutex
-fail0:
- MOVW $0, R0
- RET
-
-DATA runtime·cas_mutex(SB)/4, $0
-GLOBL runtime·cas_mutex(SB), $4