diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-01-10 16:22:47 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-01-10 16:22:47 +0000 |
commit | b16c09f241814641e821325d31515a53100e2a51 (patch) | |
tree | 030f8a9142ec00d979c3b002045489c9ada19cc0 /llvm/lib | |
parent | 0e38aade94b4769cb2f674838fd0a3305b670f49 (diff) | |
download | bcm5719-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.td | 25 |
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)>; } |