Remove modifierType/Base from X86 disassembler tables as they are no longer used. Removes ~11.5K from static tables.

llvm-svn: 198284
This commit is contained in:
Craig Topper 2014-01-01 21:52:57 +00:00
parent 77011e861b
commit 3321c99a06
4 changed files with 0 additions and 31 deletions

View File

@ -541,9 +541,6 @@ typedef enum {
* its operands.
*/
struct InstructionSpecifier {
uint8_t modifierType;
uint8_t modifierBase;
/* The macro below must be defined wherever this file is included. */
INSTRUCTION_SPECIFIER_FIELDS
};

View File

@ -23,8 +23,6 @@
filtered = false; \
insnContext = IC; \
name = ""; \
modifierType = MODIFIER_NONE; \
modifierBase = 0; \
memset(operands, 0, sizeof(operands)); \
}

View File

@ -362,22 +362,6 @@ static const char* stringForDecisionType(ModRMDecisionType dt) {
#undef ENUM_ENTRY
}
/// stringForModifierType - Returns a statically-allocated string corresponding
/// to an opcode modifier type.
///
/// @param mt - The modifier type.
/// @return - A pointer to the statically-allocated string (e.g.,
/// "MODIFIER_NONE" for MODIFIER_NONE).
static const char* stringForModifierType(ModifierType mt) {
#define ENUM_ENTRY(n) case n: return #n;
switch(mt) {
default:
llvm_unreachable("Unknown modifier type");
MODIFIER_TYPES
};
#undef ENUM_ENTRY
}
DisassemblerTables::DisassemblerTables() {
unsigned i;
@ -603,14 +587,6 @@ void DisassemblerTables::emitInstructionInfo(raw_ostream &o,
o.indent(i * 2) << "{ /* " << index << " */" << "\n";
i++;
o.indent(i * 2) << stringForModifierType(
(ModifierType)InstructionSpecifiers[index].modifierType);
o << ",\n";
o.indent(i * 2) << "0x";
o << format("%02hhx", (uint16_t)InstructionSpecifiers[index].modifierBase);
o << ",\n";
OperandListTy OperandList;
for (unsigned OperandIndex = 0; OperandIndex < X86_MAX_OPERANDS;
++OperandIndex) {

View File

@ -1182,8 +1182,6 @@ void RecognizableInstr::emitDecodePath(DisassemblerTables &tables) const {
*filter,
UID, Is32Bit, IgnoresVEX_L);
}
Spec->modifierType = MODIFIER_NONE;
Spec->modifierBase = opcodeToSet;
delete filter;