MipsSERegisterInfo.h revision 91a35f03da446009cd1de4cdabaa1cdec7e74e0c
18589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//===-- MipsSERegisterInfo.h - Mips32/64 Register Information ---*- C++ -*-===//
28589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//
38589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//                     The LLVM Compiler Infrastructure
48589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//
58589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka// This file is distributed under the University of Illinois Open Source
68589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka// License. See LICENSE.TXT for details.
78589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//
88589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//===----------------------------------------------------------------------===//
98589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//
108589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka// This file contains the Mips32/64 implementation of the TargetRegisterInfo
118589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka// class.
128589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//
138589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka//===----------------------------------------------------------------------===//
148589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
158589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka#ifndef MIPSSEREGISTERINFO_H
168589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka#define MIPSSEREGISTERINFO_H
178589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
188589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka#include "MipsRegisterInfo.h"
198589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
208589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakanamespace llvm {
2191a35f03da446009cd1de4cdabaa1cdec7e74e0cAkira Hatanakaclass MipsSEInstrInfo;
228589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
238589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakaclass MipsSERegisterInfo : public MipsRegisterInfo {
2491a35f03da446009cd1de4cdabaa1cdec7e74e0cAkira Hatanaka  const MipsSEInstrInfo &TII;
2591a35f03da446009cd1de4cdabaa1cdec7e74e0cAkira Hatanaka
268589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakapublic:
278589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka  MipsSERegisterInfo(const MipsSubtarget &Subtarget,
2891a35f03da446009cd1de4cdabaa1cdec7e74e0cAkira Hatanaka                     const MipsSEInstrInfo &TII);
298589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
3071746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka  void eliminateCallFramePseudoInstr(MachineFunction &MF,
3171746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka                                     MachineBasicBlock &MBB,
3271746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka                                     MachineBasicBlock::iterator I) const;
3371746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka
348589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakaprivate:
358589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka  virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
368589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka                           int FrameIndex, uint64_t StackSize,
378589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka                           int64_t SPOffset) const;
388589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka};
398589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
408589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka} // end namespace llvm
418589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
428589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka#endif
43