BPFMCTargetDesc.h revision 327952
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; 27283625Sdimclass MCObjectWriter; 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 55327952Sdimstd::unique_ptr<MCObjectWriter> createBPFELFObjectWriter(raw_pwrite_stream &OS, 56327952Sdim uint8_t OSABI, 57327952Sdim bool IsLittleEndian); 58285181Sdim} 59283625Sdim 60283625Sdim// Defines symbolic names for BPF registers. This defines a mapping from 61283625Sdim// register name to register number. 62283625Sdim// 63283625Sdim#define GET_REGINFO_ENUM 64283625Sdim#include "BPFGenRegisterInfo.inc" 65283625Sdim 66283625Sdim// Defines symbolic names for the BPF instructions. 67283625Sdim// 68283625Sdim#define GET_INSTRINFO_ENUM 69283625Sdim#include "BPFGenInstrInfo.inc" 70283625Sdim 71283625Sdim#define GET_SUBTARGETINFO_ENUM 72283625Sdim#include "BPFGenSubtargetInfo.inc" 73283625Sdim 74283625Sdim#endif 75