Fix the disassembly of the X86 crc32 instruction. Bug 10702 and rdar://8795217

llvm-svn: 138771
This commit is contained in:
Kevin Enderby 2011-08-29 22:06:28 +00:00
parent 9414a367a1
commit 7e2489a7c9
2 changed files with 6 additions and 2 deletions

View File

@ -24,3 +24,6 @@
# CHECK: pshufb
0x0f 0x38 0x00 0xc0
# CHECK: crc32b %al, %eax
0xf2 0x0f 0x38 0xf0 0xc0

View 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));