From ae58d7305de27aa96abf715456a07045018cda98 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 26 Nov 2013 22:49:55 +0100 Subject: [PATCH] Bug 328100 XABORT not implemented. XABORT can be called even when there is no current transaction. In such a case XABORT acts as a NOP. Implement xabort as nop. --- priv/guest_amd64_toIR.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index a17c8f4..7ea5748 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -20270,6 +20270,16 @@ Long dis_ESC_NONE ( return delta; } /* END HACKY SUPPORT FOR xbegin */ + /* BEGIN HACKY SUPPORT FOR xabort */ + if (modrm == 0xF8 && !have66orF2orF3(pfx) && sz == 1 + && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) { + delta++; /* mod/rm byte */ + abyte = getUChar(delta); delta++; + /* There is never a real transaction in progress, so do nothing. */ + DIP("xabort $%d", (Int)abyte); + return delta; + } + /* END HACKY SUPPORT FOR xabort */ goto decode_failure; case 0xC8: /* ENTER */ -- 1.8.3.1