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:

Reply via email to