62 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8///9/// \file10/// This file provides M68k specific target descriptions.11///12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H15#define LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H16 17#include "llvm/MC/MCInstrDesc.h"18#include "llvm/MC/MCObjectWriter.h"19#include "llvm/Support/DataTypes.h"20 21namespace llvm {22class MCAsmBackend;23class MCCodeEmitter;24class MCContext;25class MCInstrInfo;26class MCRegisterInfo;27class MCSubtargetInfo;28class MCRelocationInfo;29class MCTargetOptions;30class Target;31class Triple;32class StringRef;33class raw_ostream;34class raw_pwrite_stream;35 36MCAsmBackend *createM68kAsmBackend(const Target &T, const MCSubtargetInfo &STI,37 const MCRegisterInfo &MRI,38 const MCTargetOptions &Options);39 40MCCodeEmitter *createM68kMCCodeEmitter(const MCInstrInfo &MCII,41 MCContext &Ctx);42 43/// Construct an M68k ELF object writer.44std::unique_ptr<MCObjectTargetWriter> createM68kELFObjectWriter(uint8_t OSABI);45 46} // namespace llvm47 48// Defines symbolic names for M68k registers. This defines a mapping from49// register name to register number.50#define GET_REGINFO_ENUM51#include "M68kGenRegisterInfo.inc"52 53// Defines symbolic names for the M68k instructions.54#define GET_INSTRINFO_ENUM55#define GET_INSTRINFO_MC_HELPER_DECLS56#include "M68kGenInstrInfo.inc"57 58#define GET_SUBTARGETINFO_ENUM59#include "M68kGenSubtargetInfo.inc"60 61#endif // LLVM_LIB_TARGET_M68K_MCTARGETDESC_M68KMCTARGETDESC_H62