aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-09-28 07:26:46 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-09-28 07:26:46 +0000
commitb0d8d781380cb2ea94692d25533f3bd04fd78dce (patch)
tree9604ac279bc7ee9366d11971f2805ff2b0e63342
parent3ddfb21306831c96791505c2e8e727923010354f (diff)
Fix thinko in my recent movt commit: it's not safe to remat movt, since it has input reg argument.
Disable rematting of it for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82975 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMInstrInfo.cpp2
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td3
2 files changed, 1 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.cpp b/lib/Target/ARM/ARMInstrInfo.cpp
index 15c3c393c3..2ab355b190 100644
--- a/lib/Target/ARM/ARMInstrInfo.cpp
+++ b/lib/Target/ARM/ARMInstrInfo.cpp
@@ -96,8 +96,6 @@ reMaterialize(MachineBasicBlock &MBB,
MachineInstr *MI = MBB.getParent()->CloneMachineInstr(Orig);
MI->getOperand(0).setReg(DestReg);
- if (Orig->getOpcode() == ARM::MOVTi16)
- MI->getOperand(1).setReg(DestReg);
MBB.insert(I, MI);
}
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index 0e9e67709d..4bc62733d6 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -938,8 +938,7 @@ def MOVi16 : AI1<0b1000, (outs GPR:$dst), (ins i32imm:$src),
let Inst{25} = 1;
}
-let isReMaterializable = 1, isAsCheapAsAMove = 1,
- Constraints = "$src = $dst" in
+let isAsCheapAsAMove = 1, Constraints = "$src = $dst" in
def MOVTi16 : AI1<0b1010, (outs GPR:$dst), (ins GPR:$src, i32imm:$imm),
DPFrm, IIC_iMOVi,
"movt", " $dst, $imm",