diff options
| author | ILyoan <ilyoan@gmail.com> | 2013-03-18 20:29:48 +0900 |
|---|---|---|
| committer | ILyoan <ilyoan@gmail.com> | 2013-03-19 17:23:41 +0900 |
| commit | c1cacc36672e2c6a581848c2909c7bb8a1b01f33 (patch) | |
| tree | 50f087a0cfee90ad5ca323bc8ed564a9e89121b2 | |
| parent | 0f89eab89d9a6af9c4536a943c646ebe41b13002 (diff) | |
Rewrite arm/ccall.s
| -rw-r--r-- | src/rt/arch/arm/ccall.S | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/rt/arch/arm/ccall.S b/src/rt/arch/arm/ccall.S index 4b89cc994a7..345e6462d07 100644 --- a/src/rt/arch/arm/ccall.S +++ b/src/rt/arch/arm/ccall.S @@ -5,23 +5,18 @@ .globl __morestack .hidden __morestack +.type __morestack, %function __morestack: - mov r3, sp + .fnstart + .save {r4, fp, lr} + push {r4, fp, lr} + .movsp r4 + mov r4, sp mov sp, r2 - - str r3, [sp] - str lr, [sp, #-4] - - sub sp, #8 - + mov fp, sp blx r1 - - add sp, #8 - - ldr lr, [sp, #-4] - ldr r3, [sp] - - mov sp, r3 + mov sp, r4 + pop {r4, fp, lr} mov pc, lr - + .fnend |
