SparcMachineFunctionInfo.h revision 259065
118334Speter//===- SparcMachineFunctionInfo.h - Sparc Machine Function Info -*- C++ -*-===//
272562Sobrien//
3132718Skan//                     The LLVM Compiler Infrastructure
418334Speter//
590075Sobrien// This file is distributed under the University of Illinois Open Source
618334Speter// License. See LICENSE.TXT for details.
790075Sobrien//
890075Sobrien//===----------------------------------------------------------------------===//
990075Sobrien//
1090075Sobrien// This file declares  Sparc specific per-machine-function information.
1118334Speter//
1290075Sobrien//===----------------------------------------------------------------------===//
1390075Sobrien#ifndef SPARCMACHINEFUNCTIONINFO_H
1490075Sobrien#define SPARCMACHINEFUNCTIONINFO_H
1590075Sobrien
1618334Speter#include "llvm/CodeGen/MachineFunction.h"
1718334Speter
1890075Sobriennamespace llvm {
1990075Sobrien
2090075Sobrien  class SparcMachineFunctionInfo : public MachineFunctionInfo {
2118334Speter    virtual void anchor();
2252284Sobrien  private:
2352284Sobrien    unsigned GlobalBaseReg;
2452284Sobrien
2518334Speter    /// VarArgsFrameOffset - Frame offset to start of varargs area.
2652284Sobrien    int VarArgsFrameOffset;
2752284Sobrien
2852284Sobrien    /// SRetReturnReg - Holds the virtual register into which the sret
2918334Speter    /// argument is passed.
3018334Speter    unsigned SRetReturnReg;
3118334Speter  public:
3218334Speter    SparcMachineFunctionInfo()
3318334Speter      : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {}
3418334Speter    explicit SparcMachineFunctionInfo(MachineFunction &MF)
3518334Speter      : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {}
3652284Sobrien
3752284Sobrien    unsigned getGlobalBaseReg() const { return GlobalBaseReg; }
3852284Sobrien    void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; }
3952284Sobrien
4018334Speter    int getVarArgsFrameOffset() const { return VarArgsFrameOffset; }
4152284Sobrien    void setVarArgsFrameOffset(int Offset) { VarArgsFrameOffset = Offset; }
4218334Speter
4318334Speter    unsigned getSRetReturnReg() const { return SRetReturnReg; }
4418334Speter    void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; }
4518334Speter  };
4618334Speter}
4718334Speter
4818334Speter#endif
4918334Speter