X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fglobals.c;h=6152e258d2bab91ba9c2be2e535e0b91d4ce7496;hb=b870615b146940f661e5d0e9069ca4e16e9f483d;hp=7d40faf3ac24be1bea165767b34933f90a64c8de;hpb=c8322df812da6eb4ef1ae51735b224b2ad0f1503;p=sbcl.git diff --git a/src/runtime/globals.c b/src/runtime/globals.c index 7d40faf..6152e25 100644 --- a/src/runtime/globals.c +++ b/src/runtime/globals.c @@ -14,6 +14,8 @@ */ #include +#include +#include #include "runtime.h" #include "sbcl.h" @@ -28,16 +30,14 @@ lispobj *current_control_frame_pointer; lispobj *current_binding_stack_pointer; #endif -/* ALLOCATION_POINTER is more or less synonymous with RT, it seems. - * Anyone want to do an RT port of sbcl? - */ +/* ALLOCATION_POINTER is x86 or RT. Anyone want to do an RT port? */ #ifndef ALLOCATION_POINTER /* The Object Formerly Known As current_dynamic_space_free_pointer */ lispobj *dynamic_space_free_pointer; #endif -#ifndef INTERNAL_GC_TRIGGER +#ifndef LISP_FEATURE_GENCGC /* GENCGC has its own way to record trigger */ lispobj *current_auto_gc_trigger; #endif @@ -50,8 +50,9 @@ void globals_init(void) { /* Space, stack, and free pointer vars are initialized by * validate() and coreparse(). */ + current_control_frame_pointer = (lispobj *)0; -#ifndef INTERNAL_GC_TRIGGER +#ifndef LISP_FEATURE_GENCGC /* no GC trigger yet */ current_auto_gc_trigger = NULL; #endif @@ -60,14 +61,14 @@ void globals_init(void) foreign_function_call_active = 1; /* Initialize the current Lisp state. */ -#ifndef __i386__ /* if stack grows upward */ - current_control_stack_pointer = (lispobj *)CONTROL_STACK_START; -#else +#ifdef LISP_FEATURE_STACK_GROWS_DOWNWARD_NOT_UPWARD current_control_stack_pointer = (lispobj *)CONTROL_STACK_END; +#else + current_control_stack_pointer = (lispobj *)CONTROL_STACK_START; #endif current_control_frame_pointer = (lispobj *)0; #ifndef BINDING_STACK_POINTER - current_binding_stack_pointer = BINDING_STACK_START; + current_binding_stack_pointer = native_pointer(BINDING_STACK_START); #endif }