LLVM 20.0.0git
|
#include "MCTargetDesc/X86FixupKinds.h"
#include "MCTargetDesc/X86MCTargetDesc.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCFixup.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstdint>
Go to the source code of this file.
Enumerations | |
enum | X86_64RelType { RT64_NONE , RT64_64 , RT64_32 , RT64_32S , RT64_16 , RT64_8 } |
enum | X86_32RelType { RT32_NONE , RT32_32 , RT32_16 , RT32_8 } |
Functions | |
static X86_64RelType | getType64 (MCFixupKind Kind, MCSymbolRefExpr::VariantKind &Modifier, bool &IsPCRel) |
static void | checkIs32 (MCContext &Ctx, SMLoc Loc, X86_64RelType Type) |
static void | checkIs64 (MCContext &Ctx, SMLoc Loc, X86_64RelType Type) |
static unsigned | getRelocType64 (MCContext &Ctx, SMLoc Loc, MCSymbolRefExpr::VariantKind Modifier, X86_64RelType Type, bool IsPCRel, MCFixupKind Kind) |
static unsigned | getRelocType32 (MCContext &Ctx, SMLoc Loc, MCSymbolRefExpr::VariantKind Modifier, X86_32RelType Type, bool IsPCRel, MCFixupKind Kind) |
enum X86_32RelType |
Enumerator | |
---|---|
RT32_NONE | |
RT32_32 | |
RT32_16 | |
RT32_8 |
Definition at line 231 of file X86ELFObjectWriter.cpp.
enum X86_64RelType |
Enumerator | |
---|---|
RT64_NONE | |
RT64_64 | |
RT64_32 | |
RT64_32S | |
RT64_16 | |
RT64_8 |
Definition at line 47 of file X86ELFObjectWriter.cpp.
|
static |
Definition at line 91 of file X86ELFObjectWriter.cpp.
References llvm::MCContext::reportError(), and RT64_32.
Referenced by getRelocType64().
|
static |
Definition at line 97 of file X86ELFObjectWriter.cpp.
References llvm::MCContext::reportError(), and RT64_64.
Referenced by getRelocType64().
|
static |
Definition at line 233 of file X86ELFObjectWriter.cpp.
References assert(), llvm::MCContext::getTargetOptions(), llvm_unreachable, llvm::X86::reloc_signed_4byte_relax, llvm::MCContext::reportError(), RT32_16, RT32_32, RT32_8, RT32_NONE, llvm::MCSymbolRefExpr::VK_DTPOFF, llvm::MCSymbolRefExpr::VK_GOT, llvm::MCSymbolRefExpr::VK_GOTNTPOFF, llvm::MCSymbolRefExpr::VK_GOTOFF, llvm::MCSymbolRefExpr::VK_GOTTPOFF, llvm::MCSymbolRefExpr::VK_INDNTPOFF, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_NTPOFF, llvm::MCSymbolRefExpr::VK_PLT, llvm::MCSymbolRefExpr::VK_TLSCALL, llvm::MCSymbolRefExpr::VK_TLSDESC, llvm::MCSymbolRefExpr::VK_TLSGD, llvm::MCSymbolRefExpr::VK_TLSLDM, llvm::MCSymbolRefExpr::VK_TPOFF, llvm::MCSymbolRefExpr::VK_X86_ABS8, and llvm::MCTargetOptions::X86RelaxRelocations.
|
static |
Definition at line 103 of file X86ELFObjectWriter.cpp.
References assert(), checkIs32(), checkIs64(), llvm::MCContext::getTargetOptions(), llvm_unreachable, llvm::X86::reloc_riprel_4byte_movq_load, llvm::X86::reloc_riprel_4byte_relax, llvm::X86::reloc_riprel_4byte_relax_rex, llvm::MCContext::reportError(), RT64_16, RT64_32, RT64_32S, RT64_64, RT64_8, RT64_NONE, llvm::MCSymbolRefExpr::VK_DTPOFF, llvm::MCSymbolRefExpr::VK_GOT, llvm::MCSymbolRefExpr::VK_GOTOFF, llvm::MCSymbolRefExpr::VK_GOTPCREL, llvm::MCSymbolRefExpr::VK_GOTPCREL_NORELAX, llvm::MCSymbolRefExpr::VK_GOTTPOFF, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_PLT, llvm::MCSymbolRefExpr::VK_SIZE, llvm::MCSymbolRefExpr::VK_TLSCALL, llvm::MCSymbolRefExpr::VK_TLSDESC, llvm::MCSymbolRefExpr::VK_TLSGD, llvm::MCSymbolRefExpr::VK_TLSLD, llvm::MCSymbolRefExpr::VK_TPOFF, llvm::MCSymbolRefExpr::VK_X86_ABS8, llvm::MCSymbolRefExpr::VK_X86_PLTOFF, and llvm::MCTargetOptions::X86RelaxRelocations.
|
static |
Definition at line 49 of file X86ELFObjectWriter.cpp.
References llvm::FK_Data_1, llvm::FK_Data_2, llvm::FK_Data_4, llvm::FK_Data_8, llvm::FK_NONE, llvm::FK_PCRel_1, llvm::FK_PCRel_2, llvm::FK_PCRel_4, llvm_unreachable, llvm::X86::reloc_branch_4byte_pcrel, llvm::X86::reloc_global_offset_table, llvm::X86::reloc_global_offset_table8, llvm::X86::reloc_riprel_4byte, llvm::X86::reloc_riprel_4byte_movq_load, llvm::X86::reloc_riprel_4byte_relax, llvm::X86::reloc_riprel_4byte_relax_rex, llvm::X86::reloc_signed_4byte, llvm::X86::reloc_signed_4byte_relax, RT64_16, RT64_32, RT64_32S, RT64_64, RT64_8, RT64_NONE, llvm::MCSymbolRefExpr::VK_GOT, llvm::MCSymbolRefExpr::VK_None, and llvm::MCSymbolRefExpr::VK_PLT.