diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-06-26 16:10:07 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-06-26 16:10:07 +0000 |
commit | 83b3593478406b020b7af6ba5402a14507d7d713 (patch) | |
tree | be9a0ca7a0ec94157c4f966f4d68d0b38998af79 /lib | |
parent | 894788144493f0621f2821dc730f11a2bd7eaaf5 (diff) |
Currently there is a pattern for the thumb-2 MOV 16-bit immediate instruction. That instruction cannot write the flags so it should use T2I instead of T2sI.
Also, added a pattern for the thumb-2 MOV of shifted immediate since that can encode immediates not encodable by the 16-bit immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74288 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMInstrThumb2.td | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMInstrThumb2.td b/lib/Target/ARM/ARMInstrThumb2.td index ec46df890e..4736711926 100644 --- a/lib/Target/ARM/ARMInstrThumb2.td +++ b/lib/Target/ARM/ARMInstrThumb2.td @@ -409,9 +409,14 @@ def t2MOVr : T2sI<(outs GPR:$dst), (ins GPR:$src), "mov", " $dst, $src", []>; let isReMaterializable = 1, isAsCheapAsAMove = 1 in -def t2MOVi16 : T2sI<(outs GPR:$dst), (ins i32imm:$src), - "movw", " $dst, $src", - [(set GPR:$dst, imm0_65535:$src)]>; +def t2MOVi : T2sI<(outs GPR:$dst), (ins t2_so_imm:$src), + "mov", " $dst, $src", + [(set GPR:$dst, t2_so_imm:$src)]>; + +let isReMaterializable = 1, isAsCheapAsAMove = 1 in +def t2MOVi16 : T2I<(outs GPR:$dst), (ins i32imm:$src), + "movw", " $dst, $src", + [(set GPR:$dst, imm0_65535:$src)]>; // FIXME: Also available in ARM mode. let Constraints = "$src = $dst" in |