diff options
author | Craig Topper <craig.topper@gmail.com> | 2014-01-01 15:29:32 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2014-01-01 15:29:32 +0000 |
commit | 91551186028359e36ba21e212b3a0ec451edbb8b (patch) | |
tree | 8b0a3351a841e3e74f2b6f52218ac0662afc6220 /llvm/utils/TableGen/X86RecognizableInstr.cpp | |
parent | de3f751bafe64d1d71d8c87b10a8254b276ec4d9 (diff) | |
download | bcm5719-llvm-91551186028359e36ba21e212b3a0ec451edbb8b.tar.gz bcm5719-llvm-91551186028359e36ba21e212b3a0ec451edbb8b.zip |
Remove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really more like OrRegFrm so we don't need a difference since we can just mask bits.
llvm-svn: 198278
Diffstat (limited to 'llvm/utils/TableGen/X86RecognizableInstr.cpp')
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index 678e843e9c9..4016116de13 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -1162,8 +1162,8 @@ void RecognizableInstr::emitDecodePath(DisassemblerTables &tables) const { assert(filter && "Filter not set"); if (Form == X86Local::AddRegFrm) { - assert(opcodeToSet < 0xf9 && - "Not enough room for all ADDREG_FRM operands"); + assert(((opcodeToSet & 7) == 0) && + "ADDREG_FRM opcode not aligned"); uint8_t currentOpcode; @@ -1175,19 +1175,15 @@ void RecognizableInstr::emitDecodePath(DisassemblerTables &tables) const { currentOpcode, *filter, UID, Is32Bit, IgnoresVEX_L); - - Spec->modifierType = MODIFIER_OPCODE; - Spec->modifierBase = opcodeToSet; } else { tables.setTableFields(opcodeType, insnContext(), opcodeToSet, *filter, UID, Is32Bit, IgnoresVEX_L); - - Spec->modifierType = MODIFIER_NONE; - Spec->modifierBase = opcodeToSet; } + Spec->modifierType = MODIFIER_NONE; + Spec->modifierBase = opcodeToSet; delete filter; |