diff options
| author | Craig Topper <craig.topper@intel.com> | 2019-03-18 21:33:59 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2019-03-18 21:33:59 +0000 |
| commit | e732bc6bead727c69a4bebc91be0f9d8fc6859be (patch) | |
| tree | eb3b89fc5d43f7c547b9df2216b2b6a09b444975 /llvm/utils/TableGen | |
| parent | b4a3b29d16e2269179f1e5f1efa57e2ce6313850 (diff) | |
| download | bcm5719-llvm-e732bc6bead727c69a4bebc91be0f9d8fc6859be.tar.gz bcm5719-llvm-e732bc6bead727c69a4bebc91be0f9d8fc6859be.zip | |
[X86] Allow any 8-bit immediate to be used with BT/BTC/BTR/BTS not just sign extended 8-bit immediates.
We need to allow [128,255] in addition to [-128, 127] to match gas.
llvm-svn: 356413
Diffstat (limited to 'llvm/utils/TableGen')
| -rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index ef897420215..5b040644553 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -824,7 +824,9 @@ OperandType RecognizableInstr::typeFromString(const std::string &s, TYPE("i8mem", TYPE_M) TYPE("i8imm", TYPE_IMM) TYPE("u8imm", TYPE_UIMM8) + TYPE("i16u8imm", TYPE_UIMM8) TYPE("i32u8imm", TYPE_UIMM8) + TYPE("i64u8imm", TYPE_UIMM8) TYPE("GR8", TYPE_R8) TYPE("VR128", TYPE_XMM) TYPE("VR128X", TYPE_XMM) @@ -935,7 +937,9 @@ RecognizableInstr::immediateEncodingFromString(const std::string &s, ENCODING("i64i8imm", ENCODING_IB) ENCODING("i8imm", ENCODING_IB) ENCODING("u8imm", ENCODING_IB) + ENCODING("i16u8imm", ENCODING_IB) ENCODING("i32u8imm", ENCODING_IB) + ENCODING("i64u8imm", ENCODING_IB) // This is not a typo. Instructions like BLENDVPD put // register IDs in 8-bit immediates nowadays. ENCODING("FR32", ENCODING_IB) @@ -1121,7 +1125,9 @@ RecognizableInstr::relocationEncodingFromString(const std::string &s, ENCODING("i64i8imm", ENCODING_IB) ENCODING("i8imm", ENCODING_IB) ENCODING("u8imm", ENCODING_IB) + ENCODING("i16u8imm", ENCODING_IB) ENCODING("i32u8imm", ENCODING_IB) + ENCODING("i64u8imm", ENCODING_IB) ENCODING("i64i32imm_pcrel", ENCODING_ID) ENCODING("i16imm_pcrel", ENCODING_IW) ENCODING("i32imm_pcrel", ENCODING_ID) |

