From: Mark Wielaard Date: Thu, 21 Aug 2014 17:46:00 +0000 (+0000) Subject: Bug 330319 - vex amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend) X-Git-Tag: svn/VALGRIND_3_10_1^2~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1dbc79790e754a2aec90d2b6e1ebe215a3e43658;p=thirdparty%2Fvalgrind.git Bug 330319 - vex amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend) We are never in an transaction (xbegin immediately aborts). So this just always generates a General Protection Fault. git-svn-id: svn://svn.valgrind.org/vex/trunk@2931 --- diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index ba23ee2466..9ee8319ee9 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -21107,6 +21107,18 @@ Long dis_ESC_0F ( putIRegRDX(4, mkU32(0)); return delta; } + /* BEGIN HACKY SUPPORT FOR xend */ + /* 0F 01 D5 = XEND */ + if (modrm == 0xD5 && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) { + /* We are never in an transaction (xbegin immediately aborts). + So this just always generates a General Protection Fault. */ + delta += 1; + jmp_lit(dres, Ijk_SigSEGV, guest_RIP_bbstart + delta); + vassert(dres->whatNext == Dis_StopHere); + DIP("xend\n"); + return delta; + } + /* END HACKY SUPPORT FOR xend */ /* BEGIN HACKY SUPPORT FOR xtest */ /* 0F 01 D6 = XTEST */ if (modrm == 0xD6 && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) {