diff options
Diffstat (limited to 'src/pkg/sync/asm_arm5.s')
-rw-r--r-- | src/pkg/sync/asm_arm5.s | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/pkg/sync/asm_arm5.s b/src/pkg/sync/asm_arm5.s deleted file mode 100644 index 2cb496887..000000000 --- a/src/pkg/sync/asm_arm5.s +++ /dev/null @@ -1,40 +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. - -// This version works on pre v6 architectures -// func cas(val *int32, old, new int32) bool -// Atomically: -// if *val == old { -// *val = new; -// return true; -// }else -// return false; - -TEXT ·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 - MOVW R0, 16(SP) - RET -fail1: - MOVW R3, (R4) // release mutex -fail0: - MOVW $0, R0 - MOVW R0, 16(SP) - RET - |