SparcMachineFunctionInfo.h revision 2d24e2a396a1d211baaeedf32148a3b657240170
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 virtual void anchor(); 22 private: 23 unsigned GlobalBaseReg; 24 25 /// VarArgsFrameOffset - Frame offset to start of varargs area. 26 int VarArgsFrameOffset; 27 28 /// SRetReturnReg - Holds the virtual register into which the sret 29 /// argument is passed. 30 unsigned SRetReturnReg; 31 public: 32 SparcMachineFunctionInfo() 33 : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} 34 explicit SparcMachineFunctionInfo(MachineFunction &MF) 35 : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} 36 37 unsigned getGlobalBaseReg() const { return GlobalBaseReg; } 38 void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; } 39 40 int getVarArgsFrameOffset() const { return VarArgsFrameOffset; } 41 void setVarArgsFrameOffset(int Offset) { VarArgsFrameOffset = Offset; } 42 43 unsigned getSRetReturnReg() const { return SRetReturnReg; } 44 void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; } 45 }; 46} 47 48#endif 49