LLVM 20.0.0git
Classes | Enumerations | Functions
llvm::ARM::WinEH Namespace Reference

Classes

struct  EpilogueScope
 ExceptionDataRecord - An entry in the table of exception data (.xdata) More...
 
struct  ExceptionDataRecord
 
class  RuntimeFunction
 RuntimeFunction - An entry in the table of procedure data (.pdata) More...
 
class  RuntimeFunctionARM64
 RuntimeFunctionARM64 - An entry in the table of procedure data (.pdata) More...
 

Enumerations

enum class  RuntimeFunctionFlag { RFF_Unpacked , RFF_Packed , RFF_PackedFragment , RFF_Reserved }
 
enum class  ReturnType { RT_POP , RT_B , RT_BW , RT_NoEpilogue }
 

Functions

bool PrologueFolding (const RuntimeFunction &RF)
 PrologueFolding - pseudo-flag derived from Stack Adjust indicating that the prologue has stack adjustment combined into the push.
 
bool EpilogueFolding (const RuntimeFunction &RF)
 Epilogue - pseudo-flag derived from Stack Adjust indicating that the epilogue has stack adjustment combined into the pop.
 
uint16_t StackAdjustment (const RuntimeFunction &RF)
 StackAdjustment - calculated stack adjustment in words.
 
std::pair< uint16_t, uint32_tSavedRegisterMask (const RuntimeFunction &RF, bool Prologue=true)
 SavedRegisterMask - Utility function to calculate the set of saved general purpose (r0-r15) and VFP (d0-d31) registers.
 
size_t HeaderWords (const ExceptionDataRecord &XR)
 

Enumeration Type Documentation

◆ ReturnType

enum class llvm::ARM::WinEH::ReturnType
strong
Enumerator
RT_POP 
RT_B 

return via pop {pc} (L flag must be set)

RT_BW 

16-bit branch

RT_NoEpilogue 

32-bit branch

Definition at line 25 of file ARMWinEH.h.

◆ RuntimeFunctionFlag

Enumerator
RFF_Unpacked 
RFF_Packed 

unpacked entry

RFF_PackedFragment 

packed entry

RFF_Reserved 

packed entry representing a fragment

Definition at line 18 of file ARMWinEH.h.

Function Documentation

◆ EpilogueFolding()

bool llvm::ARM::WinEH::EpilogueFolding ( const RuntimeFunction RF)
inline

Epilogue - pseudo-flag derived from Stack Adjust indicating that the epilogue has stack adjustment combined into the pop.

Definition at line 193 of file ARMWinEH.h.

References llvm::ARM::WinEH::RuntimeFunction::StackAdjust().

Referenced by SavedRegisterMask().

◆ HeaderWords()

size_t llvm::ARM::WinEH::HeaderWords ( const ExceptionDataRecord XR)
inline

◆ PrologueFolding()

bool llvm::ARM::WinEH::PrologueFolding ( const RuntimeFunction RF)
inline

PrologueFolding - pseudo-flag derived from Stack Adjust indicating that the prologue has stack adjustment combined into the push.

Definition at line 188 of file ARMWinEH.h.

References llvm::ARM::WinEH::RuntimeFunction::StackAdjust().

Referenced by SavedRegisterMask().

◆ SavedRegisterMask()

std::pair< uint16_t, uint32_t > llvm::ARM::WinEH::SavedRegisterMask ( const RuntimeFunction RF,
bool  Prologue = true 
)

◆ StackAdjustment()

uint16_t llvm::ARM::WinEH::StackAdjustment ( const RuntimeFunction RF)
inline

StackAdjustment - calculated stack adjustment in words.

The stack adjustment should be determined via this function to account for the special handling the special encoding when the value is >= 0x3f4.

Definition at line 199 of file ARMWinEH.h.

References llvm::ARM::WinEH::RuntimeFunction::StackAdjust().