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 | 95a3ccdd8006044d8f2ba39a9d1034112764589e (patch) | |
tree | 77037a9fea52402b508bc3e6d7ce49fdbd003aca /utils | |
parent | 3062a311ac2d1bf053e15cba621e168572c83a07 (diff) | |
download | llvm-95a3ccdd8006044d8f2ba39a9d1034112764589e.tar.gz llvm-95a3ccdd8006044d8f2ba39a9d1034112764589e.tar.bz2 llvm-95a3ccdd8006044d8f2ba39a9d1034112764589e.tar.xz |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198278 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/X86RecognizableInstr.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/utils/TableGen/X86RecognizableInstr.cpp b/utils/TableGen/X86RecognizableInstr.cpp index 678e843e9c..4016116de1 100644 --- a/utils/TableGen/X86RecognizableInstr.cpp +++ b/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; |