|
From: <sv...@va...> - 2006-12-26 02:04:09
|
Author: sewardj
Date: 2006-12-26 02:04:04 +0000 (Tue, 26 Dec 2006)
New Revision: 1693
Log:
Merge r1673/4 (x86 repne movsw)
Modified:
branches/VEX_3_2_BRANCH/priv/guest-x86/toIR.c
Modified: branches/VEX_3_2_BRANCH/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
--- branches/VEX_3_2_BRANCH/priv/guest-x86/toIR.c 2006-12-26 02:01:37 UTC=
(rev 1692)
+++ branches/VEX_3_2_BRANCH/priv/guest-x86/toIR.c 2006-12-26 02:04:04 UTC=
(rev 1693)
@@ -11919,17 +11919,22 @@
/* According to the Intel manual, "repne movs" should never occur,=
but
* in practice it has happened, so allow for it here... */
case 0xA4: sz =3D 1; /* REPNE MOVS<sz> */
- goto decode_failure;
-//-- case 0xA5:=20
- // dis_REP_op ( CondNZ, dis_MOVS, sz, eip_orig,
- // guest_eip_bbstart+delta, "repne =
movs" );
- // break;
+ case 0xA5:=20
+ dis_REP_op ( X86CondNZ, dis_MOVS, sz, eip_orig,
+ guest_EIP_bbstart+delta, "repne movs" )=
;
+ break;
//--=20
//-- case 0xA6: sz =3D 1; /* REPNE CMPS<sz> */
//-- case 0xA7:
//-- dis_REP_op ( cb, CondNZ, dis_CMPS, sz, eip_orig, eip, "rep=
ne cmps" );
//-- break;
//--=20
+ case 0xAA: sz =3D 1; /* REPNE STOS<sz> */
+ case 0xAB:
+ dis_REP_op ( X86CondNZ, dis_STOS, sz, eip_orig,=20
+ guest_EIP_bbstart+delta, "repne stos" )=
;
+ break;
+
case 0xAE: sz =3D 1; /* REPNE SCAS<sz> */
case 0xAF:
dis_REP_op ( X86CondNZ, dis_SCAS, sz, eip_orig,
|