From: Andy Wingo Date: Tue, 10 Dec 2019 21:07:26 +0000 (+0100) Subject: Add out-of-line slow path for abort X-Git-Tag: v2.9.7~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=45b936a8e3e6244849c43a81319b6e82b82c5dc4;p=platform%2Fupstream%2Fguile.git Add out-of-line slow path for abort * libguile/jit.c (compile_abort, compile_abort_slow): Move interpreter fallback to slow path. --- diff --git a/libguile/jit.c b/libguile/jit.c index 2b66e82e9..b9deaae83 100644 --- a/libguile/jit.c +++ b/libguile/jit.c @@ -1828,23 +1828,18 @@ compile_capture_continuation_slow (scm_jit_state *j, uint32_t dst) static void compile_abort (scm_jit_state *j) { - jit_reloc_t k, interp; - jit_movi (j->jit, T0, (intptr_t) (j->ip + 1)); emit_store_ip (j, T0); - k = jit_mov_addr (j->jit, T0); + jit_reloc_t k = jit_mov_addr (j->jit, T0); emit_call_2 (j, scm_vm_intrinsics.abort_to_prompt, thread_operand (), jit_operand_gpr (JIT_OPERAND_ABI_POINTER, T0)); jit_retval (j->jit, T1_PRESERVED); - interp = jit_beqi (j->jit, T1_PRESERVED, 0); + add_slow_path_patch(j, jit_beqi (j->jit, T1_PRESERVED, 0)); emit_reload_sp (j); emit_reload_fp (j); jit_jmpr (j->jit, T1_PRESERVED); - jit_patch_here (j->jit, interp); - emit_exit (j); - jit_patch_here (j->jit, k); j->frame_size_min = 0; @@ -1853,6 +1848,7 @@ compile_abort (scm_jit_state *j) static void compile_abort_slow (scm_jit_state *j) { + emit_exit (j); } static void