LLVM API Documentation
#include "MCTargetDesc/PPCMCTargetDesc.h"
#include "MCTargetDesc/PPCFixupKinds.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCAsmLayout.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCMachObjectWriter.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/MachO.h"
Go to the source code of this file.
Functions | |
static unsigned | getFixupKindLog2Size (unsigned Kind) |
static unsigned | getRelocType (const MCValue &Target, const MCFixupKind FixupKind, const bool IsPCRel) |
static void | makeRelocationInfo (MachO::any_relocation_info &MRE, const uint32_t FixupOffset, const uint32_t Index, const unsigned IsPCRel, const unsigned Log2Size, const unsigned IsExtern, const unsigned Type) |
static void | makeScatteredRelocationInfo (MachO::any_relocation_info &MRE, const uint32_t Addr, const unsigned Type, const unsigned Log2Size, const unsigned IsPCRel, const uint32_t Value2) |
static uint32_t | getFixupOffset (const MCAsmLayout &Layout, const MCFragment *Fragment, const MCFixup &Fixup) |
Compute fixup offset (address). |
static unsigned getFixupKindLog2Size | ( | unsigned | Kind | ) | [static] |
computes the log2 of the size of the relocation, used for relocation_info::r_length.
Definition at line 59 of file PPCMachObjectWriter.cpp.
References llvm::PPC::fixup_ppc_br24, llvm::PPC::fixup_ppc_brcond14, llvm::PPC::fixup_ppc_half16, llvm::FK_Data_1, llvm::FK_Data_2, llvm::FK_Data_4, llvm::FK_Data_8, llvm::FK_PCRel_1, llvm::FK_PCRel_2, llvm::FK_PCRel_4, llvm::FK_PCRel_8, and llvm::report_fatal_error().
static uint32_t getFixupOffset | ( | const MCAsmLayout & | Layout, |
const MCFragment * | Fragment, | ||
const MCFixup & | Fixup | ||
) | [static] |
Compute fixup offset (address).
Definition at line 177 of file PPCMachObjectWriter.cpp.
References llvm::PPC::fixup_ppc_half16, llvm::MCAsmLayout::getFragmentOffset(), llvm::MCFixup::getKind(), and llvm::MCFixup::getOffset().
static unsigned getRelocType | ( | const MCValue & | Target, |
const MCFixupKind | FixupKind, | ||
const bool | IsPCRel | ||
) | [static] |
Translates generic PPC fixup kind to Mach-O/PPC relocation type enum. Outline based on PPCELFObjectWriter::GetRelocType().
Definition at line 84 of file PPCMachObjectWriter.cpp.
References llvm::PPC::fixup_ppc_br24, llvm::PPC::fixup_ppc_brcond14, llvm::PPC::fixup_ppc_half16, llvm::FK_Data_2, llvm::FK_Data_4, llvm::MachO::GENERIC_RELOC_VANILLA, llvm::MCSymbolRefExpr::getKind(), llvm::MCValue::getSymA(), llvm::MCValue::isAbsolute(), llvm_unreachable, llvm::MachO::PPC_RELOC_BR14, llvm::MachO::PPC_RELOC_BR24, llvm::MachO::PPC_RELOC_HA16, llvm::MachO::PPC_RELOC_HA16_SECTDIFF, llvm::MachO::PPC_RELOC_HI16, llvm::MachO::PPC_RELOC_HI16_SECTDIFF, llvm::MachO::PPC_RELOC_LO16, llvm::MachO::PPC_RELOC_LO16_SECTDIFF, llvm::report_fatal_error(), Type, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_PPC_HA, llvm::MCSymbolRefExpr::VK_PPC_HI, and llvm::MCSymbolRefExpr::VK_PPC_LO.
static void makeRelocationInfo | ( | MachO::any_relocation_info & | MRE, |
const uint32_t | FixupOffset, | ||
const uint32_t | Index, | ||
const unsigned | IsPCRel, | ||
const unsigned | Log2Size, | ||
const unsigned | IsExtern, | ||
const unsigned | Type | ||
) | [static] |
Definition at line 147 of file PPCMachObjectWriter.cpp.
References llvm::MachO::any_relocation_info::r_word0, and llvm::MachO::any_relocation_info::r_word1.
static void makeScatteredRelocationInfo | ( | MachO::any_relocation_info & | MRE, |
const uint32_t | Addr, | ||
const unsigned | Type, | ||
const unsigned | Log2Size, | ||
const unsigned | IsPCRel, | ||
const uint32_t | Value2 | ||
) | [static] |
Definition at line 165 of file PPCMachObjectWriter.cpp.
References llvm::MachO::R_SCATTERED, llvm::MachO::any_relocation_info::r_word0, and llvm::MachO::any_relocation_info::r_word1.