1 //===-- BPFMCTargetDesc.h - BPF Target Descriptions -------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file provides BPF specific target descriptions. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_LIB_TARGET_BPF_MCTARGETDESC_BPFMCTARGETDESC_H 15 #define LLVM_LIB_TARGET_BPF_MCTARGETDESC_BPFMCTARGETDESC_H 16 17 #include "llvm/Config/config.h" 18 #include "llvm/Support/DataTypes.h" 19 20 #include <memory> 21 22 namespace llvm { 23 class MCAsmBackend; 24 class MCCodeEmitter; 25 class MCContext; 26 class MCInstrInfo; 27 class MCObjectTargetWriter; 28 class MCRegisterInfo; 29 class MCSubtargetInfo; 30 class MCTargetOptions; 31 class StringRef; 32 class Target; 33 class Triple; 34 class raw_ostream; 35 class raw_pwrite_stream; 36 37 Target &getTheBPFleTarget(); 38 Target &getTheBPFbeTarget(); 39 Target &getTheBPFTarget(); 40 41 MCCodeEmitter *createBPFMCCodeEmitter(const MCInstrInfo &MCII, 42 const MCRegisterInfo &MRI, 43 MCContext &Ctx); 44 MCCodeEmitter *createBPFbeMCCodeEmitter(const MCInstrInfo &MCII, 45 const MCRegisterInfo &MRI, 46 MCContext &Ctx); 47 48 MCAsmBackend *createBPFAsmBackend(const Target &T, const MCSubtargetInfo &STI, 49 const MCRegisterInfo &MRI, 50 const MCTargetOptions &Options); 51 MCAsmBackend *createBPFbeAsmBackend(const Target &T, const MCSubtargetInfo &STI, 52 const MCRegisterInfo &MRI, 53 const MCTargetOptions &Options); 54 55 std::unique_ptr<MCObjectTargetWriter> createBPFELFObjectWriter(uint8_t OSABI); 56 } 57 58 // Defines symbolic names for BPF registers. This defines a mapping from 59 // register name to register number. 60 // 61 #define GET_REGINFO_ENUM 62 #include "BPFGenRegisterInfo.inc" 63 64 // Defines symbolic names for the BPF instructions. 65 // 66 #define GET_INSTRINFO_ENUM 67 #include "BPFGenInstrInfo.inc" 68 69 #define GET_SUBTARGETINFO_ENUM 70 #include "BPFGenSubtargetInfo.inc" 71 72 #endif 73