|
From: <sv...@va...> - 2005-08-02 21:27:27
|
Author: sewardj
Date: 2005-08-02 22:27:25 +0100 (Tue, 02 Aug 2005)
New Revision: 1311
Log:
Implement 0xA0 /* MOV Ob,AL */ and 0xA2 /* MOV AL,Ob */.
Modified:
trunk/priv/guest-amd64/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 2005-08-02 21:20:36 UTC (rev 1310)
+++ trunk/priv/guest-amd64/toIR.c 2005-08-02 21:27:25 UTC (rev 1311)
@@ -11667,12 +11667,14 @@
//.. case 0x8E: /* MOV Ew,Sw -- MOV to a SEGMENT REGISTER */
//.. delta =3D dis_mov_Ew_Sw(sorb, delta);
//.. break;
-//.. =20
-//.. case 0xA0: /* MOV Ob,AL */
-//.. sz =3D 1;
-//.. /* Fall through ... */
+=20
+ case 0xA0: /* MOV Ob,AL */
+ if (have66orF2orF3(pfx)) goto decode_failure;
+ sz =3D 1;
+ /* Fall through ... */
case 0xA1: /* MOV Ov,eAX */
- if (sz !=3D 8 && sz !=3D 4 && sz !=3D 2) goto decode_failure;
+ if (sz !=3D 8 && sz !=3D 4 && sz !=3D 2 && sz !=3D 1)=20
+ goto decode_failure;
d64 =3D getDisp64(delta);=20
delta +=3D 8;
ty =3D szToITy(sz);
@@ -11684,11 +11686,13 @@
nameIRegRAX(sz));
break;
=20
-//.. case 0xA2: /* MOV AL,Ob */
-//.. sz =3D 1;
-//.. /* Fall through ... */
+ case 0xA2: /* MOV AL,Ob */
+ if (have66orF2orF3(pfx)) goto decode_failure;
+ sz =3D 1;
+ /* Fall through ... */
case 0xA3: /* MOV eAX,Ov */
- if (sz !=3D 8 && sz !=3D 4 && sz !=3D 2) goto decode_failure;
+ if (sz !=3D 8 && sz !=3D 4 && sz !=3D 2 && sz !=3D 1)=20
+ goto decode_failure;
d64 =3D getDisp64(delta);=20
delta +=3D 8;
ty =3D szToITy(sz);
|