projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.7.12.35
[sbcl.git]
/
src
/
runtime
/
globals.c
diff --git
a/src/runtime/globals.c
b/src/runtime/globals.c
index
70beb56
..
96636d1
100644
(file)
--- a/
src/runtime/globals.c
+++ b/
src/runtime/globals.c
@@
-18,6
+18,7
@@
#include "runtime.h"
#include "sbcl.h"
#include "globals.h"
#include "runtime.h"
#include "sbcl.h"
#include "globals.h"
+#include "validate.h"
int foreign_function_call_active;
int foreign_function_call_active;
@@
-27,19
+28,30
@@
lispobj *current_control_frame_pointer;
lispobj *current_binding_stack_pointer;
#endif
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
#ifndef ALLOCATION_POINTER
+/* The Object Formerly Known As current_dynamic_space_free_pointer */
lispobj *dynamic_space_free_pointer;
#endif
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
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(). */
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
/* 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. */
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;
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
#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
}
#endif
}