1ff0cc061SDimitry Andric //===-- BPFFrameLowering.cpp - BPF Frame Information ----------------------===//
2ff0cc061SDimitry Andric //
3ff0cc061SDimitry Andric // The LLVM Compiler Infrastructure
4ff0cc061SDimitry Andric //
5ff0cc061SDimitry Andric // This file is distributed under the University of Illinois Open Source
6ff0cc061SDimitry Andric // License. See LICENSE.TXT for details.
7ff0cc061SDimitry Andric //
8ff0cc061SDimitry Andric //===----------------------------------------------------------------------===//
9ff0cc061SDimitry Andric //
10ff0cc061SDimitry Andric // This file contains the BPF implementation of TargetFrameLowering class.
11ff0cc061SDimitry Andric //
12ff0cc061SDimitry Andric //===----------------------------------------------------------------------===//
13ff0cc061SDimitry Andric
14ff0cc061SDimitry Andric #include "BPFFrameLowering.h"
15ff0cc061SDimitry Andric #include "BPFInstrInfo.h"
16ff0cc061SDimitry Andric #include "BPFSubtarget.h"
17ff0cc061SDimitry Andric #include "llvm/CodeGen/MachineFrameInfo.h"
18ff0cc061SDimitry Andric #include "llvm/CodeGen/MachineFunction.h"
19ff0cc061SDimitry Andric #include "llvm/CodeGen/MachineInstrBuilder.h"
20ff0cc061SDimitry Andric #include "llvm/CodeGen/MachineRegisterInfo.h"
21ff0cc061SDimitry Andric
22ff0cc061SDimitry Andric using namespace llvm;
23ff0cc061SDimitry Andric
hasFP(const MachineFunction & MF) const24ff0cc061SDimitry Andric bool BPFFrameLowering::hasFP(const MachineFunction &MF) const { return true; }
25ff0cc061SDimitry Andric
emitPrologue(MachineFunction & MF,MachineBasicBlock & MBB) const26ff0cc061SDimitry Andric void BPFFrameLowering::emitPrologue(MachineFunction &MF,
27ff0cc061SDimitry Andric MachineBasicBlock &MBB) const {}
28ff0cc061SDimitry Andric
emitEpilogue(MachineFunction & MF,MachineBasicBlock & MBB) const29ff0cc061SDimitry Andric void BPFFrameLowering::emitEpilogue(MachineFunction &MF,
30ff0cc061SDimitry Andric MachineBasicBlock &MBB) const {}
31ff0cc061SDimitry Andric
determineCalleeSaves(MachineFunction & MF,BitVector & SavedRegs,RegScavenger * RS) const32*875ed548SDimitry Andric void BPFFrameLowering::determineCalleeSaves(MachineFunction &MF,
33*875ed548SDimitry Andric BitVector &SavedRegs,
34*875ed548SDimitry Andric RegScavenger *RS) const {
35*875ed548SDimitry Andric TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS);
36*875ed548SDimitry Andric SavedRegs.reset(BPF::R6);
37*875ed548SDimitry Andric SavedRegs.reset(BPF::R7);
38*875ed548SDimitry Andric SavedRegs.reset(BPF::R8);
39*875ed548SDimitry Andric SavedRegs.reset(BPF::R9);
40ff0cc061SDimitry Andric }
41