On Sun, Mar 04, 2012 at 08:08:12PM +0000, Julian Pidancet wrote:
On Sun, Mar 4, 2012 at 7:54 PM, Kevin O'Connor email@example.com wrote:
The only thing I can think of would be to post-process the assembler and replace "retl" instructions with "retw $2" instructions. I'm not sure if it would work and it would be real ugly.
As I mentionned, ret is not the only instruction causing problems. I've identified issues with leave, enter, iret, and even some forms of the call instruction, and the list is probaly not complete yet. So it could be even more complicated that we think.
It looks like x86emu was never tested with gcc produced code before. And it looks like handling of the 0x66 instruction prefix has been neglected in a lot of different places in the code.
The coreboot project has an improved x86emu - it may have many of these issues fixed.