1 //===-- LanaiMCTargetDesc.h - Lanai 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 Lanai specific target descriptions. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIMCTARGETDESC_H 15 #define LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIMCTARGETDESC_H 16 17 #include "llvm/MC/MCRegisterInfo.h" 18 #include "llvm/Support/DataTypes.h" 19 20 namespace llvm { 21 class MCAsmBackend; 22 class MCCodeEmitter; 23 class MCContext; 24 class MCInstrInfo; 25 class MCInstrAnalysis; 26 class MCObjectWriter; 27 class MCRelocationInfo; 28 class MCSubtargetInfo; 29 class Target; 30 class Triple; 31 class StringRef; 32 class raw_pwrite_stream; 33 34 extern Target TheLanaiTarget; 35 36 MCCodeEmitter *createLanaiMCCodeEmitter(const MCInstrInfo &MCII, 37 const MCRegisterInfo &MRI, 38 MCContext &Ctx); 39 40 MCAsmBackend *createLanaiAsmBackend(const Target &T, const MCRegisterInfo &MRI, 41 const Triple &TheTriple, StringRef CPU); 42 43 MCObjectWriter *createLanaiELFObjectWriter(raw_pwrite_stream &OS, 44 uint8_t OSABI); 45 } // namespace llvm 46 47 // Defines symbolic names for Lanai registers. This defines a mapping from 48 // register name to register number. 49 #define GET_REGINFO_ENUM 50 #include "LanaiGenRegisterInfo.inc" 51 52 // Defines symbolic names for the Lanai instructions. 53 #define GET_INSTRINFO_ENUM 54 #include "LanaiGenInstrInfo.inc" 55 56 #define GET_SUBTARGETINFO_ENUM 57 #include "LanaiGenSubtargetInfo.inc" 58 59 #endif // LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIMCTARGETDESC_H 60