Thumb2RegisterInfo.h revision 263508
1//===- Thumb2RegisterInfo.h - Thumb-2 Register Information Impl -*- 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// This file contains the Thumb-2 implementation of the TargetRegisterInfo
11// class.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef THUMB2REGISTERINFO_H
16#define THUMB2REGISTERINFO_H
17
18#include "ARM.h"
19#include "ARMBaseRegisterInfo.h"
20#include "llvm/Target/TargetRegisterInfo.h"
21
22namespace llvm {
23
24class ARMSubtarget;
25
26struct Thumb2RegisterInfo : public ARMBaseRegisterInfo {
27public:
28  Thumb2RegisterInfo(const ARMSubtarget &STI);
29
30  /// emitLoadConstPool - Emits a load from constpool to materialize the
31  /// specified immediate.
32  void emitLoadConstPool(MachineBasicBlock &MBB,
33                         MachineBasicBlock::iterator &MBBI,
34                         DebugLoc dl,
35                         unsigned DestReg, unsigned SubIdx, int Val,
36                         ARMCC::CondCodes Pred = ARMCC::AL,
37                         unsigned PredReg = 0,
38                         unsigned MIFlags = MachineInstr::NoFlags) const;
39};
40}
41
42#endif // THUMB2REGISTERINFO_H
43