summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Forsyth <charles.forsyth@gmail.com>2015-12-07 16:16:08 +0000
committerCharles Forsyth <charles.forsyth@gmail.com>2015-12-07 16:16:08 +0000
commit4967dadcdf358bb3b8237f5a877490b87d3d2b8a (patch)
tree7dcf8e914875da3f51f4c1b3650a927725dd0dbf
parente45fa0eb0763b57d6fb0649c064bc3b95ccdea6c (diff)
r4 is not a scratch register (via graham gallagher), issue 342
-rw-r--r--emu/Linux/arm-tas-v7.S9
1 files changed, 6 insertions, 3 deletions
diff --git a/emu/Linux/arm-tas-v7.S b/emu/Linux/arm-tas-v7.S
index 30515607..584b31fb 100644
--- a/emu/Linux/arm-tas-v7.S
+++ b/emu/Linux/arm-tas-v7.S
@@ -18,10 +18,13 @@ _tas:
tas1:
ldrex r0, [r1]
cmp r0, #0
- bxne lr
- strex r4, r2, [r1]
- cmp r4, #0
+ bne lockbusy
+ strex r3, r2, [r1]
+ cmp r3, #0
bne tas1
DMB
bx lr
+lockbusy:
+ clrex
+ bx lr
.size _tas, .-_tas