X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fglobals.c;h=96636d13e2c052c53f664db8b8214e170830f734;hb=6c4d4d984b1af6b2a73568cec3ab9c8795cff2da;hp=70beb568343f019762c24f193ef7772c0e889282;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/runtime/globals.c b/src/runtime/globals.c index 70beb56..96636d1 100644 --- a/src/runtime/globals.c +++ b/src/runtime/globals.c @@ -18,6 +18,7 @@ #include "runtime.h" #include "sbcl.h" #include "globals.h" +#include "validate.h" int foreign_function_call_active; @@ -27,19 +28,30 @@ 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? + */ + #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 +/* For copying GCs, this points to the start of the dynamic space + * currently in use (that will become the from_space when the next GC + * is done). For the GENCGC, it always points to DYNAMIC_SPACE_START. */ +lispobj *current_dynamic_space; + void globals_init(void) { /* Space, stack, and free pointer vars are initialized by * validate() and coreparse(). */ -#ifndef INTERNAL_GC_TRIGGER +#ifndef LISP_FEATURE_GENCGC /* no GC trigger yet */ current_auto_gc_trigger = NULL; #endif @@ -48,14 +60,14 @@ void globals_init(void) foreign_function_call_active = 1; /* Initialize the current Lisp state. */ -#ifndef __i386__ - 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 }