BPFRegisterInfo.h revision 287506
1234285Sdim//===-- BPFRegisterInfo.h - BPF Register Information Impl -------*- C++ -*-===//
2234285Sdim//
3234285Sdim//                     The LLVM Compiler Infrastructure
4234285Sdim//
5234285Sdim// This file is distributed under the University of Illinois Open Source
6234285Sdim// License. See LICENSE.TXT for details.
7234285Sdim//
8234285Sdim//===----------------------------------------------------------------------===//
9234285Sdim//
10234285Sdim// This file contains the BPF implementation of the TargetRegisterInfo class.
11234285Sdim//
12234285Sdim//===----------------------------------------------------------------------===//
13234285Sdim
14239462Sdim#ifndef LLVM_LIB_TARGET_BPF_BPFREGISTERINFO_H
15234285Sdim#define LLVM_LIB_TARGET_BPF_BPFREGISTERINFO_H
16234285Sdim
17234285Sdim#include "llvm/Target/TargetRegisterInfo.h"
18234285Sdim
19234285Sdim#define GET_REGINFO_HEADER
20234285Sdim#include "BPFGenRegisterInfo.inc"
21234285Sdim
22234285Sdimnamespace llvm {
23234285Sdim
24234285Sdimstruct BPFRegisterInfo : public BPFGenRegisterInfo {
25234285Sdim
26234285Sdim  BPFRegisterInfo();
27234285Sdim
28234285Sdim  const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override;
29249423Sdim
30249423Sdim  BitVector getReservedRegs(const MachineFunction &MF) const override;
31249423Sdim
32249423Sdim  void eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj,
33249423Sdim                           unsigned FIOperandNum,
34234285Sdim                           RegScavenger *RS = nullptr) const override;
35234285Sdim
36234285Sdim  unsigned getFrameRegister(const MachineFunction &MF) const override;
37234285Sdim};
38234285Sdim}
39234285Sdim
40234285Sdim#endif
41234285Sdim