|
@@ -1,14 +1,19 @@
|
|
|
-# setjmp.S atp. Sept. 2001
|
|
|
-# save regs and info needed for a longjmp
|
|
|
+
|
|
|
+/*
|
|
|
+ * 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
|
|
|
+ .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)
|
|
@@ -19,16 +24,16 @@ __sigsetjmp:
|
|
|
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
|
|
|
+ /* 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
|
|
|
+ /* Done */
|
|
|
ret
|
|
|
|