brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 8835233 Raw
58 lines · c
1//===--------- AVRMCELFStreamer.h - AVR subclass of MCELFStreamer ---------===//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#ifndef LLVM_LIB_TARGET_AVR_MCTARGETDESC_AVRMCELFSTREAMER_H10#define LLVM_LIB_TARGET_AVR_MCTARGETDESC_AVRMCELFSTREAMER_H11 12#include "MCTargetDesc/AVRMCAsmInfo.h"13#include "MCTargetDesc/AVRMCTargetDesc.h"14#include "llvm/MC/MCAsmBackend.h"15#include "llvm/MC/MCCodeEmitter.h"16#include "llvm/MC/MCELFStreamer.h"17#include "llvm/MC/MCInstrInfo.h"18#include "llvm/MC/MCObjectWriter.h"19 20namespace llvm {21 22const int SIZE_LONG = 4;23const int SIZE_WORD = 2;24 25class AVRMCELFStreamer : public MCELFStreamer {26  std::unique_ptr<MCInstrInfo> MCII;27 28public:29  AVRMCELFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,30                   std::unique_ptr<MCObjectWriter> OW,31                   std::unique_ptr<MCCodeEmitter> Emitter)32      : MCELFStreamer(Context, std::move(TAB), std::move(OW),33                      std::move(Emitter)),34        MCII(createAVRMCInstrInfo()) {}35 36  AVRMCELFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,37                   std::unique_ptr<MCObjectWriter> OW,38                   std::unique_ptr<MCCodeEmitter> Emitter,39                   MCAssembler *Assembler)40      : MCELFStreamer(Context, std::move(TAB), std::move(OW),41                      std::move(Emitter)),42        MCII(createAVRMCInstrInfo()) {}43 44  void45  emitValueForModiferKind(const MCSymbol *Sym, unsigned SizeInBytes,46                          SMLoc Loc = SMLoc(),47                          AVRMCExpr::Specifier ModifierKind = AVR::S_AVR_NONE);48};49 50MCStreamer *createAVRELFStreamer(Triple const &TT, MCContext &Context,51                                 std::unique_ptr<MCAsmBackend> MAB,52                                 std::unique_ptr<MCObjectWriter> OW,53                                 std::unique_ptr<MCCodeEmitter> CE);54 55} // end namespace llvm56 57#endif // LLVM_LIB_TARGET_AVR_MCTARGETDESC_AVRMCELFSTREAMER_H58