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/set…
==============================================================================
--- 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