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