]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
target/ppc: set is_jmp on ppc_tr_breakpoint_check
authorEmilio G. Cota <cota@braap.org>
Mon, 2 Jul 2018 22:02:07 +0000 (18:02 -0400)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 3 Jul 2018 01:00:02 +0000 (11:00 +1000)
The use of GDB breakpoints was broken by b0c2d52 ("target/ppc: convert
to TranslatorOps", 2018-02-16).

Fix it by setting is_jmp, so that we break from the translation loop
as originally intended.

Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target/ppc/translate.c

index e120f2ed0b1ffd0e27ec7329a5f4ad133e4744d1..65c8cc94e75175ec6456f1b6df15f8c68a9c7580 100644 (file)
@@ -7482,6 +7482,7 @@ static bool ppc_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs,
     DisasContext *ctx = container_of(dcbase, DisasContext, base);
 
     gen_debug_exception(ctx);
+    dcbase->is_jmp = DISAS_NORETURN;
     /* The address covered by the breakpoint must be included in
        [tb->pc, tb->pc + tb->size) in order to for it to be
        properly cleared -- thus we increment the PC here so that