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