From: Daniel Barlow Date: Sun, 17 Aug 2003 02:21:52 +0000 (+0000) Subject: 0.8.2.35 X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=2b88fb32146f381eaa7b20d8b829af92841d63d4;hp=b7cfa0e5e726c2037ba2c6cb32406ff7e9764dd2;p=sbcl.git 0.8.2.35 Move lines above/below LISP_FEATURE_X86 conditionals, to remove non-x86 brokenness introduced by return-elsewhere --- diff --git a/src/runtime/interrupt.c b/src/runtime/interrupt.c index a1db95d..6907777 100644 --- a/src/runtime/interrupt.c +++ b/src/runtime/interrupt.c @@ -517,8 +517,6 @@ void return_to_lisp_function(os_context_t *context, lispobj function) void * fun=native_pointer(function); char *code = &(((struct simple_fun *) fun)->code); - u32 *sp=(u32 *)*os_context_register_addr(context,reg_ESP); - /* Build a stack frame showing `interrupted' so that the * user's backtrace makes (as much) sense (as usual) */ #ifdef LISP_FEATURE_X86 @@ -528,6 +526,8 @@ void return_to_lisp_function(os_context_t *context, lispobj function) * would see, then arrange to have it called directly. post_signal_tramp * is the second half of this function */ + + u32 *sp=(u32 *)*os_context_register_addr(context,reg_ESP); *(sp-14) = post_signal_tramp; /* return address for call_into_lisp */ *(sp-13) = function; /* args for call_into_lisp : function*/ @@ -548,6 +548,7 @@ void return_to_lisp_function(os_context_t *context, lispobj function) *(sp-1)=*os_context_pc_addr(context); #else + struct thread *th=arch_os_get_current_thread(); build_fake_control_stack_frames(th,context); #endif diff --git a/version.lisp-expr b/version.lisp-expr index 21da096..6377070 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.2.34" +"0.8.2.35"