On Tue, May 13, 2014 at 08:08:41PM +0200, Gerhard Wiesinger wrote:
> On 13.05.2014 17:41, Kevin O'Connor wrote:
> > The x86emu code does not properly emulate "leal" (as near as I can tell
> >it treats it as a "leaw" instead), which leads to all sorts of bizarre
> >behavior when it tries to interpret the code. This type of issue has
> >occurred for a bunch of instructions (on both x86emu and on an emulator
> >Windows uses) and we've worked around it in SeaVGABIOS with a combination
> >of gcc compiler flags and by post processing gcc's assembler to remove
> >some troublesome instructions. Unfortunately, I don't know of any way to
> >convince gcc to not emit the "leal" instruction and the instruction
> >appears too complex to readily patch out of the assembler.
> 
> Can't that wrong behaviour of "leal" instruction be fixed in qemu?

QEMU doesn't have any issue with leal.  x86emu is a separate program
that implements a (partial) x86 interpretter.

The issue being reported is when QEMU runs a guest which uses x86emu
to interpret SeaVGABIOS - QEMU is correctly emulating what a real
machine would do (random faults) and thus it can't be fixed in QEMU
itself.

-Kevin

Reply via email to