1*7330f729Sjoerg //===-- MSP430MCTargetDesc.h - MSP430 Target Descriptions -------*- C++ -*-===// 2*7330f729Sjoerg // 3*7330f729Sjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*7330f729Sjoerg // See https://llvm.org/LICENSE.txt for license information. 5*7330f729Sjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*7330f729Sjoerg // 7*7330f729Sjoerg //===----------------------------------------------------------------------===// 8*7330f729Sjoerg // 9*7330f729Sjoerg // This file provides MSP430 specific target descriptions. 10*7330f729Sjoerg // 11*7330f729Sjoerg //===----------------------------------------------------------------------===// 12*7330f729Sjoerg 13*7330f729Sjoerg #ifndef LLVM_LIB_TARGET_MSP430_MCTARGETDESC_MSP430MCTARGETDESC_H 14*7330f729Sjoerg #define LLVM_LIB_TARGET_MSP430_MCTARGETDESC_MSP430MCTARGETDESC_H 15*7330f729Sjoerg 16*7330f729Sjoerg #include "llvm/Support/DataTypes.h" 17*7330f729Sjoerg #include <memory> 18*7330f729Sjoerg 19*7330f729Sjoerg namespace llvm { 20*7330f729Sjoerg class Target; 21*7330f729Sjoerg class MCAsmBackend; 22*7330f729Sjoerg class MCCodeEmitter; 23*7330f729Sjoerg class MCInstrInfo; 24*7330f729Sjoerg class MCSubtargetInfo; 25*7330f729Sjoerg class MCRegisterInfo; 26*7330f729Sjoerg class MCContext; 27*7330f729Sjoerg class MCTargetOptions; 28*7330f729Sjoerg class MCObjectTargetWriter; 29*7330f729Sjoerg class MCStreamer; 30*7330f729Sjoerg class MCTargetStreamer; 31*7330f729Sjoerg 32*7330f729Sjoerg /// Creates a machine code emitter for MSP430. 33*7330f729Sjoerg MCCodeEmitter *createMSP430MCCodeEmitter(const MCInstrInfo &MCII, 34*7330f729Sjoerg const MCRegisterInfo &MRI, 35*7330f729Sjoerg MCContext &Ctx); 36*7330f729Sjoerg 37*7330f729Sjoerg MCAsmBackend *createMSP430MCAsmBackend(const Target &T, 38*7330f729Sjoerg const MCSubtargetInfo &STI, 39*7330f729Sjoerg const MCRegisterInfo &MRI, 40*7330f729Sjoerg const MCTargetOptions &Options); 41*7330f729Sjoerg 42*7330f729Sjoerg MCTargetStreamer * 43*7330f729Sjoerg createMSP430ObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI); 44*7330f729Sjoerg 45*7330f729Sjoerg std::unique_ptr<MCObjectTargetWriter> 46*7330f729Sjoerg createMSP430ELFObjectWriter(uint8_t OSABI); 47*7330f729Sjoerg 48*7330f729Sjoerg } // End llvm namespace 49*7330f729Sjoerg 50*7330f729Sjoerg // Defines symbolic names for MSP430 registers. 51*7330f729Sjoerg // This defines a mapping from register name to register number. 52*7330f729Sjoerg #define GET_REGINFO_ENUM 53*7330f729Sjoerg #include "MSP430GenRegisterInfo.inc" 54*7330f729Sjoerg 55*7330f729Sjoerg // Defines symbolic names for the MSP430 instructions. 56*7330f729Sjoerg #define GET_INSTRINFO_ENUM 57*7330f729Sjoerg #include "MSP430GenInstrInfo.inc" 58*7330f729Sjoerg 59*7330f729Sjoerg #define GET_SUBTARGETINFO_ENUM 60*7330f729Sjoerg #include "MSP430GenSubtargetInfo.inc" 61*7330f729Sjoerg 62*7330f729Sjoerg #endif 63