setjmp/longjmp: Also store *(SysBase->ThisTask->tc_SPLower) in jmpbuf
[AROS.git] / arch / arm-all / clib / setjmp.s
blob26fbbc8695199d38216162881cdb9e0e0c6fc77e
1 /*
2 * setjmp.s
4 * Created on: Aug 5, 2009
5 * Author: misc
6 * $Id$
7 */
8 #error need to be update to store *(SysBase->ThisTask->tc_SPLower)
10 #include "aros/arm/asm.h"
12 .text
13 .align 2
14 .global AROS_CDEFNAME(setjmp)
15 .type AROS_CDEFNAME(setjmp),%function
17 AROS_CDEFNAME(setjmp):
18 mov ip, r0 /* Get the env address */
19 str lr, [ip], #4 /* store return address explicitly */
20 stmia ip!, {r4, r5, r6, r7, r8, r9, sl, fp, sp} /* store non-scratch regs */
21 fstmiax ip!, {d8-d15} /* Store VFP registers - we assume they are available! */
22 fmrx r2, fpscr /* VFP condition codes */
23 str r2, [ip], #4
24 mov r0, #0 /* return zero */
25 bx lr