From: Julian Seward Date: Mon, 24 Jul 2006 09:09:36 +0000 (+0000) Subject: Allow a redundant REX prefix for pushfq. Fixes #130785. X-Git-Tag: svn/VALGRIND_3_3_1^2~110 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6407a90600053953d5c39b5a6ff7bd9c286ff43c;p=thirdparty%2Fvalgrind.git Allow a redundant REX prefix for pushfq. Fixes #130785. git-svn-id: svn://svn.valgrind.org/vex/trunk@1633 --- diff --git a/VEX/priv/guest-amd64/toIR.c b/VEX/priv/guest-amd64/toIR.c index a0f097a51b..72161aa09f 100644 --- a/VEX/priv/guest-amd64/toIR.c +++ b/VEX/priv/guest-amd64/toIR.c @@ -12756,8 +12756,10 @@ DisResult disInstr_AMD64_WRK ( case 0x9C: /* PUSHF */ { /* Note. There is no encoding for a 32-bit pushf in 64-bit mode. So sz==4 actually means sz==8. */ + /* 24 July 06: has also been seen with a redundant REX prefix, + so must also allow sz==8. */ if (haveF2orF3(pfx)) goto decode_failure; - vassert(sz == 2 || sz == 4); + vassert(sz == 2 || sz == 4 || sz == 8); if (sz == 4) sz = 8; if (sz != 8) goto decode_failure; // until we know a sz==2 test case exists