summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/X86RecognizableInstr.h
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2014-07-17 17:04:56 +0000
committerAdam Nemet <anemet@apple.com>2014-07-17 17:04:56 +0000
commit5933c2f824175f1f17fcb59a5904268cac0506ba (patch)
tree4b94b8ec5297ffa8d1d60eeb7a4e09a7d95f2fd4 /llvm/utils/TableGen/X86RecognizableInstr.h
parent4c339abab3f5c5db5420c9064bf9341d66e4d20d (diff)
downloadbcm5719-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.h5
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.
OpenPOWER on IntegriCloud