diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2021-05-19 15:29:15 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2021-05-26 20:43:43 +0200 |
commit | 4f2b21efb398e93293e0fcd97b203563ff53e228 (patch) | |
tree | ddda9c2e3eb6800cc30e484cde2814bb95b066d1 /target/m68k | |
parent | f334bb2562dafbdc4ce673e5811bc9880758b147 (diff) |
target/m68k: call gen_raise_exception() directly if single-stepping in gen_jmp_tb()
In order to consolidate the single-step exception handling into a single
helper, change gen_jmp_tb() so that it calls gen_raise_exception() directly
instead of gen_exception(). This ensures that all single-step exceptions are
now handled directly by gen_raise_exception().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210519142917.16693-3-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'target/m68k')
-rw-r--r-- | target/m68k/translate.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/target/m68k/translate.c b/target/m68k/translate.c index c774f2e8f0..f14ecab5a5 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1518,7 +1518,9 @@ static inline bool use_goto_tb(DisasContext *s, uint32_t dest) static void gen_jmp_tb(DisasContext *s, int n, uint32_t dest) { if (unlikely(is_singlestepping(s))) { - gen_exception(s, dest, EXCP_DEBUG); + update_cc_op(s); + tcg_gen_movi_i32(QREG_PC, dest); + gen_raise_exception(EXCP_DEBUG); } else if (use_goto_tb(s, dest)) { tcg_gen_goto_tb(n); tcg_gen_movi_i32(QREG_PC, dest); |