implement movri
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 18 May 2006 21:45:49 +0000 (21:45 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 18 May 2006 21:45:49 +0000 (21:45 +0000)
add a stub LowerFORMAL_ARGUMENTS

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28388 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMRegisterInfo.cpp

index ec2b145f9ac390f12d8e1ef690fd2a8c8ad9b68a..57090b98e43e9e01dedecbb5a752fd79b148850e 100644 (file)
@@ -81,11 +81,17 @@ static SDOperand LowerRET(SDOperand Op, SelectionDAG &DAG) {
   return DAG.getNode(ARMISD::RET_FLAG, MVT::Other, Copy, Copy.getValue(1));
 }
 
+static SDOperand LowerFORMAL_ARGUMENTS(SDOperand Op, SelectionDAG &DAG) {
+  assert(0 && "Not implemented");
+}
+
 SDOperand ARMTargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
   switch (Op.getOpcode()) {
   default:
     assert(0 && "Should not custom lower this!");
     abort();
+  case ISD::FORMAL_ARGUMENTS:
+    return LowerFORMAL_ARGUMENTS(Op, DAG);
   case ISD::RET:
     return LowerRET(Op, DAG);
   }
index 318c230586bec2c38bbfe13e795bd5ea4132125d..f7069275333e879a2ab1a32ab4586d0c89f819c8 100644 (file)
@@ -42,6 +42,8 @@ def ADJCALLSTACKDOWN : InstARM<(ops i32imm:$amt),
                                "!ADJCALLSTACKDOWN $amt",
                                [(callseq_start imm:$amt)]>;
 
+def BX: InstARM<(ops), "bx", [(retflag)]>;
+
 def ldr   : InstARM<(ops IntRegs:$dst, IntRegs:$addr),
                      "ldr $dst, [$addr]",
                      [(set IntRegs:$dst, (load IntRegs:$addr))]>;
@@ -50,5 +52,8 @@ def str  : InstARM<(ops IntRegs:$src, IntRegs:$addr),
                     "str $src, [$addr]",
                     [(store IntRegs:$src, IntRegs:$addr)]>;
 
-def mov   : InstARM<(ops IntRegs:$dst, IntRegs:$b),
-                    "mov $dst, $b", []>;
+def movrr   : InstARM<(ops IntRegs:$dst, IntRegs:$src),
+                       "mov $dst, $src", []>;
+
+def movri   : InstARM<(ops IntRegs:$dst, i32imm:$src),
+                       "mov $dst, $src", [(set IntRegs:$dst, imm:$src)]>;
index e56eef47241f8a1880b43a323a1bbd562e60c149..18e273134c525fcb78bdca84e33a73f9648b0a87 100644 (file)
@@ -49,7 +49,7 @@ void ARMRegisterInfo::copyRegToReg(MachineBasicBlock &MBB,
                                      unsigned DestReg, unsigned SrcReg,
                                      const TargetRegisterClass *RC) const {
   assert (RC == ARM::IntRegsRegisterClass);
-  BuildMI(MBB, I, ARM::mov, 1, DestReg).addReg(SrcReg);
+  BuildMI(MBB, I, ARM::movrr, 1, DestReg).addReg(SrcReg);
 }
 
 MachineInstr *ARMRegisterInfo::foldMemoryOperand(MachineInstr* MI,