LLVM
17.0.0git
lib
Target
Hexagon
MCTargetDesc
HexagonMCELFStreamer.h
Go to the documentation of this file.
1
//===- HexagonMCELFStreamer.h - Hexagon 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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCELFSTREAMER_H
10
#define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCELFSTREAMER_H
11
12
#include "
MCTargetDesc/HexagonMCTargetDesc.h
"
13
#include "
llvm/MC/MCELFStreamer.h
"
14
#include "
llvm/MC/MCInstrInfo.h
"
15
#include <cstdint>
16
#include <memory>
17
18
namespace
llvm
{
19
20
class
HexagonMCELFStreamer
:
public
MCELFStreamer
{
21
std::unique_ptr<MCInstrInfo> MCII;
22
23
public
:
24
HexagonMCELFStreamer
(
MCContext
&
Context
, std::unique_ptr<MCAsmBackend> TAB,
25
std::unique_ptr<MCObjectWriter> OW,
26
std::unique_ptr<MCCodeEmitter>
Emitter
);
27
28
HexagonMCELFStreamer
(
MCContext
&
Context
, std::unique_ptr<MCAsmBackend> TAB,
29
std::unique_ptr<MCObjectWriter> OW,
30
std::unique_ptr<MCCodeEmitter>
Emitter
,
31
MCAssembler
*Assembler);
32
33
void
emitInstruction
(
const
MCInst
&Inst,
const
MCSubtargetInfo
&STI)
override
;
34
void
EmitSymbol
(
const
MCInst
&Inst);
35
void
HexagonMCEmitLocalCommonSymbol
(
MCSymbol
*Symbol,
uint64_t
Size,
36
Align
ByteAlignment
,
unsigned
AccessSize);
37
void
HexagonMCEmitCommonSymbol
(
MCSymbol
*Symbol,
uint64_t
Size,
38
Align
ByteAlignment
,
unsigned
AccessSize);
39
};
40
41
MCStreamer
*
createHexagonELFStreamer
(
Triple
const
&TT,
MCContext
&
Context
,
42
std::unique_ptr<MCAsmBackend> MAB,
43
std::unique_ptr<MCObjectWriter> OW,
44
std::unique_ptr<MCCodeEmitter> CE);
45
46
}
// end namespace llvm
47
48
#endif // LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCELFSTREAMER_H
HexagonMCTargetDesc.h
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition:
MCSymbol.h:41
llvm::HexagonMCELFStreamer::emitInstruction
void emitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI) override
Emit the given Instruction into the current section.
Definition:
HexagonMCELFStreamer.cpp:62
llvm::MCContext
Context object for machine code objects.
Definition:
MCContext.h:76
llvm::Triple
Triple - Helper class for working with autoconf configuration names.
Definition:
Triple.h:44
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition:
MCInst.h:184
MCELFStreamer.h
Context
LLVMContext & Context
Definition:
NVVMIntrRange.cpp:66
llvm::MCStreamer
Streaming machine code generation interface.
Definition:
MCStreamer.h:212
Emitter
dxil DXContainer Global Emitter
Definition:
DXContainerGlobals.cpp:108
llvm::createHexagonELFStreamer
MCStreamer * createHexagonELFStreamer(Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE)
Definition:
HexagonMCELFStreamer.cpp:151
llvm::MCELFStreamer
Definition:
MCELFStreamer.h:31
MCInstrInfo.h
llvm::Align
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition:
Alignment.h:39
llvm::MCAssembler
Definition:
MCAssembler.h:73
uint64_t
llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol
void HexagonMCEmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, Align ByteAlignment, unsigned AccessSize)
Definition:
HexagonMCELFStreamer.cpp:88
llvm::HexagonMCELFStreamer::HexagonMCELFStreamer
HexagonMCELFStreamer(MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter)
Definition:
HexagonMCELFStreamer.cpp:49
llvm::HexagonMCELFStreamer
Definition:
HexagonMCELFStreamer.h:20
llvm::HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol
void HexagonMCEmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size, Align ByteAlignment, unsigned AccessSize)
Definition:
HexagonMCELFStreamer.cpp:139
llvm::LCOMM::ByteAlignment
@ ByteAlignment
Definition:
MCAsmInfo.h:50
llvm::HexagonMCELFStreamer::EmitSymbol
void EmitSymbol(const MCInst &Inst)
Definition:
HexagonMCELFStreamer.cpp:78
llvm::MCSubtargetInfo
Generic base class for all target subtargets.
Definition:
MCSubtargetInfo.h:76
Generated on Sat Jan 28 2023 10:01:48 for LLVM by
1.8.17