|
From: Eric P. <eri...@or...> - 2010-10-01 19:12:44
|
Le 30/09/2010 19:23, Vince Weaver a écrit : > Hello > > Anyone monitoring Bugzilla might nave noticed I've been slowly adding > patches for various amd64 unhandled instructions. I thought I should > explain my rationale, as suddenly posting a bunch of fixes right before a > proposed release isn't that great an idea. > > I have a large hand-crafted assembly file that I use in an attempt to > validate the hardware performance counters on various systems. It > attempts to do a pretty thorough explortaion of the amd64 instruction > space, in order to find instructions that the hardware counters miscount > (and there are a number of instructions that are miscounted). > > I use DBI tools to sanity check the "known good" counts for this > benchmark. Pin and Qemu can handle it, but there's currently numerous > instructions that Valgrind can't handle (mainly because the instructions > are rare enough that gcc doesn't emit them). Since I prefer using > Valgrind to Pin or Qemu I've been slowly trying to get them all fixed, > but it takes a while. [Fixing Valgrind isn't that bad, it's coming up > with good test cases that's a pain]. > > The eventual goal is to maybe have the exp-bbv plugin compensate for the > overcounts so you can more easily compare to real hardware, but that's a > long term goal. > > The current list of missing instructions that my program turns up (I > haven't opened bugs for all of them yet, many of them had > been noticed previously) > > * Bug 246525 -- moves to/from a segment reg not working. > * Bug 252695 -- xchg r16,r16 (patch available) > * Bug 195825 -- xlatb > * Bugs 126240, 88116 -- enter instruction > * -- push of a segment register > * -- repne cmps > * Bug 143324 -- lea with 16-bit destination (patch available) > * -- fbstp > * -- fbld > * -- fcoms > * Bug 212352 -- fcoml > * -- fcomps > * Bug 126241 -- fdecstp > * -- ficoms > * -- ficoml > * -- ficomps > * -- ficompl > * Bug 126256 -- fnop > * Bug 143325 -- fnsave > * Bug 153326 -- frstor > * -- ftst > * Bugs 143323, 149838 -- fxrstor > > for the sake of record, some of those fixes are also needed to run valgrind on Wine on amd64 to list a few: move from/to seg, push/pop seg, fxrstor those which are not listed here: push eflags, iret I have dirty work for all of those (wine/amd64 does work on valgind/amd64), that also needs some cleanup not sure I'll have time to do it before vg3.6 A+ -- Eric Pouech "The problem with designing something completely foolproof is to underestimate the ingenuity of a complete idiot." (Douglas Adams) |