Skip to content
Snippets Groups Projects
Commit 1d8db41a authored by Raymond Toy's avatar Raymond Toy
Browse files

Replace BINDING_STACK_START and CONTROL_STACK_START appropriately.

parent 0e258fd9
No related branches found
No related tags found
No related merge requests found
...@@ -454,17 +454,17 @@ sigsegv_handler(HANDLER_ARGS) ...@@ -454,17 +454,17 @@ sigsegv_handler(HANDLER_ARGS)
#ifdef i386 #ifdef i386
interrupt_handle_now(signal, contextstruct); interrupt_handle_now(signal, contextstruct);
#else #else
#define CONTROL_STACK_TOP (((char*) CONTROL_STACK_START) + control_stack_size) #define CONTROL_STACK_TOP (((char*) control_stack) + control_stack_size)
addr = arch_get_bad_addr(signal, code, context); addr = arch_get_bad_addr(signal, code, context);
if (addr != NULL && context->sc_regs[reg_ALLOC] & (1 << 63)) { if (addr != NULL && context->sc_regs[reg_ALLOC] & (1 << 63)) {
context->sc_regs[reg_ALLOC] -= (1 << 63); context->sc_regs[reg_ALLOC] -= (1 << 63);
interrupt_handle_pending(context); interrupt_handle_pending(context);
} else if (addr > CONTROL_STACK_TOP && addr < BINDING_STACK_START) { } else if (addr > CONTROL_STACK_TOP && addr < (os_vm_address_t)binding_stack) {
fprintf(stderr, "Possible stack overflow at 0x%08lX!\n", addr); fprintf(stderr, "Possible stack overflow at 0x%08lX!\n", addr);
/* try to fix control frame pointer */ /* try to fix control frame pointer */
while (!(CONTROL_STACK_START <= *current_control_frame_pointer && while (!((lispobj)control_stack <= *current_control_frame_pointer &&
*current_control_frame_pointer <= CONTROL_STACK_TOP)) *current_control_frame_pointer <= CONTROL_STACK_TOP))
((char *) current_control_frame_pointer) -= sizeof(lispobj); ((char *) current_control_frame_pointer) -= sizeof(lispobj);
ldb_monitor(); ldb_monitor();
......
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