1234353Sdim//===-- ARMInstrInfo.h - ARM Instruction Information ------------*- C++ -*-===// 2193323Sed// 3193323Sed// The LLVM Compiler Infrastructure 4193323Sed// 5193323Sed// This file is distributed under the University of Illinois Open Source 6193323Sed// License. See LICENSE.TXT for details. 7193323Sed// 8193323Sed//===----------------------------------------------------------------------===// 9193323Sed// 10193323Sed// This file contains the ARM implementation of the TargetInstrInfo class. 11193323Sed// 12193323Sed//===----------------------------------------------------------------------===// 13193323Sed 14193323Sed#ifndef ARMINSTRUCTIONINFO_H 15193323Sed#define ARMINSTRUCTIONINFO_H 16193323Sed 17234353Sdim#include "ARM.h" 18198090Srdivacky#include "ARMBaseInstrInfo.h" 19193323Sed#include "ARMRegisterInfo.h" 20198090Srdivacky#include "ARMSubtarget.h" 21193323Sed 22193323Sednamespace llvm { 23193323Sed class ARMSubtarget; 24193323Sed 25195340Sedclass ARMInstrInfo : public ARMBaseInstrInfo { 26195340Sed ARMRegisterInfo RI; 27195340Sedpublic: 28195340Sed explicit ARMInstrInfo(const ARMSubtarget &STI); 29195340Sed 30234353Sdim /// getNoopForMachoTarget - Return the noop instruction to use for a noop. 31234353Sdim void getNoopForMachoTarget(MCInst &NopInst) const; 32234353Sdim 33198090Srdivacky // Return the non-pre/post incrementing version of 'Opc'. Return 0 34198090Srdivacky // if there is not such an opcode. 35198090Srdivacky unsigned getUnindexedOpcode(unsigned Opc) const; 36198090Srdivacky 37195340Sed /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As 38195340Sed /// such, whenever a client has an instance of instruction info, it should 39195340Sed /// always be able to get register info as well (through this method). 40195340Sed /// 41195340Sed const ARMRegisterInfo &getRegisterInfo() const { return RI; } 42195340Sed}; 43195340Sed 44193323Sed} 45193323Sed 46193323Sed#endif 47