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
>
> Expected behavior:
> addr <- r1
> r1 <- r1 + r0
> r0 <- [addr]

This is still wrong.
So, is this a known bug?

The writeback must happen after the load.
We code like this because
- we didn't find this restriction in arm reference manual
- the LLVM uses this instruction expecting a result like this
- That was the result that we got running these instructions in an OMAP1710

Your
implementation will give incorrect results if the load faults.

Another thing, is that in this manual (at page A2-18) there are 2
rules for data abort:
- Base Restored Abort Model and Base Updated Abort Model.

So, we can not understand why it will give incorect results if a load faults...


Paul

thanks
Rodrigo Vivi
vivijim at freenode



_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel



_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to