diff options
-rw-r--r-- | m68k_core_x86.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/m68k_core_x86.c b/m68k_core_x86.c index 3137bd1..456e317 100644 --- a/m68k_core_x86.c +++ b/m68k_core_x86.c @@ -381,6 +381,11 @@ uint8_t translate_m68k_op(m68kinst * inst, host_ea * ea, m68k_options * opts, ui if (!dst && inst->dst.addr_mode == MODE_AREG && inst->extra.size == OPSIZE_WORD) { movsx_rr(code, reg, opts->gen.scratch1, SZ_W, SZ_D); ea->base = opts->gen.scratch1; +#ifdef X86_32 + } else if (reg > RBX && inst->extra.size == OPSIZE_BYTE) { + mov_rr(code, reg, opts->gen.scratch1, SZ_D); + ea->base = opts->gen.scratch1; +#endif } else { ea->base = reg; } |