brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · b523366 Raw
81 lines · c
1//===-- SparcMCTargetDesc.h - Sparc Target Descriptions ---------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file provides Sparc specific target descriptions.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H14#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H15 16#include "llvm/ADT/StringRef.h"17#include "llvm/Support/DataTypes.h"18 19#include <memory>20 21namespace llvm {22class MCAsmBackend;23class MCCodeEmitter;24class MCContext;25class MCInstrInfo;26class MCObjectTargetWriter;27class MCRegisterInfo;28class MCSubtargetInfo;29class MCTargetOptions;30class Target;31class Triple;32 33MCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII,34                                        MCContext &Ctx);35MCAsmBackend *createSparcAsmBackend(const Target &T, const MCSubtargetInfo &STI,36                                    const MCRegisterInfo &MRI,37                                    const MCTargetOptions &Options);38std::unique_ptr<MCObjectTargetWriter>39createSparcELFObjectWriter(bool Is64Bit, bool IsV8Plus, uint8_t OSABI);40 41// Defines symbolic names for Sparc v9 ASI tag names.42namespace SparcASITag {43struct ASITag {44  const char *Name;45  const char *AltName;46  unsigned Encoding;47};48 49#define GET_ASITagsList_DECL50#include "SparcGenSearchableTables.inc"51} // end namespace SparcASITag52 53// Defines symbolic names for Sparc v9 prefetch tag names.54namespace SparcPrefetchTag {55struct PrefetchTag {56  const char *Name;57  unsigned Encoding;58};59 60#define GET_PrefetchTagsList_DECL61#include "SparcGenSearchableTables.inc"62} // end namespace SparcPrefetchTag63} // End llvm namespace64 65// Defines symbolic names for Sparc registers.  This defines a mapping from66// register name to register number.67//68#define GET_REGINFO_ENUM69#include "SparcGenRegisterInfo.inc"70 71// Defines symbolic names for the Sparc instructions.72//73#define GET_INSTRINFO_ENUM74#define GET_INSTRINFO_MC_HELPER_DECLS75#include "SparcGenInstrInfo.inc"76 77#define GET_SUBTARGETINFO_ENUM78#include "SparcGenSubtargetInfo.inc"79 80#endif81