[J-core] qemu updates / roadmap

D. Jeff Dionne Jeff at SE-Instruments.com
Sun May 15 23:23:32 EDT 2016

On May 16, 2016, at 12:01, Rich Felker <dalias at libc.org> wrote:
> although there are a few instructions you can't use in delay slots, mov.l is not one of them.

In fact, there is a special exception that needs to be raised if one of illegal for use instructions appears in a delay slot.  Any 'good' compiler will aggressively try to fill the delay slot with real work, so while this is a corner case, it's one that needs to work.   I'm surprised that qemu has this wrong, I would have expected that to spectacularly barf on any complex hand coded asm or optimised C
> Perhaps qemu has a bug in the case where the branch destination is exactly the instruction after the delay slot, which is somewhat special in the sense that the branch just behaves like a nop.

I doubt that qemu models the pipeline effect as a natural part of its implementation.   Therefore, things like the delay slot need to be bolted on.  I've seen a few other SH2 emulators that get this wrong sometimes also, e.g. one of the sega emulators...

More information about the J-core mailing list