BPFMCTargetDesc.h revision 284734
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; 28284734Sdimclass StringRef; 29283625Sdimclass Target; 30284734Sdimclass Triple; 31283625Sdimclass raw_ostream; 32283625Sdimclass raw_pwrite_stream; 33283625Sdim 34284236Sdimextern Target TheBPFleTarget; 35284236Sdimextern Target TheBPFbeTarget; 36283625Sdimextern Target TheBPFTarget; 37283625Sdim 38283625SdimMCCodeEmitter *createBPFMCCodeEmitter(const MCInstrInfo &MCII, 39283625Sdim const MCRegisterInfo &MRI, 40283625Sdim MCContext &Ctx); 41284236SdimMCCodeEmitter *createBPFbeMCCodeEmitter(const MCInstrInfo &MCII, 42284236Sdim const MCRegisterInfo &MRI, 43284236Sdim MCContext &Ctx); 44283625Sdim 45283625SdimMCAsmBackend *createBPFAsmBackend(const Target &T, const MCRegisterInfo &MRI, 46284734Sdim const Triple &TT, StringRef CPU); 47284236SdimMCAsmBackend *createBPFbeAsmBackend(const Target &T, const MCRegisterInfo &MRI, 48284734Sdim const Triple &TT, StringRef CPU); 49283625Sdim 50284236SdimMCObjectWriter *createBPFELFObjectWriter(raw_pwrite_stream &OS, 51284236Sdim uint8_t OSABI, bool IsLittleEndian); 52284734Sdim} // namespace llvm 53283625Sdim 54283625Sdim// Defines symbolic names for BPF registers. This defines a mapping from 55283625Sdim// register name to register number. 56283625Sdim// 57283625Sdim#define GET_REGINFO_ENUM 58283625Sdim#include "BPFGenRegisterInfo.inc" 59283625Sdim 60283625Sdim// Defines symbolic names for the BPF instructions. 61283625Sdim// 62283625Sdim#define GET_INSTRINFO_ENUM 63283625Sdim#include "BPFGenInstrInfo.inc" 64283625Sdim 65283625Sdim#define GET_SUBTARGETINFO_ENUM 66283625Sdim#include "BPFGenSubtargetInfo.inc" 67283625Sdim 68283625Sdim#endif 69