Home | History | Annotate | Download | only in MCTargetDesc
      1 //===-- AVRMCTargetDesc.h - AVR Target Descriptions -------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This file provides AVR specific target descriptions.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #ifndef LLVM_AVR_MCTARGET_DESC_H
     15 #define LLVM_AVR_MCTARGET_DESC_H
     16 
     17 #include "llvm/Support/DataTypes.h"
     18 
     19 #include <memory>
     20 
     21 namespace llvm {
     22 
     23 class MCAsmBackend;
     24 class MCCodeEmitter;
     25 class MCContext;
     26 class MCInstrInfo;
     27 class MCObjectTargetWriter;
     28 class MCRegisterInfo;
     29 class MCSubtargetInfo;
     30 class MCTargetOptions;
     31 class StringRef;
     32 class Target;
     33 class Triple;
     34 class raw_pwrite_stream;
     35 
     36 Target &getTheAVRTarget();
     37 
     38 MCInstrInfo *createAVRMCInstrInfo();
     39 
     40 /// Creates a machine code emitter for AVR.
     41 MCCodeEmitter *createAVRMCCodeEmitter(const MCInstrInfo &MCII,
     42                                       const MCRegisterInfo &MRI,
     43                                       MCContext &Ctx);
     44 
     45 /// Creates an assembly backend for AVR.
     46 MCAsmBackend *createAVRAsmBackend(const Target &T, const MCSubtargetInfo &STI,
     47                                   const MCRegisterInfo &MRI,
     48                                   const llvm::MCTargetOptions &TO);
     49 
     50 /// Creates an ELF object writer for AVR.
     51 std::unique_ptr<MCObjectTargetWriter> createAVRELFObjectWriter(uint8_t OSABI);
     52 
     53 } // end namespace llvm
     54 
     55 #define GET_REGINFO_ENUM
     56 #include "AVRGenRegisterInfo.inc"
     57 
     58 #define GET_INSTRINFO_ENUM
     59 #include "AVRGenInstrInfo.inc"
     60 
     61 #define GET_SUBTARGETINFO_ENUM
     62 #include "AVRGenSubtargetInfo.inc"
     63 
     64 #endif // LLVM_AVR_MCTARGET_DESC_H
     65