LLVM 17.0.0git
Namespaces | Macros | Enumerations | Functions
ARMAsmBackend.cpp File Reference
#include "MCTargetDesc/ARMAsmBackend.h"
#include "MCTargetDesc/ARMAddressingModes.h"
#include "MCTargetDesc/ARMAsmBackendDarwin.h"
#include "MCTargetDesc/ARMAsmBackendELF.h"
#include "MCTargetDesc/ARMAsmBackendWinCOFF.h"
#include "MCTargetDesc/ARMFixupKinds.h"
#include "MCTargetDesc/ARMMCTargetDesc.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/BinaryFormat/ELF.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/MCExpr.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/MCSubtargetInfo.h"
#include "llvm/MC/MCValue.h"
#include "llvm/MC/MCAsmLayout.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/TargetParser.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/BinaryFormat/ELFRelocs/ARM.def"
Include dependency graph for ARMAsmBackend.cpp:

Go to the source code of this file.

Namespaces

namespace  CU
 

Macros

#define ELF_RELOC(X, Y)   .Case(#X, Y)
 

Enumerations

enum  CU::CompactUnwindEncodings {
  CU::UNWIND_ARM_MODE_MASK = 0x0F000000 , CU::UNWIND_ARM_MODE_FRAME = 0x01000000 , CU::UNWIND_ARM_MODE_FRAME_D = 0x02000000 , CU::UNWIND_ARM_MODE_DWARF = 0x04000000 ,
  CU::UNWIND_ARM_FRAME_STACK_ADJUST_MASK = 0x00C00000 , CU::UNWIND_ARM_FRAME_FIRST_PUSH_R4 = 0x00000001 , CU::UNWIND_ARM_FRAME_FIRST_PUSH_R5 = 0x00000002 , CU::UNWIND_ARM_FRAME_FIRST_PUSH_R6 = 0x00000004 ,
  CU::UNWIND_ARM_FRAME_SECOND_PUSH_R8 = 0x00000008 , CU::UNWIND_ARM_FRAME_SECOND_PUSH_R9 = 0x00000010 , CU::UNWIND_ARM_FRAME_SECOND_PUSH_R10 = 0x00000020 , CU::UNWIND_ARM_FRAME_SECOND_PUSH_R11 = 0x00000040 ,
  CU::UNWIND_ARM_FRAME_SECOND_PUSH_R12 = 0x00000080 , CU::UNWIND_ARM_FRAME_D_REG_COUNT_MASK = 0x00000F00 , CU::UNWIND_ARM_DWARF_SECTION_OFFSET = 0x00FFFFFF
}
 Compact unwind encoding values. More...
 

Functions

static const charcheckPCRelOffset (uint64_t Value, int64_t Min, int64_t Max)
 
static uint32_t swapHalfWords (uint32_t Value, bool IsLittleEndian)
 
static uint32_t joinHalfWords (uint32_t FirstHalf, uint32_t SecondHalf, bool IsLittleEndian)
 
static unsigned getFixupKindNumBytes (unsigned Kind)
 getFixupKindNumBytes - The number of bytes the fixup may change.
 
static unsigned getFixupKindContainerSizeBytes (unsigned Kind)
 getFixupKindContainerSizeBytes - The number of bytes of the container involved in big endian.
 
static MCAsmBackendcreateARMAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options, support::endianness Endian)
 

Macro Definition Documentation

◆ ELF_RELOC

#define ELF_RELOC (   X,
  Y 
)    .Case(#X, Y)

Function Documentation

◆ checkPCRelOffset()

static const char * checkPCRelOffset ( uint64_t  Value,
int64_t  Min,
int64_t  Max 
)
static

Definition at line 239 of file ARMAsmBackend.cpp.

References llvm::Offset.

Referenced by llvm::ARMAsmBackend::reasonForFixupRelaxation().

◆ createARMAsmBackend()

static MCAsmBackend * createARMAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options,
support::endianness  Endian 
)
static

◆ getFixupKindContainerSizeBytes()

static unsigned getFixupKindContainerSizeBytes ( unsigned  Kind)
static

◆ getFixupKindNumBytes()

static unsigned getFixupKindNumBytes ( unsigned  Kind)
static

◆ joinHalfWords()

static uint32_t joinHalfWords ( uint32_t  FirstHalf,
uint32_t  SecondHalf,
bool  IsLittleEndian 
)
static

Definition at line 414 of file ARMAsmBackend.cpp.

Referenced by llvm::ARMAsmBackend::adjustFixupValue().

◆ swapHalfWords()

static uint32_t swapHalfWords ( uint32_t  Value,
bool  IsLittleEndian 
)
static

Definition at line 403 of file ARMAsmBackend.cpp.

Referenced by llvm::ARMAsmBackend::adjustFixupValue().