59 lines · c
1//===-- AVRMCTargetDesc.h - AVR 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// This file provides AVR specific target descriptions.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_AVR_MCTARGET_DESC_H14#define LLVM_AVR_MCTARGET_DESC_H15 16#include "llvm/Support/DataTypes.h"17 18#include <memory>19 20namespace llvm {21 22class MCAsmBackend;23class MCCodeEmitter;24class MCContext;25class MCInstrInfo;26class MCObjectTargetWriter;27class MCRegisterInfo;28class MCSubtargetInfo;29class MCTargetOptions;30class Target;31 32MCInstrInfo *createAVRMCInstrInfo();33 34/// Creates a machine code emitter for AVR.35MCCodeEmitter *createAVRMCCodeEmitter(const MCInstrInfo &MCII,36 MCContext &Ctx);37 38/// Creates an assembly backend for AVR.39MCAsmBackend *createAVRAsmBackend(const Target &T, const MCSubtargetInfo &STI,40 const MCRegisterInfo &MRI,41 const llvm::MCTargetOptions &TO);42 43/// Creates an ELF object writer for AVR.44std::unique_ptr<MCObjectTargetWriter> createAVRELFObjectWriter(uint8_t OSABI);45 46} // end namespace llvm47 48#define GET_REGINFO_ENUM49#include "AVRGenRegisterInfo.inc"50 51#define GET_INSTRINFO_ENUM52#define GET_INSTRINFO_MC_HELPER_DECLS53#include "AVRGenInstrInfo.inc"54 55#define GET_SUBTARGETINFO_ENUM56#include "AVRGenSubtargetInfo.inc"57 58#endif // LLVM_AVR_MCTARGET_DESC_H59