Declare the callee saved regs
[oota-llvm.git] / lib / Target / ARM / ARMFrameInfo.h
1 //===-- ARMTargetFrameInfo.h - Define TargetFrameInfo for ARM ---*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the "Instituto Nokia de Tecnologia" and
6 // is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10 //
11 //
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef ARM_FRAMEINFO_H
16 #define ARM_FRAMEINFO_H
17
18 #include "ARM.h"
19 #include "llvm/Target/TargetFrameInfo.h"
20 #include "llvm/Target/TargetMachine.h"
21
22 namespace llvm {
23
24 class ARMFrameInfo: public TargetFrameInfo {
25   std::pair<unsigned, int> LR[1];
26
27 public:
28   ARMFrameInfo()
29     : TargetFrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0) {
30     LR[0].first = ARM::R14;
31     LR[0].second = -4;
32   }
33
34   const std::pair<unsigned, int> *
35   getCalleeSaveSpillSlots(unsigned &NumEntries) const {
36     NumEntries = 1;
37     return &LR[0];
38   }
39 };
40
41 } // End llvm namespace
42
43 #endif