1193323Sed//===- MSP430MachineFuctionInfo.h - MSP430 machine function info -*- C++ -*-==// 2193323Sed// 3193323Sed// The LLVM Compiler Infrastructure 4193323Sed// 5193323Sed// This file is distributed under the University of Illinois Open Source 6193323Sed// License. See LICENSE.TXT for details. 7193323Sed// 8193323Sed//===----------------------------------------------------------------------===// 9193323Sed// 10193323Sed// This file declares MSP430-specific per-machine-function information. 11193323Sed// 12193323Sed//===----------------------------------------------------------------------===// 13193323Sed 14193323Sed#ifndef MSP430MACHINEFUNCTIONINFO_H 15193323Sed#define MSP430MACHINEFUNCTIONINFO_H 16193323Sed 17193323Sed#include "llvm/CodeGen/MachineFunction.h" 18193323Sed 19193323Sednamespace llvm { 20193323Sed 21193323Sed/// MSP430MachineFunctionInfo - This class is derived from MachineFunction and 22193323Sed/// contains private MSP430 target-specific information for each MachineFunction. 23193323Sedclass MSP430MachineFunctionInfo : public MachineFunctionInfo { 24235633Sdim virtual void anchor(); 25235633Sdim 26193323Sed /// CalleeSavedFrameSize - Size of the callee-saved register portion of the 27193323Sed /// stack frame in bytes. 28193323Sed unsigned CalleeSavedFrameSize; 29193323Sed 30200581Srdivacky /// ReturnAddrIndex - FrameIndex for return slot. 31200581Srdivacky int ReturnAddrIndex; 32200581Srdivacky 33252723Sdim /// VarArgsFrameIndex - FrameIndex for start of varargs area. 34252723Sdim int VarArgsFrameIndex; 35252723Sdim 36193323Sedpublic: 37193323Sed MSP430MachineFunctionInfo() : CalleeSavedFrameSize(0) {} 38193323Sed 39193574Sed explicit MSP430MachineFunctionInfo(MachineFunction &MF) 40200581Srdivacky : CalleeSavedFrameSize(0), ReturnAddrIndex(0) {} 41193323Sed 42193323Sed unsigned getCalleeSavedFrameSize() const { return CalleeSavedFrameSize; } 43193323Sed void setCalleeSavedFrameSize(unsigned bytes) { CalleeSavedFrameSize = bytes; } 44200581Srdivacky 45200581Srdivacky int getRAIndex() const { return ReturnAddrIndex; } 46200581Srdivacky void setRAIndex(int Index) { ReturnAddrIndex = Index; } 47252723Sdim 48252723Sdim int getVarArgsFrameIndex() const { return VarArgsFrameIndex;} 49252723Sdim void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; } 50193323Sed}; 51193323Sed 52193323Sed} // End llvm namespace 53193323Sed 54193323Sed#endif 55