LLVM  8.0.1
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...
 

Enumerations

enum  RuntimeFunctionFlag { RuntimeFunctionFlag::RFF_Unpacked, RuntimeFunctionFlag::RFF_Packed, RuntimeFunctionFlag::RFF_PackedFragment, RuntimeFunctionFlag::RFF_Reserved }
 
enum  ReturnType { ReturnType::RT_POP, ReturnType::RT_B, ReturnType::RT_BW, ReturnType::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. More...
 
bool EpilogueFolding (const RuntimeFunction &RF)
 Epilogue - pseudo-flag derived from Stack Adjust indicating that the epilogue has stack adjustment combined into the pop. More...
 
uint16_t StackAdjustment (const RuntimeFunction &RF)
 StackAdjustment - calculated stack adjustment in words. More...
 
std::pair< uint16_t, uint32_tSavedRegisterMask (const RuntimeFunction &RF)
 SavedRegisterMask - Utility function to calculate the set of saved general purpose (r0-r15) and VFP (d0-d31) registers. More...
 
size_t HeaderWords (const ExceptionDataRecord &XR)
 

Enumeration Type Documentation

◆ ReturnType

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 26 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 19 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 191 of file ARMWinEH.h.

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

◆ 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 186 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)

SavedRegisterMask - Utility function to calculate the set of saved general purpose (r0-r15) and VFP (d0-d31) registers.

Definition at line 16 of file ARMWinEH.cpp.

References llvm::ARM::WinEH::RuntimeFunction::C(), llvm::ARM::WinEH::RuntimeFunction::L(), PrologueFolding(), llvm::ARM::WinEH::RuntimeFunction::R(), llvm::ARM::WinEH::RuntimeFunction::Reg(), and llvm::ARM::WinEH::RuntimeFunction::StackAdjust().

Referenced by StackAdjustment().

◆ 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 197 of file ARMWinEH.h.

References SavedRegisterMask(), and llvm::ARM::WinEH::RuntimeFunction::StackAdjust().

Referenced by llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), and ExpandMOVImmSExti8().