diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index 8107e833be0..b96cc22c18a 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -431,8 +431,8 @@ class AI1x2 op, bit isLd, bit isByte, dag oops, dag iops, AddrMode am, +// LDR/LDRB/STR/STRB/... +class AI2ldst op, bit isLd, bit isByte, dag oops, dag iops, AddrMode am, Format f, InstrItinClass itin, string opc, string asm, list pattern> : I { bits<4> Rt; @@ -914,7 +914,7 @@ multiclass AI_ldr1 { bits<4> Rt; @@ -932,7 +932,7 @@ multiclass AI_str1 { @@ -943,7 +943,7 @@ multiclass AI_str1 { bits<4> Rt; @@ -1551,7 +1551,7 @@ defm STRB : AI_str1<1, "strb", IIC_iStore_bh_r, IIC_iStore_bh_si, // Special LDR for loads from non-pc-relative constpools. let canFoldAsLoad = 1, mayLoad = 1, neverHasSideEffects = 1, isReMaterializable = 1 in -def LDRcp : AIldst1<0b010, 1, 0, (outs GPR:$Rt), (ins addrmode_imm12:$addr), +def LDRcp : AI2ldst<0b010, 1, 0, (outs GPR:$Rt), (ins addrmode_imm12:$addr), AddrMode_i12, LdFrm, IIC_iLoad_r, "ldr", "\t$Rt, $addr", []> { bits<4> Rt;