| Nick Lewycky | c3890d2 | 2015-07-29 22:32:47 +0000 | [diff] [blame] | 1 | //=== MSP430MachineFunctionInfo.h - MSP430 machine function info -*- C++ -*-==// | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 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 MSP430-specific per-machine-function information. | 
|  | 11 | // | 
|  | 12 | //===----------------------------------------------------------------------===// | 
|  | 13 |  | 
| Benjamin Kramer | a7c40ef | 2014-08-13 16:26:38 +0000 | [diff] [blame] | 14 | #ifndef LLVM_LIB_TARGET_MSP430_MSP430MACHINEFUNCTIONINFO_H | 
|  | 15 | #define LLVM_LIB_TARGET_MSP430_MSP430MACHINEFUNCTIONINFO_H | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 16 |  | 
|  | 17 | #include "llvm/CodeGen/MachineFunction.h" | 
|  | 18 |  | 
|  | 19 | namespace llvm { | 
|  | 20 |  | 
|  | 21 | /// MSP430MachineFunctionInfo - This class is derived from MachineFunction and | 
|  | 22 | /// contains private MSP430 target-specific information for each MachineFunction. | 
|  | 23 | class MSP430MachineFunctionInfo : public MachineFunctionInfo { | 
| David Blaikie | a379b181 | 2011-12-20 02:50:00 +0000 | [diff] [blame] | 24 | virtual void anchor(); | 
|  | 25 |  | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 26 | /// CalleeSavedFrameSize - Size of the callee-saved register portion of the | 
|  | 27 | /// stack frame in bytes. | 
|  | 28 | unsigned CalleeSavedFrameSize; | 
|  | 29 |  | 
| Anton Korobeynikov | ff4ab51 | 2009-12-07 02:28:10 +0000 | [diff] [blame] | 30 | /// ReturnAddrIndex - FrameIndex for return slot. | 
|  | 31 | int ReturnAddrIndex; | 
|  | 32 |  | 
| Anton Korobeynikov | 568afeb | 2012-11-21 17:28:27 +0000 | [diff] [blame] | 33 | /// VarArgsFrameIndex - FrameIndex for start of varargs area. | 
|  | 34 | int VarArgsFrameIndex; | 
|  | 35 |  | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 36 | public: | 
|  | 37 | MSP430MachineFunctionInfo() : CalleeSavedFrameSize(0) {} | 
|  | 38 |  | 
| Dan Gohman | d185a7a | 2009-06-05 23:05:51 +0000 | [diff] [blame] | 39 | explicit MSP430MachineFunctionInfo(MachineFunction &MF) | 
| Anton Korobeynikov | ff4ab51 | 2009-12-07 02:28:10 +0000 | [diff] [blame] | 40 | : CalleeSavedFrameSize(0), ReturnAddrIndex(0) {} | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 41 |  | 
|  | 42 | unsigned getCalleeSavedFrameSize() const { return CalleeSavedFrameSize; } | 
|  | 43 | void setCalleeSavedFrameSize(unsigned bytes) { CalleeSavedFrameSize = bytes; } | 
| Anton Korobeynikov | ff4ab51 | 2009-12-07 02:28:10 +0000 | [diff] [blame] | 44 |  | 
|  | 45 | int getRAIndex() const { return ReturnAddrIndex; } | 
|  | 46 | void setRAIndex(int Index) { ReturnAddrIndex = Index; } | 
| Anton Korobeynikov | 568afeb | 2012-11-21 17:28:27 +0000 | [diff] [blame] | 47 |  | 
|  | 48 | int getVarArgsFrameIndex() const { return VarArgsFrameIndex;} | 
|  | 49 | void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; } | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 50 | }; | 
|  | 51 |  | 
| Alexander Kornienko | f00654e | 2015-06-23 09:49:53 +0000 | [diff] [blame] | 52 | } // End llvm namespace | 
| Anton Korobeynikov | 1af0b61 | 2009-05-03 13:11:04 +0000 | [diff] [blame] | 53 |  | 
|  | 54 | #endif |