diff --git a/lib/Target/ARM/ARMInstrThumb2.td b/lib/Target/ARM/ARMInstrThumb2.td index 71bea1f507c..e2b16d85347 100644 --- a/lib/Target/ARM/ARMInstrThumb2.td +++ b/lib/Target/ARM/ARMInstrThumb2.td @@ -3702,6 +3702,10 @@ def : InstAlias<"dmb", (t2DMB 0xf)>, Requires<[IsThumb2, HasDB]>; def : InstAlias<"dsb", (t2DSB 0xf)>, Requires<[IsThumb2, HasDB]>; def : InstAlias<"isb", (t2ISB 0xf)>, Requires<[IsThumb2, HasDB]>; -// Alias for LDRi12 without the ".w" optional width specifier. -def : t2InstAlias<"ldr${p} $Rd, $addr", - (t2LDRi12 GPR:$Rd, t2addrmode_imm12:$addr, pred:$p)>; +// Alias for LDR, LDRB, LDRH without the ".w" optional width specifier. +def : t2InstAlias<"ldr${p} $Rt, $addr", + (t2LDRi12 GPR:$Rt, t2addrmode_imm12:$addr, pred:$p)>; +def : t2InstAlias<"ldrb${p} $Rt, $addr", + (t2LDRBi12 rGPR:$Rt, t2addrmode_imm12:$addr, pred:$p)>; +def : t2InstAlias<"ldrh${p} $Rt, $addr", + (t2LDRHi12 rGPR:$Rt, t2addrmode_imm12:$addr, pred:$p)>; diff --git a/test/MC/ARM/basic-thumb2-instructions.s b/test/MC/ARM/basic-thumb2-instructions.s index 40c152d3479..d23b565540e 100644 --- a/test/MC/ARM/basic-thumb2-instructions.s +++ b/test/MC/ARM/basic-thumb2-instructions.s @@ -539,6 +539,22 @@ _func: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 +@------------------------------------------------------------------------------ +@ LDRB(immediate) +@------------------------------------------------------------------------------ + ldrb r5, [r5, #-4] + ldrb r5, [r6, #32] + ldrb r5, [r6, #33] + ldrb r5, [r6, #257] + ldrb.w lr, [r7, #257] + +@ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c] +@ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50] +@ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50] +@ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51] +@ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1] + + @------------------------------------------------------------------------------ @ IT @------------------------------------------------------------------------------