summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-01-10 16:22:47 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-01-10 16:22:47 +0000
commitb16c09f241814641e821325d31515a53100e2a51 (patch)
tree030f8a9142ec00d979c3b002045489c9ada19cc0 /llvm/lib
parent0e38aade94b4769cb2f674838fd0a3305b670f49 (diff)
downloadbcm5719-llvm-b16c09f241814641e821325d31515a53100e2a51.tar.gz
bcm5719-llvm-b16c09f241814641e821325d31515a53100e2a51.zip
ARM: fix regression caused by r198914
The disassembler would no longer be able to disambiguage between the two variants (explicit immediate #0 vs implicit, omitted #0) for the ldrt, strt, ldrbt, strbt mnemonics as both versions indicated the disassembler routine. llvm-svn: 198944
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrInfo.td25
1 files changed, 17 insertions, 8 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td
index ad134d3f99c..3d38cc98960 100644
--- a/llvm/lib/Target/ARM/ARMInstrInfo.td
+++ b/llvm/lib/Target/ARM/ARMInstrInfo.td
@@ -2463,12 +2463,14 @@ class LDRTImmediate<bit has_offset, string args, dag iops>
let Inst{21} = 1; // overwrite
let Inst{19-16} = addr;
let Inst{11-0} = !if(has_offset, offset{11-0}, 0);
- let DecoderMethod = "DecodeAddrMode2IdxInstruction";
}
def LDRT_POST_IMM
: LDRTImmediate<1, "\t$Rt, $addr, $offset",
- (ins addr_offset_none:$addr, am2offset_imm:$offset)>;
+ (ins addr_offset_none:$addr, am2offset_imm:$offset)> {
+ let DecoderMethod = "DecodeAddrMode2IdxInstruction";
+}
+
def LDRT_POST_IMM_0
: LDRTImmediate<0, "\t$Rt, $addr", (ins addr_offset_none:$addr)>;
@@ -2504,12 +2506,14 @@ class LDRBTImmediate<bit has_offset, string args, dag iops>
let Inst{21} = 1; // overwrite
let Inst{19-16} = addr;
let Inst{11-0} = !if(has_offset, offset{11-0}, 0);
- let DecoderMethod = "DecodeAddrMode2IdxInstruction";
}
def LDRBT_POST_IMM
: LDRBTImmediate<1, "\t$Rt, $addr, $offset",
- (ins addr_offset_none:$addr, am2offset_imm:$offset)>;
+ (ins addr_offset_none:$addr, am2offset_imm:$offset)> {
+ let DecoderMethod = "DecodeAddrMode2IdxInstruction";
+}
+
def LDRBT_POST_IMM_0
: LDRBTImmediate<0, "\t$Rt, $addr", (ins addr_offset_none:$addr)>;
@@ -2785,12 +2789,15 @@ class STRBTImmediate<bit has_offset, string args, dag iops>
let Inst{21} = 1; // overwrite
let Inst{19-16} = addr;
let Inst{11-0} = !if(has_offset, offset{11-0}, 0);
- let DecoderMethod = "DecodeAddrMode2IdxInstruction";
}
def STRBT_POST_IMM
: STRBTImmediate<1, "\t$Rt, $addr, $offset",
- (ins GPR:$Rt, addr_offset_none:$addr, am2offset_imm:$offset)>;
+ (ins GPR:$Rt, addr_offset_none:$addr, am2offset_imm:$offset)> {
+ let DecoderMethod = "DecodeAddrMode2IdxInstruction";
+}
+
+
def STRBT_POST_IMM_0
: STRBTImmediate<0, "\t$Rt, $addr", (ins GPR:$Rt, addr_offset_none:$addr)>;
@@ -2826,12 +2833,14 @@ class STRTImmediate<bit has_offset, string args, dag iops>
let Inst{21} = 1; // overwrite
let Inst{19-16} = addr;
let Inst{11-0} = !if(has_offset, offset{11-0}, 0);
- let DecoderMethod = "DecodeAddrMode2IdxInstruction";
}
def STRT_POST_IMM
: STRTImmediate<1, "\t$Rt, $addr, $offset",
- (ins GPR:$Rt, addr_offset_none:$addr, am2offset_imm:$offset)>;
+ (ins GPR:$Rt, addr_offset_none:$addr, am2offset_imm:$offset)> {
+ let DecoderMethod = "DecodeAddrMode2IdxInstruction";
+}
+
def STRT_POST_IMM_0
: STRTImmediate<0, "\t$Rt, $addr", (ins GPR:$Rt, addr_offset_none:$addr)>;
}
OpenPOWER on IntegriCloud