diff options
| author | Charles Forsyth <charles.forsyth@gmail.com> | 2015-12-07 16:16:08 +0000 |
|---|---|---|
| committer | Charles Forsyth <charles.forsyth@gmail.com> | 2015-12-07 16:16:08 +0000 |
| commit | 4967dadcdf358bb3b8237f5a877490b87d3d2b8a (patch) | |
| tree | 7dcf8e914875da3f51f4c1b3650a927725dd0dbf | |
| parent | e45fa0eb0763b57d6fb0649c064bc3b95ccdea6c (diff) | |
r4 is not a scratch register (via graham gallagher), issue 342
| -rw-r--r-- | emu/Linux/arm-tas-v7.S | 9 |
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 |
