1e8d8bef9SDimitry Andric //===-- CSKYMCTargetDesc.h - CSKY Target Descriptions -----------*- C++ -*-===// 2e8d8bef9SDimitry Andric // 3e8d8bef9SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e8d8bef9SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5e8d8bef9SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e8d8bef9SDimitry Andric // 7e8d8bef9SDimitry Andric //===----------------------------------------------------------------------===// 8e8d8bef9SDimitry Andric // 9e8d8bef9SDimitry Andric // This file provides CSKY specific target descriptions. 10e8d8bef9SDimitry Andric // 11e8d8bef9SDimitry Andric //===----------------------------------------------------------------------===// 12e8d8bef9SDimitry Andric 13e8d8bef9SDimitry Andric #ifndef LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCTARGETDESC_H 14e8d8bef9SDimitry Andric #define LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCTARGETDESC_H 15e8d8bef9SDimitry Andric 16e8d8bef9SDimitry Andric #include "llvm/MC/MCTargetOptions.h" 17e8d8bef9SDimitry Andric #include <memory> 18e8d8bef9SDimitry Andric 19e8d8bef9SDimitry Andric namespace llvm { 20e8d8bef9SDimitry Andric class MCAsmBackend; 21e8d8bef9SDimitry Andric class MCCodeEmitter; 22e8d8bef9SDimitry Andric class MCContext; 23e8d8bef9SDimitry Andric class MCInstrInfo; 24e8d8bef9SDimitry Andric class MCRegisterInfo; 25e8d8bef9SDimitry Andric class MCObjectTargetWriter; 26e8d8bef9SDimitry Andric class MCRegisterInfo; 27e8d8bef9SDimitry Andric class MCSubtargetInfo; 28e8d8bef9SDimitry Andric class Target; 29e8d8bef9SDimitry Andric class Triple; 30e8d8bef9SDimitry Andric 31e8d8bef9SDimitry Andric std::unique_ptr<MCObjectTargetWriter> createCSKYELFObjectWriter(); 32e8d8bef9SDimitry Andric 33e8d8bef9SDimitry Andric MCAsmBackend *createCSKYAsmBackend(const Target &T, const MCSubtargetInfo &STI, 34e8d8bef9SDimitry Andric const MCRegisterInfo &MRI, 35e8d8bef9SDimitry Andric const MCTargetOptions &Options); 36e8d8bef9SDimitry Andric 3781ad6265SDimitry Andric MCCodeEmitter *createCSKYMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx); 38e8d8bef9SDimitry Andric } // namespace llvm 39e8d8bef9SDimitry Andric 40e8d8bef9SDimitry Andric #define GET_REGINFO_ENUM 41e8d8bef9SDimitry Andric #include "CSKYGenRegisterInfo.inc" 42e8d8bef9SDimitry Andric 43e8d8bef9SDimitry Andric #define GET_INSTRINFO_ENUM 44*753f127fSDimitry Andric #define GET_INSTRINFO_MC_HELPER_DECLS 45e8d8bef9SDimitry Andric #include "CSKYGenInstrInfo.inc" 46e8d8bef9SDimitry Andric 47349cc55cSDimitry Andric #define GET_SUBTARGETINFO_ENUM 48349cc55cSDimitry Andric #include "CSKYGenSubtargetInfo.inc" 49349cc55cSDimitry Andric 50e8d8bef9SDimitry Andric #endif // LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCTARGETDESC_H 51