From: Vikram S. Adve Date: Thu, 25 Apr 2002 04:40:24 +0000 (+0000) Subject: Added functions to compute which register, if any, to use X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6d78311fd24f6dc6f1312ea495a9795bf3c4ae1a;p=oota-llvm.git Added functions to compute which register, if any, to use for a particular argument in a list of arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2315 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/SparcV9/SparcV9Internals.h b/lib/Target/SparcV9/SparcV9Internals.h index 52118f97611..12c86b8b8d4 100644 --- a/lib/Target/SparcV9/SparcV9Internals.h +++ b/lib/Target/SparcV9/SparcV9Internals.h @@ -284,11 +284,16 @@ class UltraSparcRegInfo : public MachineRegInfo { PhyRegAlloc &PRA) const; - // To find whether a particular call is to a var arg method - // - bool isVarArgCall(const MachineInstr *CallMI) const; - + // Compute which register can be used for an argument, if any + // + int regNumForIntArg(bool inCallee, bool isVarArgsCall, + unsigned argNo, unsigned intArgNo, unsigned fpArgNo, + unsigned& regClassId) const; + int regNumForFPArg(unsigned RegType, bool inCallee, bool isVarArgsCall, + unsigned argNo, unsigned intArgNo, unsigned fpArgNo, + unsigned& regClassId) const; + public: UltraSparcRegInfo(const UltraSparc &tgt); @@ -429,7 +434,7 @@ public: // MachineInstr * cpReg2RegMI(unsigned SrcReg, unsigned DestReg, int RegType) const; - + MachineInstr * cpReg2MemMI(unsigned SrcReg, unsigned DestPtrReg, int Offset, int RegType) const; @@ -506,32 +511,32 @@ public: // MachineCodeInfoForMethod object for the given method. // int getFirstIncomingArgOffset (MachineCodeForMethod& mcInfo, - bool& pos) const + bool& growUp) const { - pos = true; // arguments area grows upwards + growUp = true; // arguments area grows upwards return FirstIncomingArgOffsetFromFP; } int getFirstOutgoingArgOffset (MachineCodeForMethod& mcInfo, - bool& pos) const + bool& growUp) const { - pos = true; // arguments area grows upwards + growUp = true; // arguments area grows upwards return FirstOutgoingArgOffsetFromSP; } int getFirstOptionalOutgoingArgOffset(MachineCodeForMethod& mcInfo, - bool& pos)const + bool& growUp)const { - pos = true; // arguments area grows upwards + growUp = true; // arguments area grows upwards return FirstOptionalOutgoingArgOffsetFromSP; } int getFirstAutomaticVarOffset (MachineCodeForMethod& mcInfo, - bool& pos) const; + bool& growUp) const; int getRegSpillAreaOffset (MachineCodeForMethod& mcInfo, - bool& pos) const; + bool& growUp) const; int getTmpAreaOffset (MachineCodeForMethod& mcInfo, - bool& pos) const; + bool& growUp) const; int getDynamicAreaOffset (MachineCodeForMethod& mcInfo, - bool& pos) const; + bool& growUp) const; // // These methods specify the base register used for each stack area