~ubuntu-branches/ubuntu/trusty/llvm-toolchain-snapshot/trusty-201310232150

« back to all changes in this revision

Viewing changes to lib/Target/SystemZ/SystemZMachineFunctionInfo.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-27 15:01:57 UTC
  • mfrom: (0.10.1) (0.9.1) (0.8.1) (0.7.1) (0.6.1) (0.5.2)
  • Revision ID: package-import@ubuntu.com-20130527150157-tdkrsjpuvht7v0qx
Tags: 1:3.4~svn182733-1~exp1
* New snapshot release (3.4 release)
* Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so
    to fix make the llvm-config-3.4 --libdir work (Closes: #708677)
  * Various packages rename to allow co installations:
    * libclang1 => libclang1-3.4
    * libclang1-dbg => libclang1-3.4-dbg
    * libclang-dev => libclang-3.4-dev
    * libclang-common-dev => libclang-common-3.4-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//==- SystemZMachineFuctionInfo.h - SystemZ 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
#ifndef SYSTEMZMACHINEFUNCTIONINFO_H
 
11
#define SYSTEMZMACHINEFUNCTIONINFO_H
 
12
 
 
13
#include "llvm/CodeGen/MachineFunction.h"
 
14
 
 
15
namespace llvm {
 
16
 
 
17
class SystemZMachineFunctionInfo : public MachineFunctionInfo {
 
18
  unsigned SavedGPRFrameSize;
 
19
  unsigned LowSavedGPR;
 
20
  unsigned HighSavedGPR;
 
21
  unsigned VarArgsFirstGPR;
 
22
  unsigned VarArgsFirstFPR;
 
23
  unsigned VarArgsFrameIndex;
 
24
  unsigned RegSaveFrameIndex;
 
25
  bool ManipulatesSP;
 
26
 
 
27
public:
 
28
  explicit SystemZMachineFunctionInfo(MachineFunction &MF)
 
29
    : SavedGPRFrameSize(0), LowSavedGPR(0), HighSavedGPR(0), VarArgsFirstGPR(0),
 
30
      VarArgsFirstFPR(0), VarArgsFrameIndex(0), RegSaveFrameIndex(0),
 
31
      ManipulatesSP(false) {}
 
32
 
 
33
  // Get and set the number of bytes allocated by generic code to store
 
34
  // call-saved GPRs.
 
35
  unsigned getSavedGPRFrameSize() const { return SavedGPRFrameSize; }
 
36
  void setSavedGPRFrameSize(unsigned bytes) { SavedGPRFrameSize = bytes; }
 
37
 
 
38
  // Get and set the first call-saved GPR that should be saved and restored
 
39
  // by this function.  This is 0 if no GPRs need to be saved or restored.
 
40
  unsigned getLowSavedGPR() const { return LowSavedGPR; }
 
41
  void setLowSavedGPR(unsigned Reg) { LowSavedGPR = Reg; }
 
42
 
 
43
  // Get and set the last call-saved GPR that should be saved and restored
 
44
  // by this function.
 
45
  unsigned getHighSavedGPR() const { return HighSavedGPR; }
 
46
  void setHighSavedGPR(unsigned Reg) { HighSavedGPR = Reg; }
 
47
 
 
48
  // Get and set the number of fixed (as opposed to variable) arguments
 
49
  // that are passed in GPRs to this function.
 
50
  unsigned getVarArgsFirstGPR() const { return VarArgsFirstGPR; }
 
51
  void setVarArgsFirstGPR(unsigned GPR) { VarArgsFirstGPR = GPR; }
 
52
 
 
53
  // Likewise FPRs.
 
54
  unsigned getVarArgsFirstFPR() const { return VarArgsFirstFPR; }
 
55
  void setVarArgsFirstFPR(unsigned FPR) { VarArgsFirstFPR = FPR; }
 
56
 
 
57
  // Get and set the frame index of the first stack vararg.
 
58
  unsigned getVarArgsFrameIndex() const { return VarArgsFrameIndex; }
 
59
  void setVarArgsFrameIndex(unsigned FI) { VarArgsFrameIndex = FI; }
 
60
 
 
61
  // Get and set the frame index of the register save area
 
62
  // (i.e. the incoming stack pointer).
 
63
  unsigned getRegSaveFrameIndex() const { return RegSaveFrameIndex; }
 
64
  void setRegSaveFrameIndex(unsigned FI) { RegSaveFrameIndex = FI; }
 
65
 
 
66
  // Get and set whether the function directly manipulates the stack pointer,
 
67
  // e.g. through STACKSAVE or STACKRESTORE.
 
68
  bool getManipulatesSP() const { return ManipulatesSP; }
 
69
  void setManipulatesSP(bool MSP) { ManipulatesSP = MSP; }
 
70
};
 
71
 
 
72
} // end llvm namespace
 
73
 
 
74
#endif