[Openmcl-cvs-notifications] r7806 - /trunk/ccl/lisp-kernel/x86-exceptions.c

gb at clozure.com gb at clozure.com
Mon Dec 3 04:28:46 MST 2007


Author: gb
Date: Mon Dec  3 06:28:46 2007
New Revision: 7806

Log:
Complain if lisp stack pointer isn't in lisp stack when calling out
for process-interrupt.

Modified:
    trunk/ccl/lisp-kernel/x86-exceptions.c

Modified: trunk/ccl/lisp-kernel/x86-exceptions.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/ccl/lisp-kernel/x86-exceptions.c (original)
+++ trunk/ccl/lisp-kernel/x86-exceptions.c Mon Dec  3 06:28:46 2007
@@ -1216,6 +1216,16 @@
           q;
         natural old_foreign_exception =3D tcr->flags & (1 << TCR_FLAG_BIT_=
FOREIGN_EXCEPTION);
 =

+        {
+          BytePtr interrupted_sp =3D (BytePtr)xpGPR(context, Isp);
+          area *vs_area =3D tcr->vs_area;
+
+          if ((interrupted_sp < vs_area->low) ||
+              (interrupted_sp > vs_area->high)) {
+            Bug(context, "lisp stack pointer not in lisp stack");
+          }
+        }
+          =

         tcr->flags &=3D ~(1 << TCR_FLAG_BIT_FOREIGN_EXCEPTION);
             =

         if (next_tsp !=3D save_tsp) {




More information about the Openmcl-cvs-notifications mailing list