SparcMachineFunctionInfo.h revision 261991
154359Sroberto//===- SparcMachineFunctionInfo.h - Sparc Machine Function Info -*- C++ -*-===// 256746Sroberto// 354359Sroberto// The LLVM Compiler Infrastructure 456746Sroberto// 554359Sroberto// This file is distributed under the University of Illinois Open Source 654359Sroberto// License. See LICENSE.TXT for details. 754359Sroberto// 854359Sroberto//===----------------------------------------------------------------------===// 954359Sroberto// 1054359Sroberto// This file declares Sparc specific per-machine-function information. 1154359Sroberto// 1254359Sroberto//===----------------------------------------------------------------------===// 1354359Sroberto#ifndef SPARCMACHINEFUNCTIONINFO_H 1454359Sroberto#define SPARCMACHINEFUNCTIONINFO_H 1554359Sroberto 1654359Sroberto#include "llvm/CodeGen/MachineFunction.h" 1754359Sroberto 1854359Srobertonamespace llvm { 1954359Sroberto 2054359Sroberto class SparcMachineFunctionInfo : public MachineFunctionInfo { 2154359Sroberto virtual void anchor(); 2254359Sroberto private: 2354359Sroberto unsigned GlobalBaseReg; 2454359Sroberto 2554359Sroberto /// VarArgsFrameOffset - Frame offset to start of varargs area. 2654359Sroberto int VarArgsFrameOffset; 2754359Sroberto 2854359Sroberto /// SRetReturnReg - Holds the virtual register into which the sret 2954359Sroberto /// argument is passed. 3056746Sroberto unsigned SRetReturnReg; 3154359Sroberto 3254359Sroberto /// IsLeafProc - True if the function is a leaf procedure. 3354359Sroberto bool IsLeafProc; 3454359Sroberto public: 3554359Sroberto SparcMachineFunctionInfo() 3654359Sroberto : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0), 3754359Sroberto IsLeafProc(false) {} 3854359Sroberto explicit SparcMachineFunctionInfo(MachineFunction &MF) 3954359Sroberto : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0), 4054359Sroberto IsLeafProc(false) {} 4154359Sroberto 4254359Sroberto unsigned getGlobalBaseReg() const { return GlobalBaseReg; } 4382498Sroberto void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; } 4454359Sroberto 4582498Sroberto int getVarArgsFrameOffset() const { return VarArgsFrameOffset; } 4654359Sroberto void setVarArgsFrameOffset(int Offset) { VarArgsFrameOffset = Offset; } 4754359Sroberto 4854359Sroberto unsigned getSRetReturnReg() const { return SRetReturnReg; } 4954359Sroberto void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; } 5054359Sroberto 5154359Sroberto void setLeafProc(bool rhs) { IsLeafProc = rhs; } 5254359Sroberto bool isLeafProc() const { return IsLeafProc; } 5354359Sroberto }; 5454359Sroberto} 5554359Sroberto 5654359Sroberto#endif 5754359Sroberto