diff --git a/src/lisp/Darwin-os.c b/src/lisp/Darwin-os.c index 53d2db591103528e30912205bb4a89aae1ef7a7f..fd7425af77fcc60c2afc7134cf00c45d07fe8080 100644 --- a/src/lisp/Darwin-os.c +++ b/src/lisp/Darwin-os.c @@ -464,8 +464,8 @@ valid_addr(os_vm_address_t addr) #ifndef GENCGC || in_range_p(addr, DYNAMIC_1_SPACE_START, dynamic_space_size) #endif - || in_range_p(addr, CONTROL_STACK_START, control_stack_size) - || in_range_p(addr, BINDING_STACK_START, binding_stack_size)) + || in_range_p(addr, (lispobj)control_stack, control_stack_size) + || in_range_p(addr, (lispobj)binding_stack, binding_stack_size)) return TRUE; return FALSE; } diff --git a/src/lisp/gencgc.c b/src/lisp/gencgc.c index 8650a7de11a9f151dea04d1d175dc9e9287bd8be..d21592164dd40954dbd8c1d364a5ca8034f7ee83 100644 --- a/src/lisp/gencgc.c +++ b/src/lisp/gencgc.c @@ -7329,11 +7329,11 @@ verify_gc(void) int static_space_size = (lispobj *) SymbolValue(STATIC_SPACE_FREE_POINTER) - (lispobj *) static_space; int binding_stack_size = (lispobj *) get_binding_stack_pointer() - - (lispobj *) BINDING_STACK_START; + - (lispobj *) binding_stack; verify_space((lispobj *) READ_ONLY_SPACE_START, read_only_space_size); verify_space((lispobj *) static_space, static_space_size); - verify_space((lispobj *) BINDING_STACK_START, binding_stack_size); + verify_space((lispobj *) binding_stack, binding_stack_size); verify_space((lispobj *) (void *) &scavenger_hooks, 1); } diff --git a/src/lisp/x86-assem.S b/src/lisp/x86-assem.S index 3ab41d69f158adc7603e0928f7c5b8bbff720881..b7aa7f183ecb804d5b00563ef53cbd6172952cba 100644 --- a/src/lisp/x86-assem.S +++ b/src/lisp/x86-assem.S @@ -143,7 +143,8 @@ FUNCDEF(call_into_lisp) movl %eax, GNAME(foreign_function_call_active) movl %esp,%ebx # remember current stack - cmpl $CONTROL_STACK_START,%esp + cmpl GNAME(control_stack), %esp + jbe ChangeToLispStack cmpl GNAME(control_stack_end), %esp jbe OnLispStack