summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/Mips/MipsISelLowering.cpp1
-rw-r--r--lib/Target/Mips/MipsMachineFunction.h6
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp
index 47a4f1a14a..9f4d15cfe0 100644
--- a/lib/Target/Mips/MipsISelLowering.cpp
+++ b/lib/Target/Mips/MipsISelLowering.cpp
@@ -3027,6 +3027,7 @@ MipsTargetLowering::LowerFormalArguments(SDValue Chain,
MipsCCInfo.analyzeFormalArguments(Ins);
MipsFI->setFormalArgInfo(CCInfo.getNextStackOffset(),
MipsCCInfo.hasByValArg());
+ MipsFI->setIncomingArgSize(CCInfo.getNextStackOffset());
Function::const_arg_iterator FuncArg =
DAG.getMachineFunction().getFunction()->arg_begin();
diff --git a/lib/Target/Mips/MipsMachineFunction.h b/lib/Target/Mips/MipsMachineFunction.h
index 1b3e0a3a8e..d2eba58114 100644
--- a/lib/Target/Mips/MipsMachineFunction.h
+++ b/lib/Target/Mips/MipsMachineFunction.h
@@ -51,6 +51,9 @@ class MipsFunctionInfo : public MachineFunctionInfo {
unsigned NextStackOffset;
bool HasByvalArg;
+ // Size of incoming argument area.
+ unsigned IncomingArgSize;
+
public:
MipsFunctionInfo(MachineFunction& MF)
: MF(MF), SRetReturnReg(0), GlobalBaseReg(0), Mips16SPAliasReg(0),
@@ -75,6 +78,9 @@ public:
NextStackOffset = Offset;
HasByvalArg = HasByval;
}
+
+ unsigned getIncomingArgSize() const { return IncomingArgSize; }
+ void setIncomingArgSize(unsigned S) { IncomingArgSize = S; }
};
} // end of namespace llvm