From: Guillermo J. Rozas Date: Thu, 26 Aug 1993 05:38:29 +0000 (+0000) Subject: Add hook for interrupt-continuation-2. X-Git-Tag: 20090517-FFI~7982 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=15d9b5ce4b2c11d8460cd0690f77584a69781bd0;p=mit-scheme.git Add hook for interrupt-continuation-2. --- diff --git a/v7/src/microcode/cmpauxmd/i386.m4 b/v7/src/microcode/cmpauxmd/i386.m4 index 15cc251af..768d126ac 100644 --- a/v7/src/microcode/cmpauxmd/i386.m4 +++ b/v7/src/microcode/cmpauxmd/i386.m4 @@ -1,6 +1,6 @@ ### -*-Midas-*- ### -### $Id: i386.m4,v 1.31 1993/08/23 04:46:44 gjr Exp $ +### $Id: i386.m4,v 1.32 1993/08/26 05:38:06 gjr Exp $ ### ### Copyright (c) 1992-1993 Massachusetts Institute of Technology ### @@ -590,6 +590,7 @@ define(define_call_indirection, define_call_indirection(interrupt_procedure,1a) define_call_indirection(interrupt_continuation,1b) define_jump_indirection(interrupt_closure,18) +define_jump_indirection(interrupt_continuation_2,3b) define_c_label(asm_interrupt_dlink) OP(mov,l) TW(LOF(REGBLOCK_DLINK(),regs),REG(edx)) diff --git a/v7/src/microcode/cmpint.c b/v7/src/microcode/cmpint.c index b62dd1787..08f81268e 100644 --- a/v7/src/microcode/cmpint.c +++ b/v7/src/microcode/cmpint.c @@ -1,6 +1,6 @@ /* -*-C-*- -$Id: cmpint.c,v 1.63 1993/08/22 20:25:25 gjr Exp $ +$Id: cmpint.c,v 1.64 1993/08/26 05:38:29 gjr Exp $ Copyright (c) 1989-1993 Massachusetts Institute of Technology @@ -1586,6 +1586,16 @@ DEFUN (comutil_interrupt_ic_procedure, return (compiler_interrupt_common (entry_point_raw, (Fetch_Env ()))); } +SCHEME_UTILITY utility_result +DEFUN (comutil_interrupt_continuation_2, (ignore_1, ignore_2, ignore_3, ignore_4), + long ignore_1 AND + long ignore_2 AND + long ignore_3 AND + long ignore_4) +{ + return (compiler_interrupt_common (0, Val)); +} + C_TO_SCHEME long DEFUN_VOID (comp_interrupt_restart) { @@ -2775,7 +2785,8 @@ utility_table_entry utility_table[] = UTE(comutil_quotient), /* 0x37 */ UTE(comutil_remainder), /* 0x38 */ UTE(comutil_modulo), /* 0x39 */ - UTE(comutil_apply_in_interpreter) /* 0x3a */ + UTE(comutil_apply_in_interpreter), /* 0x3a */ + UTE(comutil_interrupt_continuation_2) /* 0x3b */ }; /* Support for trap handling. */ @@ -2845,6 +2856,7 @@ struct util_descriptor_s utility_descriptor_table[] = UTLD(comutil_interrupt_procedure), UTLD(comutil_interrupt_continuation), UTLD(comutil_interrupt_ic_procedure), + UTLD(comutil_interrupt_continuation_2), UTLD(comp_interrupt_restart), UTLD(comutil_assignment_trap), @@ -2900,6 +2912,7 @@ struct util_descriptor_s utility_descriptor_table[] = UTLD(compiled_entry_closure_p), UTLD(compiled_closure_to_entry), UTLD(compiled_entry_type), + UTLD(declare_compiled_code), UTLD(store_variable_cache), UTLD(extract_variable_cache), UTLD(extract_uuo_link), diff --git a/v7/src/microcode/cmpintmd/i386.h b/v7/src/microcode/cmpintmd/i386.h index 7f22384b4..aa4a33978 100644 --- a/v7/src/microcode/cmpintmd/i386.h +++ b/v7/src/microcode/cmpintmd/i386.h @@ -1,6 +1,6 @@ /* -*-C-*- -$Id: i386.h,v 1.23 1993/08/23 02:19:52 gjr Exp $ +$Id: i386.h,v 1.24 1993/08/26 05:38:15 gjr Exp $ Copyright (c) 1992-1993 Massachusetts Institute of Technology @@ -542,6 +542,10 @@ DEFUN_VOID (i386_reset_hook) SETUP_REGISTER (asm_primitive_error); /* 14 */ SETUP_REGISTER (asm_short_primitive_apply); /* 15 */ + /* No more room for positive offsets without going to 32-bit + offsets! + */ + /* This is a hack to make all the hooks be addressable with byte offsets (instead of longword offsets). The register block extends to negative offsets as well, @@ -597,6 +601,7 @@ DEFUN_VOID (i386_reset_hook) SETUP_REGISTER (asm_sc_apply_size_6); /* -11 */ SETUP_REGISTER (asm_sc_apply_size_7); /* -10 */ SETUP_REGISTER (asm_sc_apply_size_8); /* -9 */ + SETUP_REGISTER (asm_interrupt_continuation_2); /* -8 */ #ifdef _MACH_UNIX { diff --git a/v8/src/microcode/cmpint.c b/v8/src/microcode/cmpint.c index b62dd1787..08f81268e 100644 --- a/v8/src/microcode/cmpint.c +++ b/v8/src/microcode/cmpint.c @@ -1,6 +1,6 @@ /* -*-C-*- -$Id: cmpint.c,v 1.63 1993/08/22 20:25:25 gjr Exp $ +$Id: cmpint.c,v 1.64 1993/08/26 05:38:29 gjr Exp $ Copyright (c) 1989-1993 Massachusetts Institute of Technology @@ -1586,6 +1586,16 @@ DEFUN (comutil_interrupt_ic_procedure, return (compiler_interrupt_common (entry_point_raw, (Fetch_Env ()))); } +SCHEME_UTILITY utility_result +DEFUN (comutil_interrupt_continuation_2, (ignore_1, ignore_2, ignore_3, ignore_4), + long ignore_1 AND + long ignore_2 AND + long ignore_3 AND + long ignore_4) +{ + return (compiler_interrupt_common (0, Val)); +} + C_TO_SCHEME long DEFUN_VOID (comp_interrupt_restart) { @@ -2775,7 +2785,8 @@ utility_table_entry utility_table[] = UTE(comutil_quotient), /* 0x37 */ UTE(comutil_remainder), /* 0x38 */ UTE(comutil_modulo), /* 0x39 */ - UTE(comutil_apply_in_interpreter) /* 0x3a */ + UTE(comutil_apply_in_interpreter), /* 0x3a */ + UTE(comutil_interrupt_continuation_2) /* 0x3b */ }; /* Support for trap handling. */ @@ -2845,6 +2856,7 @@ struct util_descriptor_s utility_descriptor_table[] = UTLD(comutil_interrupt_procedure), UTLD(comutil_interrupt_continuation), UTLD(comutil_interrupt_ic_procedure), + UTLD(comutil_interrupt_continuation_2), UTLD(comp_interrupt_restart), UTLD(comutil_assignment_trap), @@ -2900,6 +2912,7 @@ struct util_descriptor_s utility_descriptor_table[] = UTLD(compiled_entry_closure_p), UTLD(compiled_closure_to_entry), UTLD(compiled_entry_type), + UTLD(declare_compiled_code), UTLD(store_variable_cache), UTLD(extract_variable_cache), UTLD(extract_uuo_link),