Path: blob/main/contrib/llvm-project/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.h
35294 views
//===- LoongArchMCTargetDesc.h - LoongArch 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 LoongArch specific target descriptions.9//10//===----------------------------------------------------------------------===//1112#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCTARGETDESC_H13#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCTARGETDESC_H1415#include "llvm/MC/MCTargetOptions.h"16#include "llvm/Support/DataTypes.h"17#include <memory>1819namespace llvm {20class MCAsmBackend;21class MCCodeEmitter;22class MCContext;23class MCInstrInfo;24class MCObjectTargetWriter;25class MCRegisterInfo;26class MCSubtargetInfo;27class Target;2829MCCodeEmitter *createLoongArchMCCodeEmitter(const MCInstrInfo &MCII,30MCContext &Ctx);3132MCAsmBackend *createLoongArchAsmBackend(const Target &T,33const MCSubtargetInfo &STI,34const MCRegisterInfo &MRI,35const MCTargetOptions &Options);3637std::unique_ptr<MCObjectTargetWriter>38createLoongArchELFObjectWriter(uint8_t OSABI, bool Is64Bit, bool Relax);3940} // end namespace llvm4142// Defines symbolic names for LoongArch registers.43#define GET_REGINFO_ENUM44#include "LoongArchGenRegisterInfo.inc"4546// Defines symbolic names for LoongArch instructions.47#define GET_INSTRINFO_ENUM48#define GET_INSTRINFO_MC_HELPER_DECLS49#include "LoongArchGenInstrInfo.inc"5051#define GET_SUBTARGETINFO_ENUM52#include "LoongArchGenSubtargetInfo.inc"5354#endif // LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCTARGETDESC_H555657