xref: /freebsd/contrib/llvm-project/llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.h (revision 753f127f3ace09432b2baeffd71a308760641a62)
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