isLowRegister() expects input is a physical register.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 7 Feb 2007 21:44:33 +0000 (21:44 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 7 Feb 2007 21:44:33 +0000 (21:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34013 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMRegisterInfo.cpp

index d7e8674763a4ddb1713d6b7009eea11b9084629e..a96be563846a6770a39e30eba4321d0911bde3fe 100644 (file)
@@ -218,14 +218,14 @@ MachineInstr *ARMRegisterInfo::foldMemoryOperand(MachineInstr *MI,
   case ARM::tMOVrr: {
     if (OpNum == 0) { // move -> store
       unsigned SrcReg = MI->getOperand(1).getReg();
-      if (!isLowRegister(SrcReg))
+      if (isPhysicalRegister(SrcReg) && !isLowRegister(SrcReg))
         // tSpill cannot take a high register operand.
         break;
       NewMI = BuildMI(TII.get(ARM::tSpill)).addReg(SrcReg).addFrameIndex(FI)
         .addImm(0);
     } else {          // move -> load
       unsigned DstReg = MI->getOperand(0).getReg();
-      if (!isLowRegister(DstReg))
+      if (isPhysicalRegister(DstReg) && !isLowRegister(DstReg))
         // tRestore cannot target a high register operand.
         break;
       NewMI = BuildMI(TII.get(ARM::tRestore), DstReg).addFrameIndex(FI)