LLVM API Documentation
00001 //===- Thumb2RegisterInfo.h - Thumb-2 Register Information Impl -*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file contains the Thumb-2 implementation of the TargetRegisterInfo 00011 // class. 00012 // 00013 //===----------------------------------------------------------------------===// 00014 00015 #ifndef LLVM_LIB_TARGET_ARM_THUMB2REGISTERINFO_H 00016 #define LLVM_LIB_TARGET_ARM_THUMB2REGISTERINFO_H 00017 00018 #include "ARMBaseRegisterInfo.h" 00019 00020 namespace llvm { 00021 00022 class ARMSubtarget; 00023 00024 struct Thumb2RegisterInfo : public ARMBaseRegisterInfo { 00025 public: 00026 Thumb2RegisterInfo(const ARMSubtarget &STI); 00027 00028 /// emitLoadConstPool - Emits a load from constpool to materialize the 00029 /// specified immediate. 00030 void 00031 emitLoadConstPool(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, 00032 DebugLoc dl, unsigned DestReg, unsigned SubIdx, int Val, 00033 ARMCC::CondCodes Pred = ARMCC::AL, unsigned PredReg = 0, 00034 unsigned MIFlags = MachineInstr::NoFlags) const override; 00035 }; 00036 } 00037 00038 #endif