|
From: <sv...@va...> - 2007-03-12 00:44:01
|
Author: sewardj
Date: 2007-03-12 00:43:59 +0000 (Mon, 12 Mar 2007)
New Revision: 1741
Log:
Support 'INT $3' instruction on amd64 (counterpart to vx1736).
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-amd64/hdefs.c
Modified: trunk/priv/guest-amd64/toIR.c
===================================================================
--- trunk/priv/guest-amd64/toIR.c 2007-03-11 19:34:13 UTC (rev 1740)
+++ trunk/priv/guest-amd64/toIR.c 2007-03-12 00:43:59 UTC (rev 1741)
@@ -12405,6 +12405,12 @@
/* ------------------------ INT ------------------------ */
+ case 0xCC: /* INT 3 */
+ jmp_lit(Ijk_Trap, guest_RIP_bbstart + delta);
+ dres.whatNext = Dis_StopHere;
+ DIP("int $0x3\n");
+ break;
+
case 0xCD: { /* INT imm8 */
IRJumpKind jk = Ijk_Boring;
if (have66orF2orF3(pfx)) goto decode_failure;
Modified: trunk/priv/host-amd64/hdefs.c
===================================================================
--- trunk/priv/host-amd64/hdefs.c 2007-03-11 19:34:13 UTC (rev 1740)
+++ trunk/priv/host-amd64/hdefs.c 2007-03-12 00:43:59 UTC (rev 1741)
@@ -2640,6 +2640,9 @@
case Ijk_NoRedir:
*p++ = 0xBD;
p = emit32(p, VEX_TRC_JMP_NOREDIR); break;
+ case Ijk_Trap:
+ *p++ = 0xBD;
+ p = emit32(p, VEX_TRC_JMP_TRAP); break;
case Ijk_Ret:
case Ijk_Call:
case Ijk_Boring:
|