On Thu, Nov 10, 2005 at 01:33:55AM +0000, Julian Seward wrote: > > The use of gcc to generate the back end in QEMU's early days was a > clever way to get the project up and running quickly. But surely > now it would be better to transition to a handwritten backend, so > as to be independent future changes in gcc, and generally more robust? > > J >
Yes, Paul Brook is working on it. > On Wednesday 09 November 2005 19:51, Igor Kovalenko wrote: > > Paul Brook wrote: > > >> Notice the 'repz mov' sequence, which seems to be undocumented > > >> instruction. It seems to work somehow but chokes valgrind decoder. > > >> The following patch (against current CVS) fixes this problem, > > > > > > This patch is incorrect. > > > > > > It could match any number of other instructions that happen to end in > > > 0xf3. eg > > > > > > 0: c7 45 00 00 00 00 f3 movl $0xf3000000,0x0(%ebp) > > > 7: c3 ret > > > > > > IIRC the "rep; ret" sequence is to avoid a pipeline stall on Athlon CPUs. > > > Try tuning for a different CPU. > > > > > > Paul > > > > > >> Index: dyngen.c > > >> =================================================================== > > >> RCS file: /cvsroot/qemu/qemu/dyngen.c,v > > >> retrieving revision 1.40 > > >> diff -u -r1.40 dyngen.c > > >> --- dyngen.c 27 Apr 2005 19:55:58 -0000 1.40 > > >> +++ dyngen.c 9 Nov 2005 19:12:38 -0000 > > >> @@ -1387,6 +1387,12 @@ > > >> error("empty code for %s", name); > > >> if (p_end[-1] == 0xc3) { > > >> len--; > > >> + /* This can be 'rep ; ret' optimized return sequence, > > >> + * need to check further and strip the 'rep' prefix > > >> + */ > > >> + if (len != 0 && p_end[-2] == 0xf3) { > > >> + len--; > > >> + } > > >> } else { > > >> error("ret or jmp expected at the end of %s", name); > > >> } > > > > OK I missed that... > > Then a discussion about gcc-4 turns into something much more interesting :) > > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel > -- Infinite complexity begets infinite beauty. Infinite precision begets infinite perfection. _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel