[llvm-exegesis][X86] Ignore a few unmeasurable opcodes.
authorClement Courbet <courbet@google.com>
Mon, 2 Nov 2020 14:01:21 +0000 (15:01 +0100)
committerClement Courbet <courbet@google.com>
Fri, 26 Feb 2021 09:48:15 +0000 (10:48 +0100)
Differential Revision: https://reviews.llvm.org/D90744

llvm/tools/llvm-exegesis/lib/X86/Target.cpp

index 15fa54e..96781dd 100644 (file)
@@ -196,6 +196,21 @@ static const char *isInvalidOpcode(const Instruction &Instr) {
   if (OpcodeName.startswith("POP") || OpcodeName.startswith("PUSH") ||
       OpcodeName.startswith("ADJCALLSTACK") || OpcodeName.startswith("LEAVE"))
     return "unsupported opcode: Push/Pop/AdjCallStack/Leave";
+  switch (Instr.Description.Opcode) {
+  case X86::LFS16rm:
+  case X86::LFS32rm:
+  case X86::LFS64rm:
+  case X86::LGS16rm:
+  case X86::LGS32rm:
+  case X86::LGS64rm:
+  case X86::LSS16rm:
+  case X86::LSS32rm:
+  case X86::LSS64rm:
+  case X86::SYSENTER:
+    return "unsupported opcode";
+  default:
+    break;
+  }
   if (const auto reason = isInvalidMemoryInstr(Instr))
     return reason;
   // We do not handle instructions with OPERAND_PCREL.