|
From: Dirk M. <mu...@kd...> - 2003-11-20 20:46:24
|
CVS commit by mueller:
add prefetch(w) support - the 3dnow! version of it. doesn't hurt
supporting and its very easy.
MERGE TO STABLE
M +17 -6 vg_to_ucode.c 1.110
--- valgrind/coregrind/vg_to_ucode.c #1.109:1.110
@@ -6364,5 +6364,7 @@ static Addr disInstr ( UCodeBlock* cb, A
/* =-=-=-=-=-=-=-=-=- MMXery =-=-=-=-=-=-=-=-=-=-= */
+ case 0x0D: /* PREFETCH / PREFETCHW - 3Dnow!ery*/
case 0x18: /* PREFETCHT0/PREFETCHT1/PREFETCHT2/PREFETCHNTA */
+
vg_assert(sz == 4);
modrm = getUChar(eip);
@@ -6376,4 +6378,12 @@ static Addr disInstr ( UCodeBlock* cb, A
if (dis) {
UChar* hintstr;
+ if(opc == 0x0D) {
+ switch (gregOfRM(modrm)) {
+ case 0: hintstr = ""; break;
+ case 1: hintstr = "w"; break;
+ default: goto decode_failure;
+ }
+ }
+ else {
switch (gregOfRM(modrm)) {
case 0: hintstr = "nta"; break;
@@ -6382,4 +6392,5 @@ static Addr disInstr ( UCodeBlock* cb, A
case 3: hintstr = "t2"; break;
default: goto decode_failure;
+ }
}
VG_(printf)("prefetch%s ...\n", hintstr);
|