BPFMCTargetDesc.h revision 341825
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 17321369Sdim#include "llvm/Config/config.h" 18283625Sdim#include "llvm/Support/DataTypes.h" 19283625Sdim 20327952Sdim#include <memory> 21327952Sdim 22283625Sdimnamespace llvm { 23283625Sdimclass MCAsmBackend; 24283625Sdimclass MCCodeEmitter; 25283625Sdimclass MCContext; 26283625Sdimclass MCInstrInfo; 27341825Sdimclass MCObjectTargetWriter; 28283625Sdimclass MCRegisterInfo; 29283625Sdimclass MCSubtargetInfo; 30314564Sdimclass MCTargetOptions; 31284734Sdimclass StringRef; 32283625Sdimclass Target; 33284734Sdimclass Triple; 34283625Sdimclass raw_ostream; 35283625Sdimclass raw_pwrite_stream; 36283625Sdim 37314564SdimTarget &getTheBPFleTarget(); 38314564SdimTarget &getTheBPFbeTarget(); 39314564SdimTarget &getTheBPFTarget(); 40283625Sdim 41283625SdimMCCodeEmitter *createBPFMCCodeEmitter(const MCInstrInfo &MCII, 42283625Sdim const MCRegisterInfo &MRI, 43283625Sdim MCContext &Ctx); 44284236SdimMCCodeEmitter *createBPFbeMCCodeEmitter(const MCInstrInfo &MCII, 45284236Sdim const MCRegisterInfo &MRI, 46284236Sdim MCContext &Ctx); 47283625Sdim 48327952SdimMCAsmBackend *createBPFAsmBackend(const Target &T, const MCSubtargetInfo &STI, 49327952Sdim const MCRegisterInfo &MRI, 50314564Sdim const MCTargetOptions &Options); 51327952SdimMCAsmBackend *createBPFbeAsmBackend(const Target &T, const MCSubtargetInfo &STI, 52327952Sdim const MCRegisterInfo &MRI, 53314564Sdim const MCTargetOptions &Options); 54283625Sdim 55341825Sdimstd::unique_ptr<MCObjectTargetWriter> createBPFELFObjectWriter(uint8_t OSABI); 56285181Sdim} 57283625Sdim 58283625Sdim// Defines symbolic names for BPF registers. This defines a mapping from 59283625Sdim// register name to register number. 60283625Sdim// 61283625Sdim#define GET_REGINFO_ENUM 62283625Sdim#include "BPFGenRegisterInfo.inc" 63283625Sdim 64283625Sdim// Defines symbolic names for the BPF instructions. 65283625Sdim// 66283625Sdim#define GET_INSTRINFO_ENUM 67283625Sdim#include "BPFGenInstrInfo.inc" 68283625Sdim 69283625Sdim#define GET_SUBTARGETINFO_ENUM 70283625Sdim#include "BPFGenSubtargetInfo.inc" 71283625Sdim 72283625Sdim#endif 73