1303231Sdim//===-- LanaiMCTargetDesc.h - Lanai Target Descriptions ---------*- C++ -*-===// 2303231Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6303231Sdim// 7303231Sdim//===----------------------------------------------------------------------===// 8303231Sdim// 9303231Sdim// This file provides Lanai specific target descriptions. 10303231Sdim// 11303231Sdim//===----------------------------------------------------------------------===// 12303231Sdim 13303231Sdim#ifndef LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIMCTARGETDESC_H 14303231Sdim#define LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIMCTARGETDESC_H 15303231Sdim 16303231Sdim#include "llvm/MC/MCRegisterInfo.h" 17314564Sdim#include "llvm/MC/MCTargetOptions.h" 18303231Sdim#include "llvm/Support/DataTypes.h" 19303231Sdim 20303231Sdimnamespace llvm { 21303231Sdimclass MCAsmBackend; 22303231Sdimclass MCCodeEmitter; 23303231Sdimclass MCContext; 24303231Sdimclass MCInstrInfo; 25303231Sdimclass MCInstrAnalysis; 26341825Sdimclass MCObjectTargetWriter; 27303231Sdimclass MCRelocationInfo; 28303231Sdimclass MCSubtargetInfo; 29303231Sdimclass Target; 30303231Sdimclass Triple; 31303231Sdimclass StringRef; 32303231Sdimclass raw_pwrite_stream; 33303231Sdim 34303231SdimMCCodeEmitter *createLanaiMCCodeEmitter(const MCInstrInfo &MCII, 35303231Sdim const MCRegisterInfo &MRI, 36303231Sdim MCContext &Ctx); 37303231Sdim 38327952SdimMCAsmBackend *createLanaiAsmBackend(const Target &T, const MCSubtargetInfo &STI, 39327952Sdim const MCRegisterInfo &MRI, 40314564Sdim const MCTargetOptions &Options); 41303231Sdim 42341825Sdimstd::unique_ptr<MCObjectTargetWriter> createLanaiELFObjectWriter(uint8_t OSABI); 43303231Sdim} // namespace llvm 44303231Sdim 45303231Sdim// Defines symbolic names for Lanai registers. This defines a mapping from 46303231Sdim// register name to register number. 47303231Sdim#define GET_REGINFO_ENUM 48303231Sdim#include "LanaiGenRegisterInfo.inc" 49303231Sdim 50303231Sdim// Defines symbolic names for the Lanai instructions. 51303231Sdim#define GET_INSTRINFO_ENUM 52303231Sdim#include "LanaiGenInstrInfo.inc" 53303231Sdim 54303231Sdim#define GET_SUBTARGETINFO_ENUM 55303231Sdim#include "LanaiGenSubtargetInfo.inc" 56303231Sdim 57303231Sdim#endif // LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIMCTARGETDESC_H 58