Path: blob/main/contrib/llvm-project/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
35294 views
//===-- SparcMCTargetDesc.h - Sparc Target Descriptions ---------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file provides Sparc specific target descriptions.9//10//===----------------------------------------------------------------------===//1112#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H13#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H1415#include "llvm/ADT/StringRef.h"16#include "llvm/Support/DataTypes.h"1718#include <memory>1920namespace llvm {21class MCAsmBackend;22class MCCodeEmitter;23class MCContext;24class MCInstrInfo;25class MCObjectTargetWriter;26class MCRegisterInfo;27class MCSubtargetInfo;28class MCTargetOptions;29class Target;3031MCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII,32MCContext &Ctx);33MCAsmBackend *createSparcAsmBackend(const Target &T, const MCSubtargetInfo &STI,34const MCRegisterInfo &MRI,35const MCTargetOptions &Options);36std::unique_ptr<MCObjectTargetWriter>37createSparcELFObjectWriter(bool Is64Bit, bool HasV9, uint8_t OSABI);3839// Defines symbolic names for Sparc v9 ASI tag names.40namespace SparcASITag {41struct ASITag {42const char *Name;43const char *AltName;44unsigned Encoding;45};4647#define GET_ASITagsList_DECL48#include "SparcGenSearchableTables.inc"49} // end namespace SparcASITag5051// Defines symbolic names for Sparc v9 prefetch tag names.52namespace SparcPrefetchTag {53struct PrefetchTag {54const char *Name;55unsigned Encoding;56};5758#define GET_PrefetchTagsList_DECL59#include "SparcGenSearchableTables.inc"60} // end namespace SparcPrefetchTag61} // End llvm namespace6263// Defines symbolic names for Sparc registers. This defines a mapping from64// register name to register number.65//66#define GET_REGINFO_ENUM67#include "SparcGenRegisterInfo.inc"6869// Defines symbolic names for the Sparc instructions.70//71#define GET_INSTRINFO_ENUM72#define GET_INSTRINFO_MC_HELPER_DECLS73#include "SparcGenInstrInfo.inc"7475#define GET_SUBTARGETINFO_ENUM76#include "SparcGenSubtargetInfo.inc"7778#endif798081