4 # Basic setjmp/longjmp implementation
12 .quad .setjmp,.TOC.@tocbase,0
15 .type .setjmp,@function
19 mflr %r11 /* save return address */
20 mfcr %r12 /* save condition register */
21 std %r2,0(%r3) /* save TOC pointer (not needed) */
22 stdu %r1,8(%r3) /* save stack pointer */
25 stdu %r13,8(%r3) /* save caller saved regs */
44 li %r3,0 /* indicate success */
47 .size .setjmp,.-.setjmp
50 .quad .longjmp,.TOC.@tocbase,0
53 .type .longjmp,@function
57 ld %r2,0(%r3) /* restore TOC pointer (not needed) */
58 ldu %r1,8(%r3) /* restore stack */
61 ldu %r13,8(%r3) /* restore caller saved regs */
80 mtlr %r11 /* restore LR */
81 mtcr %r12 /* restore CR */
82 mr %r3,%r4 /* get return value */
85 .size .longjmp,.-.longjmp