LLVM 22.0.0git
AArch64TargetObjectFile.h
Go to the documentation of this file.
1//===-- AArch64TargetObjectFile.h - AArch64 Object Info -*- 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-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64TARGETOBJECTFILE_H
10#define LLVM_LIB_TARGET_AARCH64_AARCH64TARGETOBJECTFILE_H
11
15
16namespace llvm {
17
18/// This implementation is used for AArch64 ELF targets (Linux in particular).
20 void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
21
22public:
24 const MCSymbol *Sym,
25 const MCValue &MV, int64_t Offset,
27 MCStreamer &Streamer) const override;
28
30 MachineModuleInfo *MMI, const MCSymbol *RawSym,
32 uint16_t Discriminator) const;
33
34 void emitPersonalityValueImpl(MCStreamer &Streamer, const DataLayout &DL,
35 const MCSymbol *Sym,
36 const MachineModuleInfo *MMI) const override;
37
39 const TargetMachine &TM) const override;
40
42 const TargetMachine &TM) const override;
43};
44
45/// AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin.
47public:
49
51 unsigned Encoding,
52 const TargetMachine &TM,
54 MCStreamer &Streamer) const override;
55
57 const TargetMachine &TM,
58 MachineModuleInfo *MMI) const override;
59
61 const MCSymbol *Sym,
62 const MCValue &MV, int64_t Offset,
64 MCStreamer &Streamer) const override;
65
67 const TargetMachine &TM) const override;
68
70 MachineModuleInfo *MMI, const MCSymbol *RawSym,
72 uint16_t Discriminator) const;
73};
74
75/// This implementation is used for AArch64 COFF targets.
77
78} // end namespace llvm
79
80#endif
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
This implementation is used for AArch64 COFF targets.
This implementation is used for AArch64 ELF targets (Linux in particular).
MCSection * getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override
Targets should implement this method to assign a section to globals with an explicit section specfied...
void emitPersonalityValueImpl(MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym, const MachineModuleInfo *MMI) const override
const MCExpr * getIndirectSymViaGOTPCRel(const GlobalValue *GV, const MCSymbol *Sym, const MCValue &MV, int64_t Offset, MachineModuleInfo *MMI, MCStreamer &Streamer) const override
Get the target specific PC relative GOT entry relocation.
MCSection * SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override
MCSymbol * getAuthPtrSlotSymbol(const TargetMachine &TM, MachineModuleInfo *MMI, const MCSymbol *RawSym, AArch64PACKey::ID Key, uint16_t Discriminator) const
MCSymbol * getAuthPtrSlotSymbol(const TargetMachine &TM, MachineModuleInfo *MMI, const MCSymbol *RawSym, AArch64PACKey::ID Key, uint16_t Discriminator) const
const MCExpr * getIndirectSymViaGOTPCRel(const GlobalValue *GV, const MCSymbol *Sym, const MCValue &MV, int64_t Offset, MachineModuleInfo *MMI, MCStreamer &Streamer) const override
Get the target specific PC relative GOT entry relocation.
void getNameWithPrefix(SmallVectorImpl< char > &OutName, const GlobalValue *GV, const TargetMachine &TM) const override
MCSymbol * getCFIPersonalitySymbol(const GlobalValue *GV, const TargetMachine &TM, MachineModuleInfo *MMI) const override
const MCExpr * getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM, MachineModuleInfo *MMI, MCStreamer &Streamer) const override
Return an MCExpr to use for a reference to the specified global variable from exception handling info...
A parsed version of the target data layout string in and methods for querying it.
Definition DataLayout.h:63
Context object for machine code objects.
Definition MCContext.h:83
Base class for the full range of assembler expressions which are needed for parsing.
Definition MCExpr.h:34
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Definition MCSection.h:496
Streaming machine code generation interface.
Definition MCStreamer.h:220
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition MCSymbol.h:42
This class contains meta information specific to a module.
SectionKind - This is a simple POD value that classifies the properties of a section.
Definition SectionKind.h:22
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Primary interface to the complete machine description for the target machine.
This is an optimization pass for GlobalISel generic memory operations.
@ Offset
Definition DWP.cpp:477
LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key