123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * setjmp.S atp. Sept. 2001
- * Jan-Benedict Glaw <jbglaw@lug-owl.de> 2006
- *
- * Save regs and info needed for a longjmp
- */
- .globl __sigsetjmp
- .align 4
- __sigsetjmp:
- .word 0x0000 /* We look after reg saving here - this */
- /* must match longjmp. */
- movl 0x4(%ap), %r0 /* Our scratch reg */
- /* kenn would probably use movq here. :-) */
- movl %r1, 0x14(%r0) /* save regs */
- movl %r2, 0x18(%r0)
- movl %r3, 0x1c(%r0)
- movl %r4, 0x20(%r0)
- movl %r5, 0x24(%r0)
- movl %r6, 0x28(%r0)
- movl %r7, 0x2c(%r0)
- movl %r8, 0x30(%r0)
- movl %r9, 0x34(%r0)
- movl %r10, 0x38(%r0)
- movl %r11, 0x3c(%r0)
- /* Now save our call frame */
- movl (%fp), (%r0) /* Condition handler (for VMS emulation) */
- movl 0x4(%fp), 0x4(%r0) /* psw */
- movl 0x8(%fp), 0x8(%r0) /* ap */
- movl 0xc(%fp), 0xc(%r0) /* fp */
- movl 0x10(%fp), 0x10(%r0) /* pc */
- /* Call the sigjmp save routine */
- pushl 8(%ap)
- pushl %r0
- calls $2, __sigjmp_save
- /* Done */
- ret
|