brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 226f787 Raw
52 lines · c
1//===- MipsSEFrameLowering.h - Mips32/64 frame lowering ---------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_MIPS_MIPSSEFRAMELOWERING_H10#define LLVM_LIB_TARGET_MIPS_MIPSSEFRAMELOWERING_H11 12#include "MipsFrameLowering.h"13 14namespace llvm {15 16class MachineBasicBlock;17class MachineFunction;18class MipsSubtarget;19 20class MipsSEFrameLowering : public MipsFrameLowering {21public:22  explicit MipsSEFrameLowering(const MipsSubtarget &STI);23 24  /// emitProlog/emitEpilog - These methods insert prolog and epilog code into25  /// the function.26  void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override;27  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override;28 29  StackOffset getFrameIndexReference(const MachineFunction &MF, int FI,30                                     Register &FrameReg) const override;31 32  bool spillCalleeSavedRegisters(MachineBasicBlock &MBB,33                                 MachineBasicBlock::iterator MI,34                                 ArrayRef<CalleeSavedInfo> CSI,35                                 const TargetRegisterInfo *TRI) const override;36 37  bool hasReservedCallFrame(const MachineFunction &MF) const override;38 39  void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs,40                            RegScavenger *RS) const override;41 42private:43  void emitInterruptEpilogueStub(MachineFunction &MF,44                                 MachineBasicBlock &MBB) const;45  void emitInterruptPrologueStub(MachineFunction &MF,46                                 MachineBasicBlock &MBB) const;47};48 49} // end namespace llvm50 51#endif // LLVM_LIB_TARGET_MIPS_MIPSSEFRAMELOWERING_H52