|
From: <sv...@va...> - 2006-08-01 18:36:28
|
Author: sewardj
Date: 2006-08-01 19:36:25 +0100 (Tue, 01 Aug 2006)
New Revision: 1634
Log:
Handle nop-with-an-amode (sheesh. Mutancy. whatever next?) for x86 and
amd64. Fixes #131481 and #131298.
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-amd64/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-amd64/toIR.c 2006-07-24 09:09:36 UTC (rev 1633)
+++ trunk/priv/guest-amd64/toIR.c 2006-08-01 18:36:25 UTC (rev 1634)
@@ -13570,6 +13570,17 @@
delta =3D dis_mul_E_G ( pfx, sz, delta );
break;
=20
+ /* =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- NOPs =3D-=3D-=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D-=3D */
+
+ case 0x1F:
+ if (haveF2orF3(pfx)) goto decode_failure;
+ modrm =3D getUChar(delta);
+ if (epartIsReg(modrm)) goto decode_failure;
+ addr =3D disAMode ( &alen, pfx, delta, dis_buf, 0 );
+ delta +=3D alen;
+ DIP("nop%c %s\n", nameISize(sz), dis_buf);
+ break;
+
/* =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Jcond d32 -=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D */
case 0x80:
case 0x81:
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2006-07-24 09:09:36 UTC (rev 1633)
+++ trunk/priv/guest-x86/toIR.c 2006-08-01 18:36:25 UTC (rev 1634)
@@ -12388,6 +12388,16 @@
delta =3D dis_mul_E_G ( sorb, sz, delta );
break;
=20
+ /* =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- NOPs =3D-=3D-=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D-=3D */
+
+ case 0x1F:
+ modrm =3D getUChar(delta);
+ if (epartIsReg(modrm)) goto decode_failure;
+ addr =3D disAMode ( &alen, sorb, delta, dis_buf );
+ delta +=3D alen;
+ DIP("nop%c %s\n", nameISize(sz), dis_buf);
+ break;
+
/* =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Jcond d32 -=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D */
case 0x80:
case 0x81:
|