Add scheme_to_interface_ble that falls through to
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sun, 3 Dec 1989 13:09:51 +0000 (13:09 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sun, 3 Dec 1989 13:09:51 +0000 (13:09 +0000)
trampoline_to_interface.  GR3 now holds the address of
scheme_to_interface_ble.

v7/src/microcode/cmpauxmd/hppa.m4
v7/src/microcode/cmpintmd/hppa.h
v8/src/microcode/cmpauxmd/hppa.m4
v8/src/microcode/cmpintmd/hppa.h

index 10ab88ec30b89e7cbea9ff2c0b007478112589d5..923d9b853b9200902987941b3942b9555c3ba23f 100644 (file)
@@ -1,6 +1,6 @@
 changecom(`;');;; -*-Midas-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpauxmd/hppa.m4,v 1.5 1989/11/28 05:06:33 jinx Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpauxmd/hppa.m4,v 1.6 1989/12/03 13:09:51 jinx Exp $
 ;;;
 ;;;    Copyright (c) 1989 Massachusetts Institute of Technology
 ;;;
@@ -89,10 +89,10 @@ changecom(`;');;; -*-Midas-*-
 ;;;;   registers.
 ;;;;
 ;;;; Compiled Scheme code uses the following register convention.
-;;;; Note that trampoline_to_interface and the register block are
+;;;; Note that scheme_to_interface_ble and the register block are
 ;;;; preserved by C calls, but the others are not, since they change
-;;;; dynamically.  scheme_to_interface can be reached at a fixed
-;;;; offset from trampoline_to_interface.
+;;;; dynamically.  scheme_to_interface and trampoline_to_interface can
+;;;; be reached at fixed offsets from scheme_to_interface_ble.
 ;;;;   - gr22 contains the Scheme stack pointer.
 ;;;;   - gr21 contains the Scheme free pointer.
 ;;;;   - gr20 contains a cached version of MemTop.
@@ -102,7 +102,7 @@ changecom(`;');;; -*-Midas-*-
 ;;;;   "register" block.  This block contains the compiler's copy of
 ;;;;   MemTop, the interpreter's registers (val, env, exp, etc),
 ;;;;   temporary locations for compiled code.
-;;;;   - gr3 contains the address of trampoline_to_interface.
+;;;;   - gr3 contains the address of scheme_to_interface_ble.
 ;;;;
 ;;;;   All other registers are available to the compiler.  A
 ;;;;   caller-saves convention is used, so the registers need not be
@@ -150,8 +150,10 @@ interface_to_scheme
        DEP     5,LOW_TC_BIT,TC_LENGTH,19       ; Setup dlink
        .CALL   RTNVAL=GR               ; out=28
        BLE     0(5,26)                 ; Invoke entry point
-       COPY    31,3                    ; Setup trampoline_to_interface
+       COPY    31,3                    ; Setup scheme_to_interface_ble
 \f
+scheme_to_interface_ble
+       ADDI    4,31
 trampoline_to_interface
        COPY    31,26
 scheme_to_interface
@@ -210,6 +212,7 @@ $THISMODULE$
        .EXPORT C_to_interface,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
        .EXPORT interface_to_scheme,PRIV_LEV=3
        .EXPORT interface_to_C,PRIV_LEV=3
+       .EXPORT scheme_to_interface_ble,PRIV_LEV=3
        .EXPORT trampoline_to_interface,PRIV_LEV=3
        .EXPORT scheme_to_interface,PRIV_LEV=3
        .END
index e6fb6b005de60bd2dee36f8c9d97f7b14d4a71c8..7e5908935edcaca9b8f399361184866c9952bc71 100644 (file)
@@ -30,7 +30,7 @@ Technology nor of any adaptation thereof in any advertising,
 promotional, or sales literature without prior written consent from
 MIT in each case. */
 
-/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/hppa.h,v 1.8 1989/11/28 21:12:51 jinx Exp $
+/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/hppa.h,v 1.9 1989/12/03 13:09:30 jinx Exp $
  *
  * Compiled code interface macros.
  *
@@ -293,7 +293,7 @@ procedures and continuations differ from closures) */
      - 8: NON_MARKED header
      - 4: Format word
      - 2: 0xFFF4 (GC Offset to start of block from .+2)
-       0: BLE  0(4,3)          ; call trampoline_to_interface
+       0: BLE  4(4,3)          ; call trampoline_to_interface
        4: LDI  index,28
        8: trampoline dependent storage (0 - 3 longwords)
 
@@ -333,9 +333,9 @@ procedures and continuations differ from closures) */
                                                                        \
   PC = ((unsigned long *) (entry_address));                            \
                                                                        \
-  /*   BLE     0(4,3) */                                               \
+  /*   BLE     4(4,3) */                                               \
                                                                        \
-  *PC++ = ((unsigned long) 0xe4604000);                                        \
+  *PC++ = ((unsigned long) 0xe4602008);                                        \
                                                                        \
   /*   LDO     index(0),28 */                                          \
                                                                        \
index 3eb9cb9b945b617e7743d26ba34e3947bdb70057..e514d6e8635f5aad48548240323e8c1edbb50d3e 100644 (file)
@@ -1,6 +1,6 @@
 changecom(`;');;; -*-Midas-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpauxmd/hppa.m4,v 1.5 1989/11/28 05:06:33 jinx Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpauxmd/hppa.m4,v 1.6 1989/12/03 13:09:51 jinx Exp $
 ;;;
 ;;;    Copyright (c) 1989 Massachusetts Institute of Technology
 ;;;
@@ -89,10 +89,10 @@ changecom(`;');;; -*-Midas-*-
 ;;;;   registers.
 ;;;;
 ;;;; Compiled Scheme code uses the following register convention.
-;;;; Note that trampoline_to_interface and the register block are
+;;;; Note that scheme_to_interface_ble and the register block are
 ;;;; preserved by C calls, but the others are not, since they change
-;;;; dynamically.  scheme_to_interface can be reached at a fixed
-;;;; offset from trampoline_to_interface.
+;;;; dynamically.  scheme_to_interface and trampoline_to_interface can
+;;;; be reached at fixed offsets from scheme_to_interface_ble.
 ;;;;   - gr22 contains the Scheme stack pointer.
 ;;;;   - gr21 contains the Scheme free pointer.
 ;;;;   - gr20 contains a cached version of MemTop.
@@ -102,7 +102,7 @@ changecom(`;');;; -*-Midas-*-
 ;;;;   "register" block.  This block contains the compiler's copy of
 ;;;;   MemTop, the interpreter's registers (val, env, exp, etc),
 ;;;;   temporary locations for compiled code.
-;;;;   - gr3 contains the address of trampoline_to_interface.
+;;;;   - gr3 contains the address of scheme_to_interface_ble.
 ;;;;
 ;;;;   All other registers are available to the compiler.  A
 ;;;;   caller-saves convention is used, so the registers need not be
@@ -150,8 +150,10 @@ interface_to_scheme
        DEP     5,LOW_TC_BIT,TC_LENGTH,19       ; Setup dlink
        .CALL   RTNVAL=GR               ; out=28
        BLE     0(5,26)                 ; Invoke entry point
-       COPY    31,3                    ; Setup trampoline_to_interface
+       COPY    31,3                    ; Setup scheme_to_interface_ble
 \f
+scheme_to_interface_ble
+       ADDI    4,31
 trampoline_to_interface
        COPY    31,26
 scheme_to_interface
@@ -210,6 +212,7 @@ $THISMODULE$
        .EXPORT C_to_interface,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
        .EXPORT interface_to_scheme,PRIV_LEV=3
        .EXPORT interface_to_C,PRIV_LEV=3
+       .EXPORT scheme_to_interface_ble,PRIV_LEV=3
        .EXPORT trampoline_to_interface,PRIV_LEV=3
        .EXPORT scheme_to_interface,PRIV_LEV=3
        .END
index d970749458c25f82f429c7fc310958a9fd434166..edb91f790de5e4d5734fafaeedfd57b1c7a8e86c 100644 (file)
@@ -30,7 +30,7 @@ Technology nor of any adaptation thereof in any advertising,
 promotional, or sales literature without prior written consent from
 MIT in each case. */
 
-/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpintmd/hppa.h,v 1.8 1989/11/28 21:12:51 jinx Exp $
+/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpintmd/hppa.h,v 1.9 1989/12/03 13:09:30 jinx Exp $
  *
  * Compiled code interface macros.
  *
@@ -293,7 +293,7 @@ procedures and continuations differ from closures) */
      - 8: NON_MARKED header
      - 4: Format word
      - 2: 0xFFF4 (GC Offset to start of block from .+2)
-       0: BLE  0(4,3)          ; call trampoline_to_interface
+       0: BLE  4(4,3)          ; call trampoline_to_interface
        4: LDI  index,28
        8: trampoline dependent storage (0 - 3 longwords)
 
@@ -333,9 +333,9 @@ procedures and continuations differ from closures) */
                                                                        \
   PC = ((unsigned long *) (entry_address));                            \
                                                                        \
-  /*   BLE     0(4,3) */                                               \
+  /*   BLE     4(4,3) */                                               \
                                                                        \
-  *PC++ = ((unsigned long) 0xe4604000);                                        \
+  *PC++ = ((unsigned long) 0xe4602008);                                        \
                                                                        \
   /*   LDO     index(0),28 */                                          \
                                                                        \