|
LLVM 23.0.0git
|
Classes | |
| class | ARM64UnwindEmitter |
| class | ARMUnwindEmitter |
| struct | DecodedEpilogV3 |
| Decoded V3 epilog descriptor. More... | |
| struct | DecodedUnwindInfoV3 |
| Decoded V3 UNWIND_INFO. More... | |
| struct | DecodedWOD |
| Decoded V3 Winding Operation Descriptor. More... | |
| struct | Instruction |
| struct | RuntimeFunction |
| RuntimeFunction - An entry in the table of functions with unwind info. More... | |
| union | UnwindCode |
| UnwindCode - This union describes a single operation in a function prolog, or part thereof. More... | |
| class | UnwindEmitter |
| struct | UnwindInfo |
| UnwindInfo - An entry in the exception table. More... | |
Functions | |
| StringRef | getRegisterNameV3 (unsigned Reg) |
| Return the register name for a 5-bit AMD64 integer register number. | |
| Expected< DecodedWOD > | decodeWOD (ArrayRef< uint8_t > Pool, unsigned Offset) |
| Decode one WOD from the pool at the given byte offset. | |
| Expected< DecodedUnwindInfoV3 > | decodeUnwindInfoV3 (ArrayRef< uint8_t > Data) |
| Parse a V3 UNWIND_INFO from raw bytes. | |
| anonymous enum |
| Enumerator | |
|---|---|
| UNW_ExceptionHandler | UNW_ExceptionHandler - Specifies that this function has an exception handler. |
| UNW_TerminateHandler | UNW_TerminateHandler - Specifies that this function has a termination handler. |
| UNW_ChainInfo | UNW_ChainInfo - Specifies that this UnwindInfo structure is chained to another one. |
| UNW_FlagLarge | UNW_FlagLarge - V3 only. When set, the header is 5 bytes (an extra UNWIND_INFO_LARGE_V3 byte follows), SizeOfProlog extends to 16 bits, and prolog IP offset entries are 16-bit. |
UnwindOpcodes - Enumeration whose values specify a single operation in the prolog of a function.
| enum llvm::Win64EH::WODOpcode : uint8_t |
| Expected< DecodedUnwindInfoV3 > llvm::Win64EH::decodeUnwindInfoV3 | ( | ArrayRef< uint8_t > | Data | ) |
Parse a V3 UNWIND_INFO from raw bytes.
Returns an error on malformed data.
Definition at line 194 of file Win64EH.cpp.
References llvm::alignTo(), llvm::createStringError(), llvm::Data, llvm::Win64EH::DecodedEpilogV3::EpilogOffset, llvm::Win64EH::DecodedEpilogV3::FirstOp, llvm::Win64EH::DecodedEpilogV3::Flags, I, llvm::Win64EH::DecodedEpilogV3::IpOffsetOfLastInstruction, llvm::Win64EH::DecodedEpilogV3::IpOffsets, llvm::Win64EH::DecodedEpilogV3::isLarge(), llvm::Win64EH::DecodedEpilogV3::NumberOfOps, llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::support::endian::read16le(), and llvm::Win64EH::DecodedUnwindInfoV3::Version.
| Expected< DecodedWOD > llvm::Win64EH::decodeWOD | ( | ArrayRef< uint8_t > | Pool, |
| unsigned | Offset ) |
Decode one WOD from the pool at the given byte offset.
Returns an error on malformed data.
Definition at line 33 of file Win64EH.cpp.
References llvm::createStringError(), llvm::Offset, llvm::support::endian::read16le(), llvm::support::endian::read32le(), llvm::ArrayRef< T >::size(), WOD_ALLOC_HUGE, WOD_ALLOC_LARGE, WOD_ALLOC_SMALL, WOD_PUSH, WOD_PUSH2, WOD_PUSH_CANONICAL_FRAME, WOD_PUSH_CONSECUTIVE_2, WOD_SAVE_NONVOL, WOD_SAVE_NONVOL_FAR, WOD_SAVE_XMM128, WOD_SAVE_XMM128_FAR, and WOD_SET_FPREG.
Return the register name for a 5-bit AMD64 integer register number.
Covers 0-15 (RAX-R15) and 16-31 (R16-R31 for APX).
Definition at line 21 of file Win64EH.cpp.