]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
(post-tchain-merge cleanup): x86: handle a couple more syscall kinds
authorJulian Seward <jseward@acm.org>
Sat, 21 Apr 2012 15:34:25 +0000 (15:34 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 21 Apr 2012 15:34:25 +0000 (15:34 +0000)
needed on x86-darwin.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2302

VEX/priv/host_x86_defs.c
VEX/priv/host_x86_isel.c

index 4471f4d835b39c4d82213a21d86e4bb20c458412..282888671878c592a9512f4bc7ab41c48d34d0e2 100644 (file)
@@ -2510,18 +2510,21 @@ Int emit_X86Instr ( /*MB_MOD*/Bool* is_profInc,
       /* movl $magic_number, %ebp. */
       UInt trcval = 0;
       switch (i->Xin.XAssisted.jk) {
-         case Ijk_ClientReq:   trcval = VEX_TRC_JMP_CLIENTREQ;   break;
-         case Ijk_Sys_syscall: trcval = VEX_TRC_JMP_SYS_SYSCALL; break;
-         case Ijk_Sys_int128:  trcval = VEX_TRC_JMP_SYS_INT128;  break;
-         case Ijk_Yield:       trcval = VEX_TRC_JMP_YIELD;       break;
-         case Ijk_EmWarn:      trcval = VEX_TRC_JMP_EMWARN;      break;
-         case Ijk_MapFail:     trcval = VEX_TRC_JMP_MAPFAIL;     break;
-         case Ijk_NoDecode:    trcval = VEX_TRC_JMP_NODECODE;    break;
-         case Ijk_TInval:      trcval = VEX_TRC_JMP_TINVAL;      break;
-         case Ijk_NoRedir:     trcval = VEX_TRC_JMP_NOREDIR;     break;
-         case Ijk_SigTRAP:     trcval = VEX_TRC_JMP_SIGTRAP;     break;
-         case Ijk_SigSEGV:     trcval = VEX_TRC_JMP_SIGSEGV;     break;
-         case Ijk_Boring:      trcval = VEX_TRC_JMP_BORING;      break;
+         case Ijk_ClientReq:    trcval = VEX_TRC_JMP_CLIENTREQ;    break;
+         case Ijk_Sys_syscall:  trcval = VEX_TRC_JMP_SYS_SYSCALL;  break;
+         case Ijk_Sys_int128:   trcval = VEX_TRC_JMP_SYS_INT128;   break;
+         case Ijk_Sys_int129:   trcval = VEX_TRC_JMP_SYS_INT129;   break;
+         case Ijk_Sys_int130:   trcval = VEX_TRC_JMP_SYS_INT130;   break;
+         case Ijk_Sys_sysenter: trcval = VEX_TRC_JMP_SYS_SYSENTER; break;
+         case Ijk_Yield:        trcval = VEX_TRC_JMP_YIELD;        break;
+         case Ijk_EmWarn:       trcval = VEX_TRC_JMP_EMWARN;       break;
+         case Ijk_MapFail:      trcval = VEX_TRC_JMP_MAPFAIL;      break;
+         case Ijk_NoDecode:     trcval = VEX_TRC_JMP_NODECODE;     break;
+         case Ijk_TInval:       trcval = VEX_TRC_JMP_TINVAL;       break;
+         case Ijk_NoRedir:      trcval = VEX_TRC_JMP_NOREDIR;      break;
+         case Ijk_SigTRAP:      trcval = VEX_TRC_JMP_SIGTRAP;      break;
+         case Ijk_SigSEGV:      trcval = VEX_TRC_JMP_SIGSEGV;      break;
+         case Ijk_Boring:       trcval = VEX_TRC_JMP_BORING;       break;
          /* We don't expect to see the following being assisted. */
          case Ijk_Ret:
          case Ijk_Call:
index 25d189bb0fde6db58d033346daf60fbc44c0ba28..802a5fa05d1b359b7fcf2bbf11875379ab19bf91 100644 (file)
@@ -4171,8 +4171,10 @@ static void iselNext ( ISelEnv* env,
    /* Case: some other kind of transfer to any address */
    switch (jk) {
       case Ijk_NoDecode:
-      case Ijk_Sys_int128: case Ijk_ClientReq: case Ijk_NoRedir:
-      case Ijk_Yield: case Ijk_SigTRAP: case Ijk_TInval: {
+      case Ijk_Sys_int128: case Ijk_Sys_int129: case Ijk_Sys_int130:
+      case Ijk_ClientReq: case Ijk_NoRedir:
+      case Ijk_Yield: case Ijk_SigTRAP: case Ijk_TInval:
+      case Ijk_Sys_sysenter: {
          HReg      r     = iselIntExpr_R(env, next);
          X86AMode* amEIP = X86AMode_IR(offsIP, hregX86_EBP());
          addInstr(env, X86Instr_XAssisted(r, amEIP, Xcc_ALWAYS, jk));