Author: tkreuzer Date: Thu May 14 21:52:45 2015 New Revision: 67729
URL: http://svn.reactos.org/svn/reactos?rev=67729&view=rev Log: [CRT] setjmp is a macro expanding to _setjmp or _setjmpex. In soviet russia and on ARM builds, the compiler will convert invocation of _setjmp back into a call to setjmp. The compiler handles _setjmp and _setjmpex in the same way, generating code where r0 points to the jump_buf and r1 points to the current functions stack frame (sp on function entry). So make setjmp and _setjmp aliases to _setjmpex and make the latter use r1.
Modified: trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s
Modified: trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/setjmp/arm/setj... ============================================================================== --- trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s [iso-8859-1] Thu May 14 21:52:45 2015 @@ -12,14 +12,13 @@ /* CODE **********************************************************************/ TEXTAREA
- LEAF_ENTRY _setjmp - - mov r1, sp + LEAF_ENTRY _setjmpex
/* Store r1 (->Frame) and r4 - r11 */ stmia r0!, {r1,r4-r11}
- /* Store r1 (->Sp), lr (->Pc), fp (->Fpscr) */ + /* Store sp (->Sp), lr (->Pc), fp (->Fpscr) */ + mov r1, sp stmia r0!, {r1,lr,fp}
/* Store NEON registers */ @@ -35,7 +34,10 @@ /* Return 0 */ mov r0, #0 bx lr - LEAF_END _setjmp + LEAF_END _setjmpex + + IMPORT _setjmp, WEAK _setjmpex + IMPORT setjmp, WEAK _setjmpex
LEAF_ENTRY longjmp