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 MCContext &Ctx); 42 43 /// Construct an M68k ELF object writer. 44 std::unique_ptr<MCObjectTargetWriter> createM68kELFObjectWriter(uint8_t OSABI); 45 46 } // namespace llvm 47 48 // Defines symbolic names for M68k registers. This defines a mapping from 49 // register name to register number. 50 #define GET_REGINFO_ENUM 51 #include "M68kGenRegisterInfo.inc" 52 53 // Defines symbolic names for the M68k instructions. 54 #define GET_INSTRINFO_ENUM 55 #define GET_INSTRINFO_MC_HELPER_DECLS 56 #include "M68kGenInstrInfo.inc" 57 58 #define GET_SUBTARGETINFO_ENUM 59 #include "M68kGenSubtargetInfo.inc" 60 61 #endif // LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H 62