1480093f4SDimitry Andric //===-- VEMCTargetDesc.h - VE Target Descriptions ---------------*- C++ -*-===// 2480093f4SDimitry Andric // 3480093f4SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4480093f4SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5480093f4SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6480093f4SDimitry Andric // 7480093f4SDimitry Andric //===----------------------------------------------------------------------===// 8480093f4SDimitry Andric // 9480093f4SDimitry Andric // This file provides VE specific target descriptions. 10480093f4SDimitry Andric // 11480093f4SDimitry Andric //===----------------------------------------------------------------------===// 12480093f4SDimitry Andric 13480093f4SDimitry Andric #ifndef LLVM_LIB_TARGET_VE_MCTARGETDESC_VEMCTARGETDESC_H 14480093f4SDimitry Andric #define LLVM_LIB_TARGET_VE_MCTARGETDESC_VEMCTARGETDESC_H 15480093f4SDimitry Andric 16480093f4SDimitry Andric #include "llvm/Support/DataTypes.h" 17480093f4SDimitry Andric 18480093f4SDimitry Andric #include <memory> 19480093f4SDimitry Andric 20480093f4SDimitry Andric namespace llvm { 21480093f4SDimitry Andric class MCAsmBackend; 22480093f4SDimitry Andric class MCCodeEmitter; 23480093f4SDimitry Andric class MCContext; 24480093f4SDimitry Andric class MCInstrInfo; 255ffd83dbSDimitry Andric class MCObjectTargetWriter; 26480093f4SDimitry Andric class MCRegisterInfo; 27480093f4SDimitry Andric class MCSubtargetInfo; 28480093f4SDimitry Andric class MCTargetOptions; 29480093f4SDimitry Andric class Target; 30480093f4SDimitry Andric 3181ad6265SDimitry Andric MCCodeEmitter *createVEMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx); 325ffd83dbSDimitry Andric MCAsmBackend *createVEAsmBackend(const Target &T, const MCSubtargetInfo &STI, 335ffd83dbSDimitry Andric const MCRegisterInfo &MRI, 345ffd83dbSDimitry Andric const MCTargetOptions &Options); 355ffd83dbSDimitry Andric std::unique_ptr<MCObjectTargetWriter> createVEELFObjectWriter(uint8_t OSABI); 36480093f4SDimitry Andric } // namespace llvm 37480093f4SDimitry Andric 38480093f4SDimitry Andric // Defines symbolic names for VE registers. This defines a mapping from 39480093f4SDimitry Andric // register name to register number. 40480093f4SDimitry Andric // 41480093f4SDimitry Andric #define GET_REGINFO_ENUM 42480093f4SDimitry Andric #include "VEGenRegisterInfo.inc" 43480093f4SDimitry Andric 44480093f4SDimitry Andric // Defines symbolic names for the VE instructions. 45480093f4SDimitry Andric // 46480093f4SDimitry Andric #define GET_INSTRINFO_ENUM 47*753f127fSDimitry Andric #define GET_INSTRINFO_MC_HELPER_DECLS 48480093f4SDimitry Andric #include "VEGenInstrInfo.inc" 49480093f4SDimitry Andric 50480093f4SDimitry Andric #define GET_SUBTARGETINFO_ENUM 51480093f4SDimitry Andric #include "VEGenSubtargetInfo.inc" 52480093f4SDimitry Andric 53480093f4SDimitry Andric #endif 54