From cfd7eb5dcbb971d1caa20e219e337544df1986f1 Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Tue, 2 Aug 2005 21:27:25 +0000 Subject: [PATCH] Implement 0xA0 /* MOV Ob,AL */ and 0xA2 /* MOV AL,Ob */. git-svn-id: svn://svn.valgrind.org/vex/trunk@1311 --- VEX/priv/guest-amd64/toIR.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/VEX/priv/guest-amd64/toIR.c b/VEX/priv/guest-amd64/toIR.c index 3f673d663e..d3d410cffb 100644 --- a/VEX/priv/guest-amd64/toIR.c +++ b/VEX/priv/guest-amd64/toIR.c @@ -11667,12 +11667,14 @@ DisResult disInstr_AMD64_WRK ( //.. case 0x8E: /* MOV Ew,Sw -- MOV to a SEGMENT REGISTER */ //.. delta = dis_mov_Ew_Sw(sorb, delta); //.. break; -//.. -//.. case 0xA0: /* MOV Ob,AL */ -//.. sz = 1; -//.. /* Fall through ... */ + + case 0xA0: /* MOV Ob,AL */ + if (have66orF2orF3(pfx)) goto decode_failure; + sz = 1; + /* Fall through ... */ case 0xA1: /* MOV Ov,eAX */ - if (sz != 8 && sz != 4 && sz != 2) goto decode_failure; + if (sz != 8 && sz != 4 && sz != 2 && sz != 1) + goto decode_failure; d64 = getDisp64(delta); delta += 8; ty = szToITy(sz); @@ -11684,11 +11686,13 @@ DisResult disInstr_AMD64_WRK ( nameIRegRAX(sz)); break; -//.. case 0xA2: /* MOV AL,Ob */ -//.. sz = 1; -//.. /* Fall through ... */ + case 0xA2: /* MOV AL,Ob */ + if (have66orF2orF3(pfx)) goto decode_failure; + sz = 1; + /* Fall through ... */ case 0xA3: /* MOV eAX,Ov */ - if (sz != 8 && sz != 4 && sz != 2) goto decode_failure; + if (sz != 8 && sz != 4 && sz != 2 && sz != 1) + goto decode_failure; d64 = getDisp64(delta); delta += 8; ty = szToITy(sz); -- 2.47.3