On Wed, 9 Jan 2008, Marius Groeger wrote:
> On Wed, 9 Jan 2008, Marius Groeger wrote:
>
> > I'm having problems with qemu's (-M prep, -cpu 604) handling of the
> > MSR_SE bit. My gdbstub can successfully step along regular code, but
> > qemu chokes when stepping over a branch instruction like "blr".
> > (Needless to say, that same gdbstub works fine on real hardware). I
> > tried older versions of qemu and found that the code base 8 months ago
> > worked fine.
>
> I have now verified with booting a Linux image into qemu-system-ppc - same
> problem. When stepi'ing over the following sequence, the system chokes on a
> "bl" instruction:
The attached patch fixes the problem, but I have to admit I can't tell
for sure if this doesn't break other things (such as qemu's built-in
GDB server). Could some QEMU ppc expert please comment on this?
Thanks
Marius
--
Marius Groeger <[EMAIL PROTECTED]>
SYSGO AG Embedded and Real-Time Software
Voice: +49 6136 9948 0 FAX: +49 6136 9948 10
www.sysgo.com | www.elinos.com | www.osek.de | www.pikeos.com
Index: target-ppc/translate.c
===================================================================
RCS file: /sources/qemu/qemu/target-ppc/translate.c,v
retrieving revision 1.115
diff -u -r1.115 translate.c
--- target-ppc/translate.c 24 Nov 2007 02:03:55 -0000 1.115
+++ target-ppc/translate.c 10 Jan 2008 13:54:36 -0000
@@ -2811,8 +2811,6 @@
#endif
gen_op_b_T1();
gen_op_set_T0((long)tb + n);
- if (ctx->singlestep_enabled)
- gen_op_debug();
gen_op_exit_tb();
} else {
gen_set_T1(dest);
@@ -2823,8 +2821,6 @@
#endif
gen_op_b_T1();
gen_op_reset_T0();
- if (ctx->singlestep_enabled)
- gen_op_debug();
gen_op_exit_tb();
}
}
@@ -3007,8 +3003,6 @@
gen_op_btest_T1(ctx->nip);
gen_op_reset_T0();
no_test:
- if (ctx->singlestep_enabled)
- gen_op_debug();
gen_op_exit_tb();
}
out: