diff options
| author | Adam Nemet <anemet@apple.com> | 2014-07-17 17:04:56 +0000 |
|---|---|---|
| committer | Adam Nemet <anemet@apple.com> | 2014-07-17 17:04:56 +0000 |
| commit | 5933c2f824175f1f17fcb59a5904268cac0506ba (patch) | |
| tree | 4b94b8ec5297ffa8d1d60eeb7a4e09a7d95f2fd4 /llvm/utils/TableGen/X86RecognizableInstr.h | |
| parent | 4c339abab3f5c5db5420c9064bf9341d66e4d20d (diff) | |
| download | bcm5719-llvm-5933c2f824175f1f17fcb59a5904268cac0506ba.tar.gz bcm5719-llvm-5933c2f824175f1f17fcb59a5904268cac0506ba.zip | |
[X86] AVX512: Add disassembler support for compressed displacement
There are two parts here. First is to modify tablegen to adjust the encoding
type ENCODING_RM with the scaling factor.
The second is to use the new encoding types to compute the correct
displacement in the decoder.
Fixes <rdar://problem/17608489>
llvm-svn: 213281
Diffstat (limited to 'llvm/utils/TableGen/X86RecognizableInstr.h')
| -rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.h b/llvm/utils/TableGen/X86RecognizableInstr.h index 77286bc4336..4bc52ebd849 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.h +++ b/llvm/utils/TableGen/X86RecognizableInstr.h @@ -78,6 +78,8 @@ private: bool IsCodeGenOnly; /// The ForceDisassemble field from the record bool ForceDisassemble; + // The CD8_Scale field from the record + uint8_t CD8_Scale; // Whether the instruction has the predicate "In64BitMode" bool Is64Bit; // Whether the instruction has the predicate "In32BitMode" @@ -153,6 +155,9 @@ private: static OperandEncoding writemaskRegisterEncodingFromString(const std::string &s, uint8_t OpSize); + /// \brief Adjust the encoding type for an operand based on the instruction. + void adjustOperandEncoding(OperandEncoding &encoding); + /// handleOperand - Converts a single operand from the LLVM table format to /// the emitted table format, handling any duplicate operands it encounters /// and then one non-duplicate. |

