From b40138532a2345f01538a991ab756fa5e28aa8e0 Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Mon, 25 May 2015 15:01:38 -0700 Subject: Fix crash bug in 32-bit build for certain secnarios with bcd instructions --- m68k_core_x86.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'm68k_core_x86.c') diff --git a/m68k_core_x86.c b/m68k_core_x86.c index ed0265b..7b542da 100644 --- a/m68k_core_x86.c +++ b/m68k_core_x86.c @@ -1451,8 +1451,10 @@ void translate_m68k_abcd_sbcd(m68k_options *opts, m68kinst *inst, host_ea *src_o cmp_ir(code, 0, opts->gen.scratch1, SZ_B); set_flag_cond(opts, CC_S, FLAG_N); - jcc(code, CC_Z, code->cur + 4); + code_ptr no_setz = code->cur+1; + jcc(code, CC_Z, no_setz); set_flag(opts, 0, FLAG_Z); + *no_setz = code->cur - (no_setz + 1); if (dst_op->base != opts->gen.scratch1) { if (dst_op->mode == MODE_REG_DIRECT) { mov_rr(code, opts->gen.scratch1, dst_op->base, SZ_B); -- cgit v1.2.3