diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-08-01 07:39:18 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-08-01 07:39:18 +0000 |
commit | 5a2c607153993fb7f7e04f9482520b64dffe5757 (patch) | |
tree | f14464b140bcf52862a0fb65db6dde5b76d17fc7 /lib/Target/X86/Disassembler/X86DisassemblerDecoder.h | |
parent | adfe2637b839efe041165f27c9ad57e3befb2be0 (diff) | |
download | external_llvm-5a2c607153993fb7f7e04f9482520b64dffe5757.tar.gz external_llvm-5a2c607153993fb7f7e04f9482520b64dffe5757.tar.bz2 external_llvm-5a2c607153993fb7f7e04f9482520b64dffe5757.zip |
Add more indirection to the disassembler tables to reduce amount of space used to store the operand types and encodings. Store only the unique combinations in a separate table and store indices in the instruction table. Saves about 32K of static data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161101 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/Disassembler/X86DisassemblerDecoder.h')
-rw-r--r-- | lib/Target/X86/Disassembler/X86DisassemblerDecoder.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h b/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h index a36eef3564..797703f803 100644 --- a/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h +++ b/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h @@ -20,7 +20,8 @@ extern "C" { #endif -#define INSTRUCTION_SPECIFIER_FIELDS +#define INSTRUCTION_SPECIFIER_FIELDS \ + uint16_t operands; #define INSTRUCTION_IDS \ unsigned instructionIDs; @@ -538,6 +539,8 @@ struct InternalInstruction { SIBIndex sibIndex; uint8_t sibScale; SIBBase sibBase; + + const struct OperandSpecifier *operands; }; /* decodeInstruction - Decode one instruction and store the decoding results in |