From 2b88fb32146f381eaa7b20d8b829af92841d63d4 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Sun, 17 Aug 2003 02:21:52 +0000 Subject: [PATCH] 0.8.2.35 Move lines above/below LISP_FEATURE_X86 conditionals, to remove non-x86 brokenness introduced by return-elsewhere --- src/runtime/interrupt.c | 5 +++-- version.lisp-expr | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) 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" -- 1.7.10.4