1 //===- SparcV8InstrInfo.h - SparcV8 Instruction Information -----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the SparcV8 implementation of the TargetInstrInfo class.
12 //===----------------------------------------------------------------------===//
14 #ifndef SPARCV8INSTRUCTIONINFO_H
15 #define SPARCV8INSTRUCTIONINFO_H
17 #include "llvm/Target/TargetInstrInfo.h"
18 #include "SparcV8RegisterInfo.h"
22 /// V8II - This namespace holds all of the target specific flags that
23 /// instruction info tracks.
34 class SparcV8InstrInfo : public TargetInstrInfo {
35 const SparcV8RegisterInfo RI;
39 /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
40 /// such, whenever a client has an instance of instruction info, it should
41 /// always be able to get register info as well (through this method).
43 virtual const MRegisterInfo &getRegisterInfo() const { return RI; }
45 /// Return true if the instruction is a register to register move and
46 /// leave the source and dest operands in the passed parameters.
48 virtual bool isMoveInstr(const MachineInstr &MI,
49 unsigned &SrcReg, unsigned &DstReg) const;