BPFMCTargetDesc.h revision 321369
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 20283625Sdimnamespace llvm { 21283625Sdimclass MCAsmBackend; 22283625Sdimclass MCCodeEmitter; 23283625Sdimclass MCContext; 24283625Sdimclass MCInstrInfo; 25283625Sdimclass MCObjectWriter; 26283625Sdimclass MCRegisterInfo; 27283625Sdimclass MCSubtargetInfo; 28314564Sdimclass MCTargetOptions; 29284734Sdimclass StringRef; 30283625Sdimclass Target; 31284734Sdimclass Triple; 32283625Sdimclass raw_ostream; 33283625Sdimclass raw_pwrite_stream; 34283625Sdim 35314564SdimTarget &getTheBPFleTarget(); 36314564SdimTarget &getTheBPFbeTarget(); 37314564SdimTarget &getTheBPFTarget(); 38283625Sdim 39283625SdimMCCodeEmitter *createBPFMCCodeEmitter(const MCInstrInfo &MCII, 40283625Sdim const MCRegisterInfo &MRI, 41283625Sdim MCContext &Ctx); 42284236SdimMCCodeEmitter *createBPFbeMCCodeEmitter(const MCInstrInfo &MCII, 43284236Sdim const MCRegisterInfo &MRI, 44284236Sdim MCContext &Ctx); 45283625Sdim 46283625SdimMCAsmBackend *createBPFAsmBackend(const Target &T, const MCRegisterInfo &MRI, 47314564Sdim const Triple &TT, StringRef CPU, 48314564Sdim const MCTargetOptions &Options); 49284236SdimMCAsmBackend *createBPFbeAsmBackend(const Target &T, const MCRegisterInfo &MRI, 50314564Sdim const Triple &TT, StringRef CPU, 51314564Sdim const MCTargetOptions &Options); 52283625Sdim 53284236SdimMCObjectWriter *createBPFELFObjectWriter(raw_pwrite_stream &OS, 54284236Sdim uint8_t OSABI, bool IsLittleEndian); 55285181Sdim} 56283625Sdim 57283625Sdim// Defines symbolic names for BPF registers. This defines a mapping from 58283625Sdim// register name to register number. 59283625Sdim// 60283625Sdim#define GET_REGINFO_ENUM 61283625Sdim#include "BPFGenRegisterInfo.inc" 62283625Sdim 63283625Sdim// Defines symbolic names for the BPF instructions. 64283625Sdim// 65283625Sdim#define GET_INSTRINFO_ENUM 66283625Sdim#include "BPFGenInstrInfo.inc" 67283625Sdim 68283625Sdim#define GET_SUBTARGETINFO_ENUM 69283625Sdim#include "BPFGenSubtargetInfo.inc" 70283625Sdim 71283625Sdim#endif 72