From: Chris Hanson Date: Fri, 11 Sep 1992 02:04:05 +0000 (+0000) Subject: Handle stack checks correctly. Previous code was jumping to interrupt X-Git-Tag: 20090517-FFI~8983 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=2052dcfd232aa6aad824f6d1948afd1ae919e5f1;p=mit-scheme.git Handle stack checks correctly. Previous code was jumping to interrupt code even when stack-overflow interrupt was disabled. --- diff --git a/v7/src/microcode/cmpint.c b/v7/src/microcode/cmpint.c index 305cd6172..2ccfc3829 100644 --- a/v7/src/microcode/cmpint.c +++ b/v7/src/microcode/cmpint.c @@ -1,6 +1,6 @@ /* -*-C-*- -$Id: cmpint.c,v 1.48 1992/08/29 12:45:42 jinx Exp $ +$Id: cmpint.c,v 1.49 1992/09/11 02:04:05 cph Exp $ Copyright (c) 1989-92 Massachusetts Institute of Technology @@ -1369,8 +1369,9 @@ DEFUN (comutil_interrupt_closure, (ignore_1, ignore_2, ignore_3, ignore_4), long ignore_1 AND long ignore_2 AND long ignore_3 AND long ignore_4) { - TEST_GC_NEEDED(); - if (((PENDING_INTERRUPTS()) == 0) && (Stack_Pointer > Stack_Guard)) + TEST_GC_NEEDED (); + Stack_Check (Stack_Pointer); + if ((PENDING_INTERRUPTS()) == 0) { SCHEME_OBJECT entry_point; @@ -1402,8 +1403,9 @@ DEFUN (compiler_interrupt_common, long offset AND SCHEME_OBJECT state) { - TEST_GC_NEEDED(); - if (((PENDING_INTERRUPTS()) == 0) && (Stack_Pointer > Stack_Guard)) + TEST_GC_NEEDED (); + Stack_Check (Stack_Pointer); + if ((PENDING_INTERRUPTS()) == 0) { Store_Env (state); Val = state; diff --git a/v8/src/microcode/cmpint.c b/v8/src/microcode/cmpint.c index 305cd6172..2ccfc3829 100644 --- a/v8/src/microcode/cmpint.c +++ b/v8/src/microcode/cmpint.c @@ -1,6 +1,6 @@ /* -*-C-*- -$Id: cmpint.c,v 1.48 1992/08/29 12:45:42 jinx Exp $ +$Id: cmpint.c,v 1.49 1992/09/11 02:04:05 cph Exp $ Copyright (c) 1989-92 Massachusetts Institute of Technology @@ -1369,8 +1369,9 @@ DEFUN (comutil_interrupt_closure, (ignore_1, ignore_2, ignore_3, ignore_4), long ignore_1 AND long ignore_2 AND long ignore_3 AND long ignore_4) { - TEST_GC_NEEDED(); - if (((PENDING_INTERRUPTS()) == 0) && (Stack_Pointer > Stack_Guard)) + TEST_GC_NEEDED (); + Stack_Check (Stack_Pointer); + if ((PENDING_INTERRUPTS()) == 0) { SCHEME_OBJECT entry_point; @@ -1402,8 +1403,9 @@ DEFUN (compiler_interrupt_common, long offset AND SCHEME_OBJECT state) { - TEST_GC_NEEDED(); - if (((PENDING_INTERRUPTS()) == 0) && (Stack_Pointer > Stack_Guard)) + TEST_GC_NEEDED (); + Stack_Check (Stack_Pointer); + if ((PENDING_INTERRUPTS()) == 0) { Store_Env (state); Val = state;