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