aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorBastian Koppelmann <kbastian@mail.uni-paderborn.de>2020-05-29 09:21:46 +0200
committerBastian Koppelmann <kbastian@mail.uni-paderborn.de>2020-06-01 16:55:12 +0200
commit1ed8739a9ab38f97f901f0988d266b2981627f1b (patch)
tree0717395f5b1cd249044742684cf575b1a4204847 /target
parent44ee3bafb6711180e77dd071beb04fae70b1cb65 (diff)
downloadqemu-1ed8739a9ab38f97f901f0988d266b2981627f1b.zip
qemu-1ed8739a9ab38f97f901f0988d266b2981627f1b.tar.gz
qemu-1ed8739a9ab38f97f901f0988d266b2981627f1b.tar.bz2
target/tricore: Raise EXCP_DEBUG in gen_goto_tb() for singlestep
this is needed for remote gdb connections. Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Message-Id: <20200529072148.284037-4-kbastian@mail.uni-paderborn.de>
Diffstat (limited to 'target')
-rw-r--r--target/tricore/translate.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/target/tricore/translate.c b/target/tricore/translate.c
index 608f72d..7752630 100644
--- a/target/tricore/translate.c
+++ b/target/tricore/translate.c
@@ -3238,6 +3238,14 @@ static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest)
#endif
}
+static void generate_qemu_excp(DisasContext *ctx, int excp)
+{
+ TCGv_i32 tmp = tcg_const_i32(excp);
+ gen_helper_qemu_excp(cpu_env, tmp);
+ ctx->base.is_jmp = DISAS_NORETURN;
+ tcg_temp_free(tmp);
+}
+
static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
{
if (use_goto_tb(ctx, dest)) {
@@ -3247,7 +3255,7 @@ static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
} else {
gen_save_pc(dest);
if (ctx->base.singlestep_enabled) {
- /* raise exception debug */
+ generate_qemu_excp(ctx, EXCP_DEBUG);
}
tcg_gen_exit_tb(NULL, 0);
}
@@ -3266,14 +3274,6 @@ static void generate_trap(DisasContext *ctx, int class, int tin)
tcg_temp_free(tintemp);
}
-static void generate_qemu_excp(DisasContext *ctx, int excp)
-{
- TCGv_i32 tmp = tcg_const_i32(excp);
- gen_helper_qemu_excp(cpu_env, tmp);
- ctx->base.is_jmp = DISAS_NORETURN;
- tcg_temp_free(tmp);
-}
-
static inline void gen_branch_cond(DisasContext *ctx, TCGCond cond, TCGv r1,
TCGv r2, int16_t address)
{