Added functions to compute which register, if any, to use
authorVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 25 Apr 2002 04:40:24 +0000 (04:40 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 25 Apr 2002 04:40:24 +0000 (04:40 +0000)
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

lib/Target/SparcV9/SparcV9Internals.h

index 52118f97611fd62b475b06d20de9a31218e1d019..12c86b8b8d47af3660c769e5e5c42ce9836e3265 100644 (file)
@@ -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