BSD 4_3_Tahoe development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 17 Dec 1986 07:55:51 +0000 (23:55 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 17 Dec 1986 07:55:51 +0000 (23:55 -0800)
Work on file usr/tmp/housel/franz/tahoe/pushframe.s
Work on file usr/src/ucb/lisp/franz/tahoe/pushframe.s

Synthesized-from: CSRG/cd2/4.3tahoe

usr/src/ucb/lisp/franz/tahoe/pushframe.s [new file with mode: 0644]
usr/tmp/housel/franz/tahoe/pushframe.s [new file with mode: 0644]

diff --git a/usr/src/ucb/lisp/franz/tahoe/pushframe.s b/usr/src/ucb/lisp/franz/tahoe/pushframe.s
new file mode 100644 (file)
index 0000000..f513b1c
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * pushframe : stack a frame 
+ * mess with the standard calls/callf call frame to put things in
+ * the proper order. On entry to _Pushframe we have:
+ * On entry to Pushframe:              On exit:
+ * ______________                      ______________  
+ * | second arg |                      | second arg |
+ * +------------+                      +------------+
+ * | first arg  |                      | first arg  |
+ * +------------+                      +------------+
+ * | 'class' arg|                      | 'class' arg|
+ * +------------+                      +------------+
+ * | saved fp   |  <<= fp              | return addr|
+ * +------------+                      +------------+
+ * |mask|removed|                      | old _errp  |
+ * +------------+                      +------------+
+ * |return addr.|  <<= sp              | saved _bnp |
+ * +------------+                      +------------+
+ *                                     | saved _np  |
+ *                                     +------------+
+ *                                     | saved lbot |  <<= d0
+ *                                     +------------+
+ *                                     | saved r13  |
+ *                                     |       ...  |
+ *                                     | saved r8   |  <<= sp
+ *                                     +------------+
+ */
+       .text
+       .globl  _Pushframe
+       .globl  _qpushframe
+
+_qpushframe:
+_Pushframe:
+       .word 0x0
+       movl    (fp),fp         # give user his fp back
+       movl    (sp),r0         # put program counter in temporary
+       moval   12(sp),sp       # remove pc, 'mask', 'removed', and fp
+       pushl   r0              # stack the return address
+       pushl   _errp
+       pushl   _bnp
+       pushl   r6              # save _np
+       pushl   r7              # save _lbot
+       moval   (sp),r0         # return addr of lbot on stack to caller
+       moval   -24(sp),sp
+       storer  $0x3f00,(sp)    # save r13(fp), r12,r11,r10,r9,r8
+       clrl    _retval         # set retval to C_INITIAL
+       jmp     *40(sp)         # return to caller
diff --git a/usr/tmp/housel/franz/tahoe/pushframe.s b/usr/tmp/housel/franz/tahoe/pushframe.s
new file mode 100644 (file)
index 0000000..f513b1c
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * pushframe : stack a frame 
+ * mess with the standard calls/callf call frame to put things in
+ * the proper order. On entry to _Pushframe we have:
+ * On entry to Pushframe:              On exit:
+ * ______________                      ______________  
+ * | second arg |                      | second arg |
+ * +------------+                      +------------+
+ * | first arg  |                      | first arg  |
+ * +------------+                      +------------+
+ * | 'class' arg|                      | 'class' arg|
+ * +------------+                      +------------+
+ * | saved fp   |  <<= fp              | return addr|
+ * +------------+                      +------------+
+ * |mask|removed|                      | old _errp  |
+ * +------------+                      +------------+
+ * |return addr.|  <<= sp              | saved _bnp |
+ * +------------+                      +------------+
+ *                                     | saved _np  |
+ *                                     +------------+
+ *                                     | saved lbot |  <<= d0
+ *                                     +------------+
+ *                                     | saved r13  |
+ *                                     |       ...  |
+ *                                     | saved r8   |  <<= sp
+ *                                     +------------+
+ */
+       .text
+       .globl  _Pushframe
+       .globl  _qpushframe
+
+_qpushframe:
+_Pushframe:
+       .word 0x0
+       movl    (fp),fp         # give user his fp back
+       movl    (sp),r0         # put program counter in temporary
+       moval   12(sp),sp       # remove pc, 'mask', 'removed', and fp
+       pushl   r0              # stack the return address
+       pushl   _errp
+       pushl   _bnp
+       pushl   r6              # save _np
+       pushl   r7              # save _lbot
+       moval   (sp),r0         # return addr of lbot on stack to caller
+       moval   -24(sp),sp
+       storer  $0x3f00,(sp)    # save r13(fp), r12,r11,r10,r9,r8
+       clrl    _retval         # set retval to C_INITIAL
+       jmp     *40(sp)         # return to caller