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 "ARMBaseRegisterInfo.h"
19
20namespace llvm {
21
22class ARMSubtarget;
23
24struct Thumb2RegisterInfo : public ARMBaseRegisterInfo {
25public:
26  Thumb2RegisterInfo(const ARMSubtarget &STI);
27
28  /// emitLoadConstPool - Emits a load from constpool to materialize the
29  /// specified immediate.
30  void
31  emitLoadConstPool(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
32                    DebugLoc dl, unsigned DestReg, unsigned SubIdx, int Val,
33                    ARMCC::CondCodes Pred = ARMCC::AL, unsigned PredReg = 0,
34                    unsigned MIFlags = MachineInstr::NoFlags) const override;
35};
36}
37
38#endif // THUMB2REGISTERINFO_H
39