LLVM 20.0.0git
|
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_t > | SavedRegisterMask (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) |
|
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.
|
strong |
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.
|
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().
|
inline |
Definition at line 512 of file ARMWinEH.h.
References llvm::ARM::WinEH::ExceptionDataRecord::Data, and llvm::ARM::WinEH::ExceptionDataRecord::isAArch64.
Referenced by llvm::ARM::WinEH::ExceptionDataRecord::CodeWords(), llvm::ARM::WinEH::ExceptionDataRecord::EpilogueCount(), llvm::ARM::WinEH::ExceptionDataRecord::EpilogueScopes(), llvm::ARM::WinEH::ExceptionDataRecord::ExceptionHandlerParameter(), llvm::ARM::WinEH::ExceptionDataRecord::ExceptionHandlerRVA(), and llvm::ARM::WinEH::ExceptionDataRecord::UnwindByteCode().
|
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().
std::pair< uint16_t, uint32_t > llvm::ARM::WinEH::SavedRegisterMask | ( | const RuntimeFunction & | RF, |
bool | Prologue = true |
||
) |
SavedRegisterMask - Utility function to calculate the set of saved general purpose (r0-r15) and VFP (d0-d31) registers.
Definition at line 14 of file ARMWinEH.cpp.
References llvm::ARM::WinEH::RuntimeFunction::C(), EpilogueFolding(), llvm::ARM::WinEH::RuntimeFunction::H(), llvm::ARM::WinEH::RuntimeFunction::L(), PrologueFolding(), llvm::ARM::WinEH::RuntimeFunction::R(), llvm::ARM::WinEH::RuntimeFunction::Reg(), llvm::ARM::WinEH::RuntimeFunction::Ret(), RT_POP, and llvm::ARM::WinEH::RuntimeFunction::StackAdjust().
|
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().