diff options
Diffstat (limited to 'libgloss/pa/setjmp.S')
-rw-r--r-- | libgloss/pa/setjmp.S | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/libgloss/pa/setjmp.S b/libgloss/pa/setjmp.S deleted file mode 100644 index aa1008788..000000000 --- a/libgloss/pa/setjmp.S +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 1990,1994 The University of Utah and - * the Computer Systems Laboratory (CSL). All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Utah $Hdr: _setjmp.s 1.9 94/12/16$ - */ - - .space $TEXT$ - .subspa $CODE$ - -/* - * The PA jmp_buf is 48 words arranged as follows: - * - * 0- 9: sigcontext - * 10-26: callee save GRs (r3-r18) and DP (r27) - * 27: callee save SRs (sr3) - * 28-47: callee save FRs (fr12-fr21) - */ - -/* - * int - * setjmp(env) - * jmp_buf env; - * - * This routine does not restore signal state. - */ - - .export setjmp,entry - .export _setjmp,entry - .proc - .callinfo -setjmp -_setjmp - .entry - - /* - * save sp and rp in sigcontext, skip the rest - */ - stw %r30,8(%r26) - stw %r2,24(%r26) - ldo 40(%r26),%r26 - - /* - * save dp and the callee saves registers - */ - stwm %r3,4(%r26) - stwm %r4,4(%r26) - stwm %r5,4(%r26) - stwm %r6,4(%r26) - stwm %r7,4(%r26) - stwm %r8,4(%r26) - stwm %r9,4(%r26) - stwm %r10,4(%r26) - stwm %r11,4(%r26) - stwm %r12,4(%r26) - stwm %r13,4(%r26) - stwm %r14,4(%r26) - stwm %r15,4(%r26) - stwm %r16,4(%r26) - stwm %r17,4(%r26) - stwm %r18,4(%r26) - stwm %r27,4(%r26) - - mfsp %sr3,%r9 - stwm %r9,4(%r26) - - bv 0(%r2) - copy %r0,%r28 - .exit - .procend - -/* - * void - * longjmp(env, val) - * jmp_buf env; - * int val; - * - * This routine does not retore signal state. - * This routine does not override a zero val. - */ - - .export longjmp,entry - .export _longjmp,entry - .proc - .callinfo -longjmp -_longjmp - - .entry - - /* - * restore sp and rp - */ - ldw 8(%r26),%r30 - ldw 24(%r26),%r2 - ldo 40(%r26),%r26 - - /* - * restore callee saves registers - */ - ldwm 4(%r26),%r3 - ldwm 4(%r26),%r4 - ldwm 4(%r26),%r5 - ldwm 4(%r26),%r6 - ldwm 4(%r26),%r7 - ldwm 4(%r26),%r8 - ldwm 4(%r26),%r9 - ldwm 4(%r26),%r10 - ldwm 4(%r26),%r11 - ldwm 4(%r26),%r12 - ldwm 4(%r26),%r13 - ldwm 4(%r26),%r14 - ldwm 4(%r26),%r15 - ldwm 4(%r26),%r16 - ldwm 4(%r26),%r17 - ldwm 4(%r26),%r18 - ldwm 4(%r26),%r27 - - ldwm 4(%r26),%r9 - mtsp %r9,%sr3 - - bv 0(%r2) - copy %r25,%r28 - .exit - .procend |