From 8b31bf0f0d26018bc11c144b2729a0e0b63b15ca Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Sun, 31 May 1987 16:37:51 +0000 Subject: [PATCH] Add several new compiled-code entry points with return addresses. --- v7/src/microcode/interp.c | 19 +++++++++++++++---- v7/src/microcode/returns.h | 7 +++++-- v7/src/microcode/storage.c | 9 ++++++--- v7/src/microcode/utabmd.scm | 7 +++++-- v8/src/microcode/interp.c | 19 +++++++++++++++---- v8/src/microcode/returns.h | 7 +++++-- v8/src/microcode/utabmd.scm | 7 +++++-- 7 files changed, 56 insertions(+), 19 deletions(-) diff --git a/v7/src/microcode/interp.c b/v7/src/microcode/interp.c index d11103519..e1c3a56fa 100644 --- a/v7/src/microcode/interp.c +++ b/v7/src/microcode/interp.c @@ -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/interp.c,v 9.25 1987/05/29 02:23:02 jinx Exp $ +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/interp.c,v 9.26 1987/05/31 16:36:05 cph Exp $ * * This file contains the heart of the Scheme Scode * interpreter @@ -846,14 +846,15 @@ Pop_Return: define_compiler_restart (RC_COMP_REFERENCE_RESTART, comp_reference_restart) - define_compiler_restart (RC_COMP_ACCESS_RESTART, comp_access_restart) + define_compiler_restart (RC_COMP_ACCESS_RESTART, + comp_access_restart) define_compiler_restart (RC_COMP_UNASSIGNED_P_RESTART, comp_unassigned_p_restart) define_compiler_restart (RC_COMP_UNBOUND_P_RESTART, comp_unbound_p_restart) - + define_compiler_restart (RC_COMP_ASSIGNMENT_RESTART, comp_assignment_restart) @@ -872,10 +873,20 @@ Pop_Return: define_compiler_restart (RC_COMP_ASSIGNMENT_TRAP_RESTART, comp_assignment_trap_restart) - define_compiler_restart (RC_COMP_UUO_LINK_RESTART, comp_uuo_link_restart) + define_compiler_restart (RC_COMP_UUO_LINK_RESTART, + comp_uuo_link_restart) define_compiler_restart (RC_COMP_UUO_LINK_TRAP_RESTART, comp_uuo_link_trap_restart) + + define_compiler_restart (RC_COMP_CACHE_REFERENCE_APPLY_RESTART, + comp_cache_reference_apply_restart) + + define_compiler_restart (RC_COMP_SAFE_REFERENCE_TRAP_RESTART, + comp_safe_reference_trap_restart) + + define_compiler_restart (RC_COMP_UNASSIGNED_P_TRAP_RESTART, + comp_unassigned_p_trap_restart) case RC_REENTER_COMPILED_CODE: compiled_code_restart(); diff --git a/v7/src/microcode/returns.h b/v7/src/microcode/returns.h index 20aba1bf7..3733428a1 100644 --- a/v7/src/microcode/returns.h +++ b/v7/src/microcode/returns.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/returns.h,v 9.24 1987/05/28 16:07:35 cph Exp $ +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/returns.h,v 9.25 1987/05/31 16:37:34 cph Exp $ * * Return codes. These are placed in Return when an * interpreter operation needs to operate in several @@ -118,7 +118,10 @@ MIT in each case. */ #define RC_COMP_ASSIGNMENT_TRAP_RESTART 0x54 #define RC_COMP_UUO_LINK_RESTART 0x55 #define RC_COMP_UUO_LINK_TRAP_RESTART 0x56 +#define RC_COMP_CACHE_REFERENCE_APPLY_RESTART 0x57 +#define RC_COMP_SAFE_REFERENCE_TRAP_RESTART 0x58 +#define RC_COMP_UNASSIGNED_P_TRAP_RESTART 0x59 -#define MAX_RETURN_CODE 0x56 +#define MAX_RETURN_CODE 0x59 /* When adding return codes, don't forget to update storage.c too. */ diff --git a/v7/src/microcode/storage.c b/v7/src/microcode/storage.c index 69df3ad33..781b1d4cc 100644 --- a/v7/src/microcode/storage.c +++ b/v7/src/microcode/storage.c @@ -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/storage.c,v 9.32 1987/05/29 02:24:33 jinx Exp $ +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/storage.c,v 9.33 1987/05/31 16:37:51 cph Exp $ This file defines the storage for global variables for the Scheme Interpreter. */ @@ -236,10 +236,13 @@ char *Return_Names[] = { /* 0x53 */ "COMPILER_REFERENCE_TRAP_RESTART", /* 0x54 */ "COMPILER_ASSIGNMENT_TRAP_RESTART", /* 0x55 */ "COMPILER_UUO_LINK_RESTART", -/* 0x56 */ "COMPILER_UUO_LINK_TRAP_RESTART" +/* 0x56 */ "COMPILER_UUO_LINK_TRAP_RESTART", +/* 0x57 */ "COMPILER_CACHE_REFERENCE_APPLY_RESTART", +/* 0x58 */ "COMPILER_SAFE_REFERENCE_TRAP_RESTART", +/* 0x59 */ "COMPILER_UNASSIGNED_P_TRAP_RESTART" }; -#if (MAX_RETURN_CODE != 0x56) +#if (MAX_RETURN_CODE != 0x59) /* Cause an error */ #include "Returns.h and storage.c are inconsistent -- Names Table" #endif diff --git a/v7/src/microcode/utabmd.scm b/v7/src/microcode/utabmd.scm index b0fb66f52..e9df1f149 100644 --- a/v7/src/microcode/utabmd.scm +++ b/v7/src/microcode/utabmd.scm @@ -37,7 +37,7 @@ ;;;; Machine Dependent Type Tables -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/utabmd.scm,v 9.30 1987/05/29 17:06:51 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/utabmd.scm,v 9.31 1987/05/31 16:35:22 cph Exp $ (declare (usual-integrations)) @@ -319,6 +319,9 @@ COMPILER-ASSIGNMENT-TRAP-RESTART ;54 COMPILER-UUO-LINK-RESTART ;55 COMPILER-UUO-LINK-TRAP-RESTART ;56 + COMPILER-CACHE-REFERENCE-APPLY-RESTART ;57 + COMPILER-SAFE-REFERENCE-TRAP-RESTART ;58 + COMPILER-UNASSIGNED?-TRAP-RESTART ;59 )) ;;; [] Primitives @@ -860,4 +863,4 @@ ;;; This identification string is saved by the system. -"$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/utabmd.scm,v 9.30 1987/05/29 17:06:51 cph Exp $" +"$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/utabmd.scm,v 9.31 1987/05/31 16:35:22 cph Exp $" diff --git a/v8/src/microcode/interp.c b/v8/src/microcode/interp.c index 2bea20e6b..3e53348bd 100644 --- a/v8/src/microcode/interp.c +++ b/v8/src/microcode/interp.c @@ -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/interp.c,v 9.25 1987/05/29 02:23:02 jinx Exp $ +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/interp.c,v 9.26 1987/05/31 16:36:05 cph Exp $ * * This file contains the heart of the Scheme Scode * interpreter @@ -846,14 +846,15 @@ Pop_Return: define_compiler_restart (RC_COMP_REFERENCE_RESTART, comp_reference_restart) - define_compiler_restart (RC_COMP_ACCESS_RESTART, comp_access_restart) + define_compiler_restart (RC_COMP_ACCESS_RESTART, + comp_access_restart) define_compiler_restart (RC_COMP_UNASSIGNED_P_RESTART, comp_unassigned_p_restart) define_compiler_restart (RC_COMP_UNBOUND_P_RESTART, comp_unbound_p_restart) - + define_compiler_restart (RC_COMP_ASSIGNMENT_RESTART, comp_assignment_restart) @@ -872,10 +873,20 @@ Pop_Return: define_compiler_restart (RC_COMP_ASSIGNMENT_TRAP_RESTART, comp_assignment_trap_restart) - define_compiler_restart (RC_COMP_UUO_LINK_RESTART, comp_uuo_link_restart) + define_compiler_restart (RC_COMP_UUO_LINK_RESTART, + comp_uuo_link_restart) define_compiler_restart (RC_COMP_UUO_LINK_TRAP_RESTART, comp_uuo_link_trap_restart) + + define_compiler_restart (RC_COMP_CACHE_REFERENCE_APPLY_RESTART, + comp_cache_reference_apply_restart) + + define_compiler_restart (RC_COMP_SAFE_REFERENCE_TRAP_RESTART, + comp_safe_reference_trap_restart) + + define_compiler_restart (RC_COMP_UNASSIGNED_P_TRAP_RESTART, + comp_unassigned_p_trap_restart) case RC_REENTER_COMPILED_CODE: compiled_code_restart(); diff --git a/v8/src/microcode/returns.h b/v8/src/microcode/returns.h index 317806b9e..d90dc88f2 100644 --- a/v8/src/microcode/returns.h +++ b/v8/src/microcode/returns.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/returns.h,v 9.24 1987/05/28 16:07:35 cph Exp $ +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/returns.h,v 9.25 1987/05/31 16:37:34 cph Exp $ * * Return codes. These are placed in Return when an * interpreter operation needs to operate in several @@ -118,7 +118,10 @@ MIT in each case. */ #define RC_COMP_ASSIGNMENT_TRAP_RESTART 0x54 #define RC_COMP_UUO_LINK_RESTART 0x55 #define RC_COMP_UUO_LINK_TRAP_RESTART 0x56 +#define RC_COMP_CACHE_REFERENCE_APPLY_RESTART 0x57 +#define RC_COMP_SAFE_REFERENCE_TRAP_RESTART 0x58 +#define RC_COMP_UNASSIGNED_P_TRAP_RESTART 0x59 -#define MAX_RETURN_CODE 0x56 +#define MAX_RETURN_CODE 0x59 /* When adding return codes, don't forget to update storage.c too. */ diff --git a/v8/src/microcode/utabmd.scm b/v8/src/microcode/utabmd.scm index bdd62ddde..9563b4e68 100644 --- a/v8/src/microcode/utabmd.scm +++ b/v8/src/microcode/utabmd.scm @@ -37,7 +37,7 @@ ;;;; Machine Dependent Type Tables -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/utabmd.scm,v 9.30 1987/05/29 17:06:51 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/utabmd.scm,v 9.31 1987/05/31 16:35:22 cph Exp $ (declare (usual-integrations)) @@ -319,6 +319,9 @@ COMPILER-ASSIGNMENT-TRAP-RESTART ;54 COMPILER-UUO-LINK-RESTART ;55 COMPILER-UUO-LINK-TRAP-RESTART ;56 + COMPILER-CACHE-REFERENCE-APPLY-RESTART ;57 + COMPILER-SAFE-REFERENCE-TRAP-RESTART ;58 + COMPILER-UNASSIGNED?-TRAP-RESTART ;59 )) ;;; [] Primitives @@ -860,4 +863,4 @@ ;;; This identification string is saved by the system. -"$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/utabmd.scm,v 9.30 1987/05/29 17:06:51 cph Exp $" +"$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/utabmd.scm,v 9.31 1987/05/31 16:35:22 cph Exp $" -- 2.25.1