diff options
author | Craig Topper <craig.topper@intel.com> | 2019-08-07 05:34:27 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2019-08-07 05:34:27 +0000 |
commit | 29688f4da0b62e760dcd65d607aa9a56cb1557e0 (patch) | |
tree | 293a2cc5eb55bffe628ebba214b1c5562757c15c /llvm/utils/TableGen/X86RecognizableInstr.cpp | |
parent | 989679c3711a239c73057fb5446eef937935f4ba (diff) | |
download | bcm5719-llvm-29688f4da0b62e760dcd65d607aa9a56cb1557e0.tar.gz bcm5719-llvm-29688f4da0b62e760dcd65d607aa9a56cb1557e0.zip |
[X86] Limit vpermil2pd/vpermil2ps immediates to 4 bits in the assembly parser.
The upper 4 bits of the immediate byte are used to encode a
register. We need to limit the explicit immediate to fit in the
remaining 4 bits.
Fixes PR42899.
llvm-svn: 368123
Diffstat (limited to 'llvm/utils/TableGen/X86RecognizableInstr.cpp')
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index ab8a8855c47..37bf3b82b01 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -854,6 +854,7 @@ OperandType RecognizableInstr::typeFromString(const std::string &s, TYPE("GR64", TYPE_R64) TYPE("i8mem", TYPE_M) TYPE("i8imm", TYPE_IMM) + TYPE("u4imm", TYPE_UIMM8) TYPE("u8imm", TYPE_UIMM8) TYPE("i16u8imm", TYPE_UIMM8) TYPE("i32u8imm", TYPE_UIMM8) @@ -973,6 +974,7 @@ RecognizableInstr::immediateEncodingFromString(const std::string &s, ENCODING("i64i32imm", ENCODING_ID) ENCODING("i64i8imm", ENCODING_IB) ENCODING("i8imm", ENCODING_IB) + ENCODING("u4imm", ENCODING_IB) ENCODING("u8imm", ENCODING_IB) ENCODING("i16u8imm", ENCODING_IB) ENCODING("i32u8imm", ENCODING_IB) |