Skip to content
Snippets Groups Projects
Commit aa04f6fc authored by rtoy's avatar rtoy
Browse files

Restore alloc-tn and null-tn in interrupt_handle_space_overflow.

These are in global registers and might be trashed.  This makes heap
overflow checking work better on solaris.

There are still bugs.
parent a876e111
No related branches found
No related tags found
No related merge requests found
/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/interrupt.c,v 1.44 2006/11/07 11:24:12 cshapiro Exp $ */ /* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/interrupt.c,v 1.45 2006/11/08 22:12:52 rtoy Exp $ */
/* Interrupt handling magic. */ /* Interrupt handling magic. */
...@@ -693,6 +693,12 @@ interrupt_handle_space_overflow(lispobj error, os_context_t * context) ...@@ -693,6 +693,12 @@ interrupt_handle_space_overflow(lispobj error, os_context_t * context)
SC_REG(context, reg_CFP) = (long) current_control_frame_pointer; SC_REG(context, reg_CFP) = (long) current_control_frame_pointer;
/* This is sparc specific */ /* This is sparc specific */
SC_REG(context, reg_CODE) = ((long) PTR(error)) + type_FunctionPointer; SC_REG(context, reg_CODE) = ((long) PTR(error)) + type_FunctionPointer;
/*
* Restore important Lisp regs. Are there others we need to
* restore?
*/
SC_REG(context, reg_ALLOC) = current_dynamic_space_free_pointer;
SC_REG(context, reg_NIL) = NIL;
#else #else
#error interrupt_handle_space_overflow not implemented for this system #error interrupt_handle_space_overflow not implemented for this system
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment