LLVM  10.0.0svn
Namespaces | Enumerations | Functions
AArch64AsmBackend.cpp File Reference
#include "MCTargetDesc/AArch64FixupKinds.h"
#include "MCTargetDesc/AArch64MCExpr.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm/ADT/Triple.h"
#include "llvm/BinaryFormat/MachO.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDirectives.h"
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/MC/MCFixupKindInfo.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCTargetOptions.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/TargetRegistry.h"
Include dependency graph for AArch64AsmBackend.cpp:

Go to the source code of this file.

Namespaces

 CU
 

Enumerations

enum  CompactUnwindEncodings
 Compact unwind encoding values. More...
 

Functions

static unsigned getFixupKindNumBytes (unsigned Kind)
 The number of bytes the fixup may change. More...
 
static unsigned AdrImmBits (unsigned Value)
 
static uint64_t adjustFixupValue (const MCFixup &Fixup, const MCValue &Target, uint64_t Value, MCContext &Ctx, const Triple &TheTriple, bool IsResolved)
 

Enumeration Type Documentation

◆ CompactUnwindEncodings

Compact unwind encoding values.

Definition at line 494 of file AArch64AsmBackend.cpp.

Function Documentation

◆ adjustFixupValue()

static uint64_t adjustFixupValue ( const MCFixup Fixup,
const MCValue Target,
uint64_t  Value,
MCContext Ctx,
const Triple TheTriple,
bool  IsResolved 
)
static

Definition at line 153 of file AArch64AsmBackend.cpp.

References AdrImmBits(), llvm::HexStyle::Asm, assert(), llvm::Data, Fixup, llvm::AArch64::fixup_aarch64_add_imm12, llvm::AArch64::fixup_aarch64_ldr_pcrel_imm19, llvm::AArch64::fixup_aarch64_ldst_imm12_scale1, llvm::AArch64::fixup_aarch64_ldst_imm12_scale16, llvm::AArch64::fixup_aarch64_ldst_imm12_scale2, llvm::AArch64::fixup_aarch64_ldst_imm12_scale4, llvm::AArch64::fixup_aarch64_ldst_imm12_scale8, llvm::AArch64::fixup_aarch64_movw, llvm::AArch64::fixup_aarch64_pcrel_adr_imm21, llvm::AArch64::fixup_aarch64_pcrel_adrp_imm21, llvm::AArch64::fixup_aarch64_pcrel_branch14, llvm::AArch64::fixup_aarch64_pcrel_branch19, llvm::AArch64::fixup_aarch64_pcrel_branch26, llvm::AArch64::fixup_aarch64_pcrel_call26, llvm::AArch64::fixup_aarch64_tlsdesc_call, llvm::FK_Data_1, llvm::FK_Data_2, llvm::FK_Data_4, llvm::FK_Data_8, llvm::FK_NONE, llvm::FK_SecRel_2, llvm::FK_SecRel_4, llvm::AArch64MCExpr::getAddressFrag(), llvm::MCAssembler::getContext(), llvm::MCAsmBackend::getFixupKind(), getFixupKindNumBytes(), llvm::MCFixup::getKind(), llvm::MCFixup::getLoc(), llvm::MCFixup::getOffset(), llvm::MCValue::getRefKind(), llvm::AArch64MCExpr::getSymbolLoc(), llvm::MCFixup::getTargetKind(), Info, llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatELF(), llvm::support::little, llvm_unreachable, Name, llvm::MCContext::reportError(), llvm::ArrayRef< T >::size(), llvm::MCFixupKindInfo::TargetOffset, llvm::AArch64MCExpr::VK_ABS, llvm::AArch64MCExpr::VK_G0, llvm::AArch64MCExpr::VK_G1, llvm::AArch64MCExpr::VK_G2, llvm::AArch64MCExpr::VK_G3, llvm::AArch64MCExpr::VK_GOT, llvm::AArch64MCExpr::VK_NC, llvm::AArch64MCExpr::VK_SABS, and llvm::raw_ostream::write_zeros().

Referenced by llvm::AVRAsmBackend::applyFixup(), and llvm::ARMAsmBackend::applyFixup().

◆ AdrImmBits()

static unsigned AdrImmBits ( unsigned  Value)
static

Definition at line 147 of file AArch64AsmBackend.cpp.

Referenced by adjustFixupValue().

◆ getFixupKindNumBytes()

static unsigned getFixupKindNumBytes ( unsigned  Kind)
static