diff options
Diffstat (limited to 'src/thread/arm')
-rw-r--r-- | src/thread/arm/atomics.s | 4 | ||||
-rw-r--r-- | src/thread/arm/clone.s | 13 |
2 files changed, 7 insertions, 10 deletions
diff --git a/src/thread/arm/atomics.s b/src/thread/arm/atomics.s index 101ad391..da50508d 100644 --- a/src/thread/arm/atomics.s +++ b/src/thread/arm/atomics.s @@ -15,10 +15,10 @@ __a_barrier_oldkuser: mov r1,r0 mov r2,sp ldr ip,=0xffff0fc0 - mov lr,pc - mov pc,ip + bl 1f pop {r0,r1,r2,r3,ip,lr} bx lr +1: bx ip .global __a_barrier_v6 .hidden __a_barrier_v6 diff --git a/src/thread/arm/clone.s b/src/thread/arm/clone.s index e16b1326..4ff0c0e8 100644 --- a/src/thread/arm/clone.s +++ b/src/thread/arm/clone.s @@ -19,14 +19,11 @@ __clone: ldmfd sp!,{r4,r5,r6,r7} bx lr -1: mov r0,r6 - tst r5,#1 - bne 1f - mov lr,pc - mov pc,r5 +1: mov fp,#0 + mov r0,r6 + bl 3f 2: mov r7,#1 svc 0 - -1: mov lr,pc - bx r5 b 2b + +3: bx r5 |