diff options
author | Momchil Velikov <momchil.velikov@arm.com> | 2019-07-17 17:43:32 +0000 |
---|---|---|
committer | Momchil Velikov <momchil.velikov@arm.com> | 2019-07-17 17:43:32 +0000 |
commit | 0e2b74a2b0b875a601851f389bf4bd2fa7b33735 (patch) | |
tree | edde9c1dc93837c88b7469ed1732ec57a0ebfe67 /llvm/lib/Target/AArch64/AArch64InstrFormats.td | |
parent | 337aea438c5eebe6a149e5fafe38b71ec93caf8d (diff) | |
download | bcm5719-llvm-0e2b74a2b0b875a601851f389bf4bd2fa7b33735.tar.gz bcm5719-llvm-0e2b74a2b0b875a601851f389bf4bd2fa7b33735.zip |
Revert [AArch64] Add support for Transactional Memory Extension (TME)
This reverts r366322 (git commit 4b8da3a503e434ddbc08ecf66582475765f449bc)
llvm-svn: 366355
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64InstrFormats.td')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64InstrFormats.td | 55 |
1 files changed, 6 insertions, 49 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td index 2af5726fc4f..74fa5ef713d 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -714,15 +714,12 @@ def logical_imm64_not : Operand<i64> { let ParserMatchClass = LogicalImm64NotOperand; } -// iXX_imm0_65535 predicates - True if the immediate is in the range [0,65535]. -let ParserMatchClass = AsmImmRange<0, 65535>, PrintMethod = "printImmHex" in { -def i32_imm0_65535 : Operand<i32>, ImmLeaf<i32, [{ +// imm0_65535 predicate - True if the immediate is in the range [0,65535]. +def imm0_65535 : Operand<i32>, ImmLeaf<i32, [{ return ((uint32_t)Imm) < 65536; -}]>; - -def i64_imm0_65535 : Operand<i64>, ImmLeaf<i64, [{ - return ((uint64_t)Imm) < 65536; -}]>; +}]> { + let ParserMatchClass = AsmImmRange<0, 65535>; + let PrintMethod = "printImmHex"; } // imm0_255 predicate - True if the immediate is in the range [0,255]. @@ -1085,46 +1082,6 @@ class RtSystemI<bit L, dag oops, dag iops, string asm, string operands> let Inst{4-0} = Rt; } -// System instructions for transactional memory extension -class TMBaseSystemI<bit L, bits<4> CRm, bits<3> op2, dag oops, dag iops, - string asm, string operands, list<dag> pattern> - : BaseSystemI<L, oops, iops, asm, operands, pattern>, - Sched<[WriteSys]> { - let Inst{20-12} = 0b000110011; - let Inst{11-8} = CRm; - let Inst{7-5} = op2; - let DecoderMethod = ""; - - let mayLoad = 1; - let mayStore = 1; -} - -// System instructions for transactional memory - single input operand -class TMSystemI<bits<4> CRm, string asm, list<dag> pattern> - : TMBaseSystemI<0b1, CRm, 0b011, - (outs GPR64:$Rt), (ins), asm, "\t$Rt", pattern> { - bits<5> Rt; - let Inst{4-0} = Rt; -} - -// System instructions for transactional memory - no operand -class TMSystemINoOperand<bits<4> CRm, string asm, list<dag> pattern> - : TMBaseSystemI<0b0, CRm, 0b011, (outs), (ins), asm, "", pattern> { - let Inst{4-0} = 0b11111; -} - -// System instructions for exit from transactions -let mayLoad = 0, mayStore = 0, hasSideEffects = 1 in -class TMSystemException<bits<3> op1, string asm, list<dag> pattern> - : I<(outs), (ins i64_imm0_65535:$imm), asm, "\t$imm", "", pattern>, - Sched<[WriteSys]> { - bits<16> imm; - let Inst{31-24} = 0b11010100; - let Inst{23-21} = op1; - let Inst{20-5} = imm; - let Inst{4-0} = 0b00000; -} - // Hint instructions that take both a CRm and a 3-bit immediate. // NOTE: ideally, this would have mayStore = 0, mayLoad = 0, but we cannot // model patterns with sufficiently fine granularity @@ -4129,7 +4086,7 @@ multiclass MemTagStore<bits<2> opc1, string insn> { let mayLoad = 0, mayStore = 0, hasSideEffects = 1 in class ExceptionGeneration<bits<3> op1, bits<2> ll, string asm> - : I<(outs), (ins i32_imm0_65535:$imm), asm, "\t$imm", "", []>, + : I<(outs), (ins imm0_65535:$imm), asm, "\t$imm", "", []>, Sched<[WriteSys]> { bits<16> imm; let Inst{31-24} = 0b11010100; |