1283625Sdim//===-- BPFRegisterInfo.h - BPF Register Information Impl -------*- C++ -*-===//
2283625Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6283625Sdim//
7283625Sdim//===----------------------------------------------------------------------===//
8283625Sdim//
9283625Sdim// This file contains the BPF implementation of the TargetRegisterInfo class.
10283625Sdim//
11283625Sdim//===----------------------------------------------------------------------===//
12283625Sdim
13283625Sdim#ifndef LLVM_LIB_TARGET_BPF_BPFREGISTERINFO_H
14283625Sdim#define LLVM_LIB_TARGET_BPF_BPFREGISTERINFO_H
15283625Sdim
16327952Sdim#include "llvm/CodeGen/TargetRegisterInfo.h"
17283625Sdim
18283625Sdim#define GET_REGINFO_HEADER
19283625Sdim#include "BPFGenRegisterInfo.inc"
20283625Sdim
21283625Sdimnamespace llvm {
22283625Sdim
23283625Sdimstruct BPFRegisterInfo : public BPFGenRegisterInfo {
24283625Sdim
25283625Sdim  BPFRegisterInfo();
26283625Sdim
27283625Sdim  const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override;
28283625Sdim
29283625Sdim  BitVector getReservedRegs(const MachineFunction &MF) const override;
30283625Sdim
31283625Sdim  void eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj,
32283625Sdim                           unsigned FIOperandNum,
33283625Sdim                           RegScavenger *RS = nullptr) const override;
34283625Sdim
35353358Sdim  Register getFrameRegister(const MachineFunction &MF) const override;
36283625Sdim};
37285181Sdim}
38283625Sdim
39283625Sdim#endif
40