From: Daniel B. <da...@us...> - 2004-04-05 23:29:19
|
Update of /cvsroot/sbcl/sbcl/src/runtime In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6954/src/runtime Modified Files: coreparse.c dynbind.c linux-os.c purify.c Log Message: 0.8.9.18 Some cosmetic cleanups to make this a better place to start a new x86-64 branch ... remove large chunks of long-float: it didn't work anyway ... parms.lisp happens fractionally earlier so that we can defconstant nil-value slightly more cleanly some raw 3s and 4s get made into functions of n-lowtag-bits Index: coreparse.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/coreparse.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- coreparse.c 30 Mar 2004 11:19:53 -0000 1.22 +++ coreparse.c 5 Apr 2004 23:16:36 -0000 1.23 @@ -90,10 +90,7 @@ lose("warning: core/runtime address mismatch: DYNAMIC_SPACE_START"); } #endif -/* FIXME: Should the conditional here be reg_ALLOC instead of - * defined(LISP_FEATURE_X86) - * ? */ -#if defined(LISP_FEATURE_X86) +#if defined(ALLOCATION_POINTER) SetSymbolValue(ALLOCATION_POINTER, (lispobj)free_pointer,0); #else dynamic_space_free_pointer = free_pointer; @@ -127,7 +124,7 @@ lispobj load_core_file(char *file) { - u32 *header, val, len, *ptr, remaining_len; + lispobj *header, val, len, *ptr, remaining_len; int fd = open(file, O_RDONLY), count; lispobj initial_function = NIL; Index: dynbind.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/dynbind.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- dynbind.c 30 Mar 2004 11:19:57 -0000 1.9 +++ dynbind.c 5 Apr 2004 23:16:36 -0000 1.10 @@ -22,7 +22,7 @@ #include "genesis/binding.h" #include "genesis/thread.h" -#if defined(LISP_FEATURE_X86) +#if defined(BINDING_STACK_POINTER) #define GetBSP() ((struct binding *)SymbolValue(BINDING_STACK_POINTER,thread)) #define SetBSP(value) SetSymbolValue(BINDING_STACK_POINTER, (lispobj)(value),thread) #else Index: linux-os.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/linux-os.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- linux-os.c 29 Nov 2003 00:35:41 -0000 1.32 +++ linux-os.c 5 Apr 2004 23:16:36 -0000 1.33 @@ -222,7 +222,7 @@ sigsegv_handler(int signal, siginfo_t *info, void* void_context) { os_context_t *context = arch_os_get_context(&void_context); - void* fault_addr = (void*)context->uc_mcontext.cr2; + void* fault_addr = (void*)info->si_addr; if (!gencgc_handle_wp_violation(fault_addr)) if(!handle_control_stack_guard_triggered(context,fault_addr)) interrupt_handle_now(signal, info, void_context); Index: purify.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/purify.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- purify.c 3 Apr 2004 18:36:25 -0000 1.39 +++ purify.c 5 Apr 2004 23:16:36 -0000 1.40 @@ -35,9 +35,12 @@ #define PRINTNOISE -#if defined(LISP_FEATURE_X86) -/* again, what's so special about the x86 that this is differently - * visible there than on other platforms? -dan 20010125 +#if defined(LISP_FEATURE_GENCGC) +/* this is another artifact of the poor integration between gencgc and + * the rest of the runtime: on cheney gc there is a global + * dynamic_space_free_pointer which is valid whenever foreign function + * call is active, but in gencgc there's no such variable and we have + * to keep our own */ static lispobj *dynamic_space_free_pointer; #endif @@ -1480,7 +1483,7 @@ SetSymbolValue(READ_ONLY_SPACE_FREE_POINTER, (lispobj)read_only_free,0); SetSymbolValue(STATIC_SPACE_FREE_POINTER, (lispobj)static_free,0); -#if !defined(LISP_FEATURE_X86) +#if !defined(ALLOCATION_POINTER) dynamic_space_free_pointer = current_dynamic_space; set_auto_gc_trigger(bytes_consed_between_gcs); #else |