104eeddc0SDimitry Andric //===-- M68kMCTargetDesc.h - M68k Target Descriptions -----------*- C++ -*-===// 2fe6060f1SDimitry Andric // 3fe6060f1SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4fe6060f1SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5fe6060f1SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6fe6060f1SDimitry Andric // 7fe6060f1SDimitry Andric //===----------------------------------------------------------------------===// 8fe6060f1SDimitry Andric /// 9fe6060f1SDimitry Andric /// \file 10fe6060f1SDimitry Andric /// This file provides M68k specific target descriptions. 11fe6060f1SDimitry Andric /// 12fe6060f1SDimitry Andric //===----------------------------------------------------------------------===// 13fe6060f1SDimitry Andric 14fe6060f1SDimitry Andric #ifndef LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H 15fe6060f1SDimitry Andric #define LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H 16fe6060f1SDimitry Andric 17fe6060f1SDimitry Andric #include "llvm/MC/MCInstrDesc.h" 18fe6060f1SDimitry Andric #include "llvm/MC/MCObjectWriter.h" 19fe6060f1SDimitry Andric #include "llvm/Support/DataTypes.h" 20fe6060f1SDimitry Andric 21fe6060f1SDimitry Andric namespace llvm { 22fe6060f1SDimitry Andric class MCAsmBackend; 23fe6060f1SDimitry Andric class MCCodeEmitter; 24fe6060f1SDimitry Andric class MCContext; 25fe6060f1SDimitry Andric class MCInstrInfo; 26fe6060f1SDimitry Andric class MCRegisterInfo; 27fe6060f1SDimitry Andric class MCSubtargetInfo; 28fe6060f1SDimitry Andric class MCRelocationInfo; 29fe6060f1SDimitry Andric class MCTargetOptions; 30fe6060f1SDimitry Andric class Target; 31fe6060f1SDimitry Andric class Triple; 32fe6060f1SDimitry Andric class StringRef; 33fe6060f1SDimitry Andric class raw_ostream; 34fe6060f1SDimitry Andric class raw_pwrite_stream; 35fe6060f1SDimitry Andric 36fe6060f1SDimitry Andric MCAsmBackend *createM68kAsmBackend(const Target &T, const MCSubtargetInfo &STI, 37fe6060f1SDimitry Andric const MCRegisterInfo &MRI, 38fe6060f1SDimitry Andric const MCTargetOptions &Options); 39fe6060f1SDimitry Andric 40fe6060f1SDimitry Andric MCCodeEmitter *createM68kMCCodeEmitter(const MCInstrInfo &MCII, 41fe6060f1SDimitry Andric MCContext &Ctx); 42fe6060f1SDimitry Andric 43fe6060f1SDimitry Andric /// Construct an M68k ELF object writer. 44fe6060f1SDimitry Andric std::unique_ptr<MCObjectTargetWriter> createM68kELFObjectWriter(uint8_t OSABI); 45fe6060f1SDimitry Andric 46fe6060f1SDimitry Andric } // namespace llvm 47fe6060f1SDimitry Andric 48fe6060f1SDimitry Andric // Defines symbolic names for M68k registers. This defines a mapping from 49fe6060f1SDimitry Andric // register name to register number. 50fe6060f1SDimitry Andric #define GET_REGINFO_ENUM 51fe6060f1SDimitry Andric #include "M68kGenRegisterInfo.inc" 52fe6060f1SDimitry Andric 53fe6060f1SDimitry Andric // Defines symbolic names for the M68k instructions. 54fe6060f1SDimitry Andric #define GET_INSTRINFO_ENUM 55*753f127fSDimitry Andric #define GET_INSTRINFO_MC_HELPER_DECLS 56fe6060f1SDimitry Andric #include "M68kGenInstrInfo.inc" 57fe6060f1SDimitry Andric 58fe6060f1SDimitry Andric #define GET_SUBTARGETINFO_ENUM 59fe6060f1SDimitry Andric #include "M68kGenSubtargetInfo.inc" 60fe6060f1SDimitry Andric 6104eeddc0SDimitry Andric #endif // LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H 62