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