From: Guillermo J. Rozas Date: Sun, 3 Dec 1989 13:09:51 +0000 (+0000) Subject: Add scheme_to_interface_ble that falls through to X-Git-Tag: 20090517-FFI~11640 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=1b3683838b953acece4b317dbbc6a8f4789827f7;p=mit-scheme.git Add scheme_to_interface_ble that falls through to trampoline_to_interface. GR3 now holds the address of scheme_to_interface_ble. --- diff --git a/v7/src/microcode/cmpauxmd/hppa.m4 b/v7/src/microcode/cmpauxmd/hppa.m4 index 10ab88ec3..923d9b853 100644 --- a/v7/src/microcode/cmpauxmd/hppa.m4 +++ b/v7/src/microcode/cmpauxmd/hppa.m4 @@ -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 +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 diff --git a/v7/src/microcode/cmpintmd/hppa.h b/v7/src/microcode/cmpintmd/hppa.h index e6fb6b005..7e5908935 100644 --- a/v7/src/microcode/cmpintmd/hppa.h +++ b/v7/src/microcode/cmpintmd/hppa.h @@ -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 */ \ \ diff --git a/v8/src/microcode/cmpauxmd/hppa.m4 b/v8/src/microcode/cmpauxmd/hppa.m4 index 3eb9cb9b9..e514d6e86 100644 --- a/v8/src/microcode/cmpauxmd/hppa.m4 +++ b/v8/src/microcode/cmpauxmd/hppa.m4 @@ -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 +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 diff --git a/v8/src/microcode/cmpintmd/hppa.h b/v8/src/microcode/cmpintmd/hppa.h index d97074945..edb91f790 100644 --- a/v8/src/microcode/cmpintmd/hppa.h +++ b/v8/src/microcode/cmpintmd/hppa.h @@ -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 */ \ \