For LEA and PEA, while the manual says "size = (long)", it also says that the pre-decrement and post-increment addressing modes are illegal. For JMP, the manual says "unsized". OS_UNSIZED is the way to signal gen_lea_mode to reject those addressing modes.
Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- target/m68k/translate.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index f87eff3b10..b6d46c3bdb 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -2561,7 +2561,7 @@ DISAS_INSN(lea) TCGv tmp; reg = AREG(insn, 9); - tmp = gen_lea(env, s, insn, OS_LONG); + tmp = gen_lea(env, s, insn, OS_UNSIZED); if (IS_NULL_QREG(tmp)) { gen_addr_fault(s); return; @@ -2658,7 +2658,7 @@ DISAS_INSN(pea) { TCGv tmp; - tmp = gen_lea(env, s, insn, OS_LONG); + tmp = gen_lea(env, s, insn, OS_UNSIZED); if (IS_NULL_QREG(tmp)) { gen_addr_fault(s); return; @@ -2909,7 +2909,7 @@ DISAS_INSN(jump) * Load the target address first to ensure correct exception * behavior. */ - tmp = gen_lea(env, s, insn, OS_LONG); + tmp = gen_lea(env, s, insn, OS_UNSIZED); if (IS_NULL_QREG(tmp)) { gen_addr_fault(s); return; -- 2.43.0