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