18f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle//===-- Mips16RegisterInfo.h - Mips16 Register Information ------*- C++ -*-===// 28f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// 38f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// The LLVM Compiler Infrastructure 48f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// 58f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// This file is distributed under the University of Illinois Open Source 68f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// License. See LICENSE.TXT for details. 78f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// 88f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle//===----------------------------------------------------------------------===// 98f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// 108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// This file contains the Mips16 implementation of the TargetRegisterInfo class. 118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle// 128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle//===----------------------------------------------------------------------===// 138e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 148e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath#ifndef LLVM_LIB_TARGET_MIPS_MIPS16REGISTERINFO_H 158e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath#define LLVM_LIB_TARGET_MIPS_MIPS16REGISTERINFO_H 168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 178e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath#include "MipsRegisterInfo.h" 188e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 198e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathnamespace llvm { 208e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathclass Mips16InstrInfo; 218e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 228e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathclass Mips16RegisterInfo : public MipsRegisterInfo { 238e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathpublic: 248e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath Mips16RegisterInfo(); 258e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle bool requiresRegisterScavenging(const MachineFunction &MF) const override; 278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle bool requiresFrameIndexScavenging(const MachineFunction &MF) const override; 298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle bool useFPForScavengingIndex(const MachineFunction &MF) const override; 318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle bool saveScavengerRegister(MachineBasicBlock &MBB, 338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle MachineBasicBlock::iterator I, 348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle MachineBasicBlock::iterator &UseMI, 358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle const TargetRegisterClass *RC, 368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle unsigned Reg) const override; 378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle const TargetRegisterClass *intRegClass(unsigned Size) const override; 398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleprivate: 418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo, 428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int FrameIndex, uint64_t StackSize, 438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int64_t SPOffset) const override; 448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle}; 458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle} // end namespace llvm 478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle#endif 498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle