Fix the disassembly of the X86 crc32 instruction. Bug 10702 and rdar://8795217
authorKevin Enderby <enderby@apple.com>
Mon, 29 Aug 2011 22:06:28 +0000 (22:06 +0000)
committerKevin Enderby <enderby@apple.com>
Mon, 29 Aug 2011 22:06:28 +0000 (22:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138771 91177308-0d34-0410-b5e6-96231b3b80d8

test/MC/Disassembler/X86/x86-32.txt
utils/TableGen/X86RecognizableInstr.cpp

index dd313f158108682b107bdc65b5297b0327b00082..7e93c63ba6e7349fb706c70e0fdebda01a48f404 100644 (file)
@@ -24,3 +24,6 @@
 
 # CHECK: pshufb
 0x0f 0x38 0x00 0xc0
+
+# CHECK: crc32b %al, %eax
+0xf2 0x0f 0x38 0xf0 0xc0
index 3071d8e2743085c76cc6df8dd887af515f321bc2..2604d42090aee041ce98dd9a32b2df899e11c330 100644 (file)
@@ -68,7 +68,7 @@ namespace X86Local {
     DC = 7, DD = 8, DE = 9, DF = 10,
     XD = 11,  XS = 12,
     T8 = 13,  P_TA = 14,
-    A6 = 15,  A7 = 16
+    A6 = 15,  A7 = 16, TF = 17
   };
 }
 
@@ -257,7 +257,7 @@ RecognizableInstr::RecognizableInstr(DisassemblerTables &tables,
 }
   
 void RecognizableInstr::processInstr(DisassemblerTables &tables,
-                                   const CodeGenInstruction &insn,
+       const CodeGenInstruction &insn,
                                    InstrUID uid)
 {
   // Ignore "asm parser only" instructions.
@@ -805,6 +805,7 @@ void RecognizableInstr::emitDecodePath(DisassemblerTables &tables) const {
     opcodeToSet = Opcode;
     break;
   case X86Local::T8:
+  case X86Local::TF:
     opcodeType = THREEBYTE_38;
     if (needsModRMForDecode(Form))
       filter = new ModFilter(isRegFormat(Form));