1ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner//===- SparcMachineFunctionInfo.h - Sparc Machine Function Info -*- C++ -*-===// 2ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// 3ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// The LLVM Compiler Infrastructure 4ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// 5ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// This file is distributed under the University of Illinois Open Source 6ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// License. See LICENSE.TXT for details. 7ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// 8ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner//===----------------------------------------------------------------------===// 9ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// 10ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// This file declares Sparc specific per-machine-function information. 11ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner// 12ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner//===----------------------------------------------------------------------===// 13ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner#ifndef SPARCMACHINEFUNCTIONINFO_H 14ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner#define SPARCMACHINEFUNCTIONINFO_H 15ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner 16ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner#include "llvm/CodeGen/MachineFunction.h" 17ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner 18ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattnernamespace llvm { 19ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner 20ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner class SparcMachineFunctionInfo : public MachineFunctionInfo { 212d24e2a396a1d211baaeedf32148a3b657240170David Blaikie virtual void anchor(); 22ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner private: 23ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner unsigned GlobalBaseReg; 241e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman 251e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman /// VarArgsFrameOffset - Frame offset to start of varargs area. 261e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman int VarArgsFrameOffset; 271e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman 288184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju /// SRetReturnReg - Holds the virtual register into which the sret 298184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju /// argument is passed. 308184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju unsigned SRetReturnReg; 31ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner public: 328184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju SparcMachineFunctionInfo() 338184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} 341e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman explicit SparcMachineFunctionInfo(MachineFunction &MF) 358184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} 36ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner 37ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner unsigned getGlobalBaseReg() const { return GlobalBaseReg; } 38ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; } 391e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman 401e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman int getVarArgsFrameOffset() const { return VarArgsFrameOffset; } 411e93df6f0b5ee6e36d7ec18e6035f0f5a53e5ec6Dan Gohman void setVarArgsFrameOffset(int Offset) { VarArgsFrameOffset = Offset; } 428184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju 438184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju unsigned getSRetReturnReg() const { return SRetReturnReg; } 448184e289db45acd0bd8bbf7087f7a1274ef55f15Venkatraman Govindaraju void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; } 45ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner }; 46ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner} 47ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner 48ea7fd966985ebb7063c8a003d8d344e91644eb86Chris Lattner#endif 49