Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-16 Thread Lauro Ramos Venancio
I'm sending a new version of the patch that uses Base Restored data abort model. Lauro diff -ru qemu-0.9.0.orig/target-arm/translate.c qemu-0.9.0/target-arm/translate.c --- qemu-0.9.0.orig/target-arm/translate.c 2007-03-16 11:41:28.0 -0300 +++ qemu-0.9.0/target-arm/translate.c 2007-03-16 1

Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Paul Brook
On Thursday 15 March 2007 21:55, Laurent Desnogues wrote: > Paul Brook a écrit : > > I suggest you check again. I'm fairly sure the arm926 implements the Base > > Restored abort model. > > Yes, but arm7 is Based Updated IIRC. What particular implementation > does Qemu target? Qemu currently emula

Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Laurent Desnogues
Paul Brook a écrit : I suggest you check again. I'm fairly sure the arm926 implements the Base Restored abort model. Yes, but arm7 is Based Updated IIRC. What particular implementation does Qemu target? There are so many IMPLEMENTATION DEFINED and UNPREDICTABLE in the architecture (that are

Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Rodrigo Vivi
On 3/15/07, Paul Brook <[EMAIL PROTECTED]> wrote: > > This is still wrong. > > So, is this a known bug? Still wrong implies it's a bug, and your patch does not fix it properly. I know that... I was not clear.. sorry... what I mean is: do you agree that there was a bug in these instructions?

Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Paul Brook
> > This is still wrong. > > So, is this a known bug? Still wrong implies it's a bug, and your patch does not fix it properly. > > The writeback must happen after the load. > > We code like this because > - we didn't find this restriction in arm reference manual It's the Abort model section you

Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Rodrigo Vivi
Hi Paul, On 3/15/07, Paul Brook <[EMAIL PROTECTED]> wrote: On Thursday 15 March 2007 19:35, Lauro Ramos Venancio wrote: > Qemu-arm is wrongly executing post-indexed loads when Rm and Rd are > the same register. For example: > > ldr r0, [r1], +r0 > > Current behavior: > r0 <- [r1] > r1 <- r1 + r0

Re: [Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Paul Brook
On Thursday 15 March 2007 19:35, Lauro Ramos Venancio wrote: > Qemu-arm is wrongly executing post-indexed loads when Rm and Rd are > the same register. For example: > > ldr r0, [r1], +r0 > > Current behavior: > r0 <- [r1] > r1 <- r1 + r0 > > Expected behavior: > addr <- r1 > r1 <- r1 + r0 > r0 <- [

[Qemu-devel] qemu-arm: wrong execution of post-indexed loads when Rm and Rd are the same register

2007-03-15 Thread Lauro Ramos Venancio
Qemu-arm is wrongly executing post-indexed loads when Rm and Rd are the same register. For example: ldr r0, [r1], +r0 Current behavior: r0 <- [r1] r1 <- r1 + r0 Expected behavior: addr <- r1 r1 <- r1 + r0 r0 <- [addr] The attached patch fixes this bug. Patched by me and Rodrigo Vivi. This patch