1//===- SparcMachineFunctionInfo.h - Sparc Machine Function Info -*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file declares Sparc specific per-machine-function information. 11// 12//===----------------------------------------------------------------------===// 13#ifndef SPARCMACHINEFUNCTIONINFO_H 14#define SPARCMACHINEFUNCTIONINFO_H 15 16#include "llvm/CodeGen/MachineFunction.h" 17 18namespace llvm { 19 20 class SparcMachineFunctionInfo : public MachineFunctionInfo { 21 private: 22 unsigned GlobalBaseReg; 23 24 /// VarArgsFrameOffset - Frame offset to start of varargs area. 25 int VarArgsFrameOffset; 26 27 /// SRetReturnReg - Holds the virtual register into which the sret 28 /// argument is passed. 29 unsigned SRetReturnReg; 30 public: 31 SparcMachineFunctionInfo() 32 : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} 33 explicit SparcMachineFunctionInfo(MachineFunction &MF) 34 : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} 35 36 unsigned getGlobalBaseReg() const { return GlobalBaseReg; } 37 void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; } 38 39 int getVarArgsFrameOffset() const { return VarArgsFrameOffset; } 40 void setVarArgsFrameOffset(int Offset) { VarArgsFrameOffset = Offset; } 41 42 unsigned getSRetReturnReg() const { return SRetReturnReg; } 43 void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; } 44 }; 45} 46 47#endif 48