Simplify
authorAnton Korobeynikov <asl@math.spbu.ru>
Wed, 23 Apr 2008 18:18:36 +0000 (18:18 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Wed, 23 Apr 2008 18:18:36 +0000 (18:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50158 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86RegisterInfo.cpp

index 563093bdec90dab62c3427ba4f6eebe30c346c02..8b7ea5ccacbed569fc945fda71190a5f8cb0aa05 100644 (file)
@@ -278,6 +278,20 @@ bool X86RegisterInfo::hasReservedCallFrame(MachineFunction &MF) const {
   return !MF.getFrameInfo()->hasVarSizedObjects();
 }
 
+int
+X86RegisterInfo::getFrameIndexOffset(MachineFunction &MF, int FI) const {
+  int Offset = MF.getFrameInfo()->getObjectOffset(FI) + SlotSize;
+  if (!hasFP(MF))
+    return Offset + MF.getFrameInfo()->getStackSize();
+
+  Offset += SlotSize;  // Skip the saved EBP
+  // Skip the RETADDR move area
+  X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
+  int TailCallReturnAddrDelta = X86FI->getTCReturnAddrDelta();
+  if (TailCallReturnAddrDelta < 0) Offset -= TailCallReturnAddrDelta;
+  return Offset;
+}
+
 void X86RegisterInfo::
 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
                               MachineBasicBlock::iterator I) const {
@@ -349,18 +363,8 @@ void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
   MI.getOperand(i).ChangeToRegister(hasFP(MF) ? FramePtr : StackPtr, false);
 
   // Now add the frame object offset to the offset from EBP.
-  int64_t Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex) +
-                   MI.getOperand(i+3).getImm()+SlotSize;
-
-  if (!hasFP(MF))
-    Offset += MF.getFrameInfo()->getStackSize();
-  else {
-    Offset += SlotSize;  // Skip the saved EBP
-    // Skip the RETADDR move area
-    X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
-    int TailCallReturnAddrDelta = X86FI->getTCReturnAddrDelta();
-    if (TailCallReturnAddrDelta < 0) Offset -= TailCallReturnAddrDelta;
-  }
+  int64_t Offset = getFrameIndexOffset(MF, FrameIndex) +
+                   MI.getOperand(i+3).getImm();
 
   MI.getOperand(i+3).ChangeToImmediate(Offset);
 }
@@ -842,20 +846,6 @@ unsigned X86RegisterInfo::getFrameRegister(MachineFunction &MF) const {
   return hasFP(MF) ? FramePtr : StackPtr;
 }
 
-int
-X86RegisterInfo::getFrameIndexOffset(MachineFunction &MF, int FI) const {
-  int Offset = MF.getFrameInfo()->getObjectOffset(FI) + SlotSize;
-  if (!hasFP(MF))
-    return Offset + MF.getFrameInfo()->getStackSize();
-
-  Offset += SlotSize;  // Skip the saved EBP
-  // Skip the RETADDR move area
-  X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
-  int TailCallReturnAddrDelta = X86FI->getTCReturnAddrDelta();
-  if (TailCallReturnAddrDelta < 0) Offset -= TailCallReturnAddrDelta;
-  return Offset;
-}
-
 void X86RegisterInfo::getInitialFrameState(std::vector<MachineMove> &Moves)
                                                                          const {
   // Calculate amount of bytes used for return address storing