MipsSERegisterInfo.h revision 71746220d3d1c3e8efba35038ac2ff14b4a4d3ae
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 {
218589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
228589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakaclass MipsSERegisterInfo : public MipsRegisterInfo {
238589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakapublic:
248589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka  MipsSERegisterInfo(const MipsSubtarget &Subtarget,
258589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka                     const TargetInstrInfo &TII);
268589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
2771746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka  void eliminateCallFramePseudoInstr(MachineFunction &MF,
2871746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka                                     MachineBasicBlock &MBB,
2971746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka                                     MachineBasicBlock::iterator I) const;
3071746220d3d1c3e8efba35038ac2ff14b4a4d3aeAkira Hatanaka
318589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanakaprivate:
328589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka  virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
338589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka                           int FrameIndex, uint64_t StackSize,
348589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka                           int64_t SPOffset) const;
358589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka};
368589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
378589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka} // end namespace llvm
388589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka
398589010e3d1d5a902992a5039cffa9d4116982c5Akira Hatanaka#endif
40