Add hook for interrupt-continuation-2.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 26 Aug 1993 05:38:29 +0000 (05:38 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 26 Aug 1993 05:38:29 +0000 (05:38 +0000)
v7/src/microcode/cmpauxmd/i386.m4
v7/src/microcode/cmpint.c
v7/src/microcode/cmpintmd/i386.h
v8/src/microcode/cmpint.c

index 15cc251af0e69dcd46511709d3b1eaeb4d358ab9..768d126ac21d35f51f7c9033c8a8d991a0eee47f 100644 (file)
@@ -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))
index b62dd17877446921026ef2b8c8ebd06ffc5821d4..08f81268ea21830569b66edfb4ddfb68937bb0d2 100644 (file)
@@ -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 */
   };
 \f
 /* 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),
 \f
   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),
index 7f22384b4895ff8eb623ba0a4fd3f75ef3b7f7fb..aa4a33978b6ddf20e120cc64b9f042b8e7ae7d55 100644 (file)
@@ -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 */
 \f
 #ifdef _MACH_UNIX
   {
index b62dd17877446921026ef2b8c8ebd06ffc5821d4..08f81268ea21830569b66edfb4ddfb68937bb0d2 100644 (file)
@@ -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 */
   };
 \f
 /* 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),
 \f
   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),