1 //===-- MSP430MCTargetDesc.h - MSP430 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 // This file provides MSP430 specific target descriptions. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_LIB_TARGET_MSP430_MCTARGETDESC_MSP430MCTARGETDESC_H 14 #define LLVM_LIB_TARGET_MSP430_MCTARGETDESC_MSP430MCTARGETDESC_H 15 16 #include "llvm/Support/DataTypes.h" 17 #include <memory> 18 19 namespace llvm { 20 class Target; 21 class MCAsmBackend; 22 class MCCodeEmitter; 23 class MCInstrInfo; 24 class MCSubtargetInfo; 25 class MCRegisterInfo; 26 class MCContext; 27 class MCTargetOptions; 28 class MCObjectTargetWriter; 29 class MCStreamer; 30 class MCTargetStreamer; 31 32 /// Creates a machine code emitter for MSP430. 33 MCCodeEmitter *createMSP430MCCodeEmitter(const MCInstrInfo &MCII, 34 const MCRegisterInfo &MRI, 35 MCContext &Ctx); 36 37 MCAsmBackend *createMSP430MCAsmBackend(const Target &T, 38 const MCSubtargetInfo &STI, 39 const MCRegisterInfo &MRI, 40 const MCTargetOptions &Options); 41 42 MCTargetStreamer * 43 createMSP430ObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI); 44 45 std::unique_ptr<MCObjectTargetWriter> 46 createMSP430ELFObjectWriter(uint8_t OSABI); 47 48 } // End llvm namespace 49 50 // Defines symbolic names for MSP430 registers. 51 // This defines a mapping from register name to register number. 52 #define GET_REGINFO_ENUM 53 #include "MSP430GenRegisterInfo.inc" 54 55 // Defines symbolic names for the MSP430 instructions. 56 #define GET_INSTRINFO_ENUM 57 #include "MSP430GenInstrInfo.inc" 58 59 #define GET_SUBTARGETINFO_ENUM 60 #include "MSP430GenSubtargetInfo.inc" 61 62 #endif 63