// order for efficiency.
- // reverse pointer to get info about the ultra sparc machine
- //
- const UltraSparc *const UltraSparcInfo;
-
// Number of registers used for passing int args (usually 6: %o0 - %o5)
//
unsigned const NumOfIntArgRegs;
void suggestReg4RetAddr(MachineInstr *RetMI,
LiveRangeInfo &LRI) const;
- void suggestReg4CallAddr(MachineInstr *CallMI, LiveRangeInfo &LRI,
- std::vector<RegClass *> RCList) const;
+ void suggestReg4CallAddr(MachineInstr *CallMI, LiveRangeInfo &LRI) const;
void InitializeOutgoingArg(MachineInstr* CallMI, AddedInstrns *CallAI,
PhyRegAlloc &PRA, LiveRange* LR,
public:
UltraSparcRegInfo(const UltraSparc &tgt);
- // To get complete machine information structure using the machine register
- // information
- //
- inline const UltraSparc &getUltraSparcInfo() const {
- return *UltraSparcInfo;
- }
-
// To find the register class used for a specified Type
//
unsigned getRegClassIDOfType(const Type *type,
LiveRangeInfo& LRI) const;
void suggestRegs4CallArgs(MachineInstr *CallMI,
- LiveRangeInfo& LRI,
- std::vector<RegClass *> RCL) const;
+ LiveRangeInfo& LRI) const;
void suggestReg4RetValue(MachineInstr *RetMI,
LiveRangeInfo& LRI) const;
// particular function. The frame contents are obtained from the
// MachineCodeInfoForMethod object for the given function.
//
- int getFirstIncomingArgOffset (MachineCodeForMethod& mcInfo,
+ int getFirstIncomingArgOffset (MachineFunction& mcInfo,
bool& growUp) const
{
growUp = true; // arguments area grows upwards
return FirstIncomingArgOffsetFromFP;
}
- int getFirstOutgoingArgOffset (MachineCodeForMethod& mcInfo,
+ int getFirstOutgoingArgOffset (MachineFunction& mcInfo,
bool& growUp) const
{
growUp = true; // arguments area grows upwards
return FirstOutgoingArgOffsetFromSP;
}
- int getFirstOptionalOutgoingArgOffset(MachineCodeForMethod& mcInfo,
+ int getFirstOptionalOutgoingArgOffset(MachineFunction& mcInfo,
bool& growUp)const
{
growUp = true; // arguments area grows upwards
return FirstOptionalOutgoingArgOffsetFromSP;
}
- int getFirstAutomaticVarOffset (MachineCodeForMethod& mcInfo,
+ int getFirstAutomaticVarOffset (MachineFunction& mcInfo,
bool& growUp) const;
- int getRegSpillAreaOffset (MachineCodeForMethod& mcInfo,
+ int getRegSpillAreaOffset (MachineFunction& mcInfo,
bool& growUp) const;
- int getTmpAreaOffset (MachineCodeForMethod& mcInfo,
+ int getTmpAreaOffset (MachineFunction& mcInfo,
bool& growUp) const;
- int getDynamicAreaOffset (MachineCodeForMethod& mcInfo,
+ int getDynamicAreaOffset (MachineFunction& mcInfo,
bool& growUp) const;
//
//---------------------------------------------------------------------------
class UltraSparc : public TargetMachine {
-private:
UltraSparcInstrInfo instrInfo;
UltraSparcSchedInfo schedInfo;
UltraSparcRegInfo regInfo;
virtual const MachineCacheInfo &getCacheInfo() const { return cacheInfo; }
virtual const MachineOptInfo &getOptInfo() const { return optInfo; }
+ virtual void addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
+
// getPrologEpilogCodeInserter - Inserts prolog/epilog code.
virtual Pass* getPrologEpilogInsertionPass();