1224133Sdim//===-- SparcMCTargetDesc.h - Sparc Target Descriptions ---------*- C++ -*-===// 2224133Sdim// 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 6224133Sdim// 7224133Sdim//===----------------------------------------------------------------------===// 8224133Sdim// 9224133Sdim// This file provides Sparc specific target descriptions. 10224133Sdim// 11224133Sdim//===----------------------------------------------------------------------===// 12224133Sdim 13280031Sdim#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H 14280031Sdim#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H 15224133Sdim 16262613Sdim#include "llvm/Support/DataTypes.h" 17262613Sdim 18327952Sdim#include <memory> 19327952Sdim 20224133Sdimnamespace llvm { 21262613Sdimclass MCAsmBackend; 22262613Sdimclass MCCodeEmitter; 23262613Sdimclass MCContext; 24262613Sdimclass MCInstrInfo; 25341825Sdimclass MCObjectTargetWriter; 26262613Sdimclass MCRegisterInfo; 27262613Sdimclass MCSubtargetInfo; 28314564Sdimclass MCTargetOptions; 29224133Sdimclass Target; 30288943Sdimclass Triple; 31262613Sdimclass StringRef; 32288943Sdimclass raw_pwrite_stream; 33262613Sdimclass raw_ostream; 34224133Sdim 35262613SdimMCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII, 36262613Sdim const MCRegisterInfo &MRI, 37262613Sdim MCContext &Ctx); 38327952SdimMCAsmBackend *createSparcAsmBackend(const Target &T, const MCSubtargetInfo &STI, 39327952Sdim const MCRegisterInfo &MRI, 40314564Sdim const MCTargetOptions &Options); 41341825Sdimstd::unique_ptr<MCObjectTargetWriter> createSparcELFObjectWriter(bool Is64Bit, 42341825Sdim uint8_t OSABI); 43224133Sdim} // End llvm namespace 44224133Sdim 45224133Sdim// Defines symbolic names for Sparc registers. This defines a mapping from 46224133Sdim// register name to register number. 47224133Sdim// 48224133Sdim#define GET_REGINFO_ENUM 49224133Sdim#include "SparcGenRegisterInfo.inc" 50224133Sdim 51224133Sdim// Defines symbolic names for the Sparc instructions. 52224133Sdim// 53224133Sdim#define GET_INSTRINFO_ENUM 54224133Sdim#include "SparcGenInstrInfo.inc" 55224133Sdim 56224133Sdim#define GET_SUBTARGETINFO_ENUM 57224133Sdim#include "SparcGenSubtargetInfo.inc" 58224133Sdim 59224133Sdim#endif 60