]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Support 'INT $3' instruction on amd64 (counterpart to vx1736).
authorJulian Seward <jseward@acm.org>
Mon, 12 Mar 2007 00:43:59 +0000 (00:43 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 12 Mar 2007 00:43:59 +0000 (00:43 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1741

VEX/priv/guest-amd64/toIR.c
VEX/priv/host-amd64/hdefs.c

index b18d947661bd972438c99786ec3762c6f14b367d..523ef6fa088a79de99d6a3b814d4cc72a9a1a9e5 100644 (file)
@@ -12405,6 +12405,12 @@ DisResult disInstr_AMD64_WRK (
 
    /* ------------------------ 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;
index 2e1b8246dfa3ff079aa66d44e898d1ba63c6502d..080eafe4f0640627a60d1daef2070eb8388bb380 100644 (file)
@@ -2640,6 +2640,9 @@ Int emit_AMD64Instr ( UChar* buf, Int nbuf, AMD64Instr* i,
          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: