diff options
Diffstat (limited to 'contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h')
-rw-r--r-- | contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h b/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h deleted file mode 100644 index 6a31e94..0000000 --- a/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h +++ /dev/null @@ -1,113 +0,0 @@ -//===- SystemZInstrInfo.h - SystemZ Instruction Information -------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file contains the SystemZ implementation of the TargetInstrInfo class. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TARGET_SYSTEMZINSTRINFO_H -#define LLVM_TARGET_SYSTEMZINSTRINFO_H - -#include "SystemZ.h" -#include "SystemZRegisterInfo.h" -#include "llvm/ADT/IndexedMap.h" -#include "llvm/Target/TargetInstrInfo.h" - -#define GET_INSTRINFO_HEADER -#include "SystemZGenInstrInfo.inc" - -namespace llvm { - -class SystemZTargetMachine; - -/// SystemZII - This namespace holds all of the target specific flags that -/// instruction info tracks. -/// -namespace SystemZII { - enum { - //===------------------------------------------------------------------===// - // SystemZ Specific MachineOperand flags. - - MO_NO_FLAG = 0, - - /// MO_GOTENT - On a symbol operand this indicates that the immediate is - /// the offset to the location of the symbol name from the base of the GOT. - /// - /// SYMBOL_LABEL @GOTENT - MO_GOTENT = 1, - - /// MO_PLT - On a symbol operand this indicates that the immediate is - /// offset to the PLT entry of symbol name from the current code location. - /// - /// SYMBOL_LABEL @PLT - MO_PLT = 2 - }; -} - -class SystemZInstrInfo : public SystemZGenInstrInfo { - const SystemZRegisterInfo RI; - SystemZTargetMachine &TM; -public: - explicit SystemZInstrInfo(SystemZTargetMachine &TM); - - /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As - /// such, whenever a client has an instance of instruction info, it should - /// always be able to get register info as well (through this method). - /// - virtual const SystemZRegisterInfo &getRegisterInfo() const { return RI; } - - virtual void copyPhysReg(MachineBasicBlock &MBB, - MachineBasicBlock::iterator I, DebugLoc DL, - unsigned DestReg, unsigned SrcReg, - bool KillSrc) const; - - unsigned isLoadFromStackSlot(const MachineInstr *MI, int &FrameIndex) const; - unsigned isStoreToStackSlot(const MachineInstr *MI, int &FrameIndex) const; - - virtual void storeRegToStackSlot(MachineBasicBlock &MBB, - MachineBasicBlock::iterator MI, - unsigned SrcReg, bool isKill, - int FrameIndex, - const TargetRegisterClass *RC, - const TargetRegisterInfo *TRI) const; - virtual void loadRegFromStackSlot(MachineBasicBlock &MBB, - MachineBasicBlock::iterator MI, - unsigned DestReg, int FrameIdx, - const TargetRegisterClass *RC, - const TargetRegisterInfo *TRI) const; - - bool ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const; - virtual bool isUnpredicatedTerminator(const MachineInstr *MI) const; - virtual bool AnalyzeBranch(MachineBasicBlock &MBB, - MachineBasicBlock *&TBB, - MachineBasicBlock *&FBB, - SmallVectorImpl<MachineOperand> &Cond, - bool AllowModify) const; - virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, - MachineBasicBlock *FBB, - const SmallVectorImpl<MachineOperand> &Cond, - DebugLoc DL) const; - virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const; - - SystemZCC::CondCodes getOppositeCondition(SystemZCC::CondCodes CC) const; - SystemZCC::CondCodes getCondFromBranchOpc(unsigned Opc) const; - const MCInstrDesc& getBrCond(SystemZCC::CondCodes CC) const; - const MCInstrDesc& getLongDispOpc(unsigned Opc) const; - - const MCInstrDesc& getMemoryInstr(unsigned Opc, int64_t Offset = 0) const { - if (Offset < 0 || Offset >= 4096) - return getLongDispOpc(Opc); - else - return get(Opc); - } -}; - -} - -#endif |