BSD 4_3 release
[unix-history] / usr / src / lib / libc / vax / gen / setjmp.s
index df0cc2a..b3f3d9a 100644 (file)
@@ -1,4 +1,12 @@
-/*     setjmp.s        4.7     85/03/11        */
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+#ifdef LIBC_SCCS
+       .asciz  "@(#)setjmp.s   5.5 (Berkeley) 3/9/86"
+#endif LIBC_SCCS
 
 /*
  * C library -- setjmp, longjmp
 
 /*
  * C library -- setjmp, longjmp
 
 #include "DEFS.h"
 
 
 #include "DEFS.h"
 
-ENTRY(setjmp, 0)
-       movl    4(ap),r1                # construct sigcontext
+ENTRY(setjmp, R6)
+       movl    4(ap),r6                # construct sigcontext
        subl2   $8,sp                   # space for current struct sigstack
        pushl   sp                      # get current values
        pushl   $0                      # no new values
        calls   $3,_sigstack            # pop args plus signal stack value
        subl2   $8,sp                   # space for current struct sigstack
        pushl   sp                      # get current values
        pushl   $0                      # no new values
        calls   $3,_sigstack            # pop args plus signal stack value
-       movl    *(sp)+,(r1)+            # save onsigstack status of caller
+       movl    (sp)+,(r6)+             # save onsigstack status of caller
        pushl   $0
        calls   $1,_sigblock            # get signal mask
        pushl   $0
        calls   $1,_sigblock            # get signal mask
-       movl    r0,(r1)+                # save signal mask of caller
+       movl    r0,(r6)+                # save signal mask of caller
        movl    (ap),r0
        movl    (ap),r0
-       moval   4(ap)[r0],(r1)+         # save sp of caller
-       movl    12(fp),(r1)+            # save frame pointer of caller
-       movl    8(fp),(r1)+             # save argument pointer of caller
-       movl    16(fp),(r1)+            # save pc of caller
-       movpsl  (r1)                    # save psl of caller
-       movw    4(fp),(r1)
+       moval   4(ap)[r0],(r6)+         # save sp of caller
+       movl    12(fp),(r6)+            # save frame pointer of caller
+       movl    8(fp),(r6)+             # save argument pointer of caller
+       movl    16(fp),(r6)+            # save pc of caller
+       movpsl  (r6)                    # save psl of caller
+       movw    4(fp),(r6)
        clrl    r0
        ret
 
        clrl    r0
        ret
 
@@ -79,12 +87,5 @@ done:
        calls   $1,_sigreturn           # restore previous context
                                        # we should never return
 botch:
        calls   $1,_sigreturn           # restore previous context
                                        # we should never return
 botch:
-       pushl   $msgend-msg
-       pushl   $msg
-       pushl   $2
-       calls   $3,_write
+       calls   $0,_longjmperror
        halt
        halt
-
-       .data
-msg:   .ascii  "longjmp botch\n"
-msgend: