BPFMCTargetDesc.h revision 283625
1283625Sdim//===-- BPFMCTargetDesc.h - BPF Target Descriptions -------------*- C++ -*-===//
2283625Sdim//
3283625Sdim//                     The LLVM Compiler Infrastructure
4283625Sdim//
5283625Sdim// This file is distributed under the University of Illinois Open Source
6283625Sdim// License. See LICENSE.TXT for details.
7283625Sdim//
8283625Sdim//===----------------------------------------------------------------------===//
9283625Sdim//
10283625Sdim// This file provides BPF specific target descriptions.
11283625Sdim//
12283625Sdim//===----------------------------------------------------------------------===//
13283625Sdim
14283625Sdim#ifndef LLVM_LIB_TARGET_BPF_MCTARGETDESC_BPFMCTARGETDESC_H
15283625Sdim#define LLVM_LIB_TARGET_BPF_MCTARGETDESC_BPFMCTARGETDESC_H
16283625Sdim
17283625Sdim#include "llvm/Support/DataTypes.h"
18283625Sdim#include "llvm/Config/config.h"
19283625Sdim
20283625Sdimnamespace llvm {
21283625Sdimclass MCAsmBackend;
22283625Sdimclass MCCodeEmitter;
23283625Sdimclass MCContext;
24283625Sdimclass MCInstrInfo;
25283625Sdimclass MCObjectWriter;
26283625Sdimclass MCRegisterInfo;
27283625Sdimclass MCSubtargetInfo;
28283625Sdimclass Target;
29283625Sdimclass StringRef;
30283625Sdimclass raw_ostream;
31283625Sdimclass raw_pwrite_stream;
32283625Sdim
33283625Sdimextern Target TheBPFTarget;
34283625Sdim
35283625SdimMCCodeEmitter *createBPFMCCodeEmitter(const MCInstrInfo &MCII,
36283625Sdim                                      const MCRegisterInfo &MRI,
37283625Sdim                                      MCContext &Ctx);
38283625Sdim
39283625SdimMCAsmBackend *createBPFAsmBackend(const Target &T, const MCRegisterInfo &MRI,
40283625Sdim                                  StringRef TT, StringRef CPU);
41283625Sdim
42283625SdimMCObjectWriter *createBPFELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI);
43283625Sdim}
44283625Sdim
45283625Sdim// Defines symbolic names for BPF registers.  This defines a mapping from
46283625Sdim// register name to register number.
47283625Sdim//
48283625Sdim#define GET_REGINFO_ENUM
49283625Sdim#include "BPFGenRegisterInfo.inc"
50283625Sdim
51283625Sdim// Defines symbolic names for the BPF instructions.
52283625Sdim//
53283625Sdim#define GET_INSTRINFO_ENUM
54283625Sdim#include "BPFGenInstrInfo.inc"
55283625Sdim
56283625Sdim#define GET_SUBTARGETINFO_ENUM
57283625Sdim#include "BPFGenSubtargetInfo.inc"
58283625Sdim
59283625Sdim#endif
60