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 | f219f3135d0ec939acd42801766c17fad41c0173 (patch) | |
tree | 7d818ecd73b7697a2307bb0ec1af0310a3e6e178 /lib/Target/ARM/ARMExpandPseudoInsts.cpp | |
parent | b181ad34869c4fa19c527ab8dfd5d438ad8b9bb3 (diff) | |
download | llvm-f219f3135d0ec939acd42801766c17fad41c0173.tar.gz llvm-f219f3135d0ec939acd42801766c17fad41c0173.tar.bz2 llvm-f219f3135d0ec939acd42801766c17fad41c0173.tar.xz |
Pseudo-ize VMOVDcc and VMOVScc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127506 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMExpandPseudoInsts.cpp')
-rw-r--r-- | lib/Target/ARM/ARMExpandPseudoInsts.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMExpandPseudoInsts.cpp b/lib/Target/ARM/ARMExpandPseudoInsts.cpp index a985152701..cb2a89d01a 100644 --- a/lib/Target/ARM/ARMExpandPseudoInsts.cpp +++ b/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()) |