aboutsummaryrefslogtreecommitdiff
path: root/target/m68k
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2021-05-19 15:29:15 +0100
committerLaurent Vivier <laurent@vivier.eu>2021-05-26 20:43:43 +0200
commit4f2b21efb398e93293e0fcd97b203563ff53e228 (patch)
treeddda9c2e3eb6800cc30e484cde2814bb95b066d1 /target/m68k
parentf334bb2562dafbdc4ce673e5811bc9880758b147 (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.c4
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);