diff options
author | Jim Grosbach <grosbach@apple.com> | 2011-03-11 23:09:50 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2011-03-11 23:09:50 +0000 |
commit | bb0547d9c4ee594f5df6d5f46befd841bfbfbc93 (patch) | |
tree | f234ba4bb0e5f76bd1c7078a3f856e06539a77a5 /llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp | |
parent | 9f2b3b569b5258ec168dfff57249d485b542e6bc (diff) | |
download | bcm5719-llvm-bb0547d9c4ee594f5df6d5f46befd841bfbfbc93.tar.gz bcm5719-llvm-bb0547d9c4ee594f5df6d5f46befd841bfbfbc93.zip |
Pseudo-ize VMOVDcc and VMOVScc.
llvm-svn: 127506
Diffstat (limited to 'llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp b/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp index a985152701c..cb2a89d01a7 100644 --- a/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp +++ b/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp @@ -708,6 +708,19 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB, switch (Opcode) { default: return false; + case ARM::VMOVScc: + case ARM::VMOVDcc: { + unsigned newOpc = Opcode == ARM::VMOVScc ? ARM::VMOVS : ARM::VMOVD; + BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(newOpc), + MI.getOperand(1).getReg()) + .addReg(MI.getOperand(2).getReg(), + getKillRegState(MI.getOperand(2).isKill())) + .addImm(MI.getOperand(3).getImm()) // 'pred' + .addReg(MI.getOperand(4).getReg()); + + MI.eraseFromParent(); + return true; + } case ARM::MOVCCr: { BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(ARM::MOVr), MI.getOperand(1).getReg()) |