From: Julian Seward Date: Sat, 14 Jul 2012 14:31:17 +0000 (+0000) Subject: Handle UD2 a bit better. This change causes Vex to decode UD2 like X-Git-Tag: svn/VALGRIND_3_8_1^2~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6272db414353619485295b13b69077e75babef05;p=thirdparty%2Fvalgrind.git Handle UD2 a bit better. This change causes Vex to decode UD2 like any other instruction -- so it doesn't complain -- but Valgrind still complains when synthesising the SIGILL for the guest. Marginally less confusing than it was before. git-svn-id: svn://svn.valgrind.org/vex/trunk@2433 --- diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index f290a17d45..56a0249e2b 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -19653,6 +19653,13 @@ Long dis_ESC_0F ( DIP("syscall\n"); return delta; + case 0x0B: /* UD2 */ + stmt( IRStmt_Put( OFFB_RIP, mkU64(guest_RIP_curr_instr) ) ); + jmp_lit(dres, Ijk_NoDecode, guest_RIP_curr_instr); + vassert(dres->whatNext == Dis_StopHere); + DIP("ud2\n"); + return delta; + case 0x1F: if (haveF2orF3(pfx)) goto decode_failure; modrm = getUChar(delta);