The rationale for this is the same as for commit 3d406995e21bf1695f6abc743fb37d16cc387f9e ("jit: remove is_jit_method() and introduce is_native()")
Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- arch/x86/include/arch/signal.h | 2 +- arch/x86/signal.c | 9 ++------- vm/signal.c | 8 ++++++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/arch/x86/include/arch/signal.h b/arch/x86/include/arch/signal.h index 1940a34..69406cd 100644 --- a/arch/x86/include/arch/signal.h +++ b/arch/x86/include/arch/signal.h @@ -19,7 +19,7 @@ struct compilation_unit; -bool signal_from_jit_method(void *ctx); +bool signal_from_native(void *ctx); struct compilation_unit *get_signal_source_cu(void *ctx); #endif diff --git a/arch/x86/signal.c b/arch/x86/signal.c index 61d7eba..f36464c 100644 --- a/arch/x86/signal.c +++ b/arch/x86/signal.c @@ -32,18 +32,13 @@ #include <vm/signal.h> -bool signal_from_jit_method(void *ctx) +bool signal_from_native(void *ctx) { ucontext_t *uc; - unsigned long ip; uc = ctx; - ip = uc->uc_mcontext.gregs[REG_IP]; - if (is_native(ip)) - return false; - - return true; + return is_native(uc->uc_mcontext.gregs[REG_IP]); } struct compilation_unit *get_signal_source_cu(void *ctx) diff --git a/vm/signal.c b/vm/signal.c index d52ea50..2453549 100644 --- a/vm/signal.c +++ b/vm/signal.c @@ -51,19 +51,23 @@ static void throw_null_pointer_exception(void) static void sigfpe_handler(int sig, siginfo_t *si, void *ctx) { - if (signal_from_jit_method(ctx) && si->si_code == FPE_INTDIV) { + if (signal_from_native(ctx)) + goto exit; + + if (si->si_code == FPE_INTDIV) { if (install_signal_bh(ctx, throw_arithmetic_exception) == 0) return; fprintf(stderr, "%s: install_signal_bh() failed.\n", __func__); } + exit: print_backtrace_and_die(sig, si, ctx); } static void sigsegv_handler(int sig, siginfo_t *si, void *ctx) { - if (!signal_from_jit_method(ctx)) + if (signal_from_native(ctx)) goto exit; /* Assume that zero-page access is caused by dereferencing a -- 1.6.0.6 ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel