LLVM 23.0.0git
Win64EH.h File Reference

Go to the source code of this file.

Classes

union  llvm::Win64EH::UnwindCode
 UnwindCode - This union describes a single operation in a function prolog, or part thereof. More...
struct  llvm::Win64EH::RuntimeFunction
 RuntimeFunction - An entry in the table of functions with unwind info. More...
struct  llvm::Win64EH::UnwindInfo
 UnwindInfo - An entry in the exception table. More...
struct  llvm::Win64EH::DecodedWOD
 Decoded V3 Winding Operation Descriptor. More...
struct  llvm::Win64EH::DecodedEpilogV3
 Decoded V3 epilog descriptor. More...
struct  llvm::Win64EH::DecodedUnwindInfoV3
 Decoded V3 UNWIND_INFO. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::Win64EH

Enumerations

enum  llvm::Win64EH::UnwindOpcodes {
  llvm::Win64EH::UOP_PushNonVol = 0 , llvm::Win64EH::UOP_AllocLarge , llvm::Win64EH::UOP_AllocSmall , llvm::Win64EH::UOP_SetFPReg ,
  llvm::Win64EH::UOP_SaveNonVol , llvm::Win64EH::UOP_SaveNonVolBig , llvm::Win64EH::UOP_Epilog , llvm::Win64EH::UOP_SpareCode ,
  llvm::Win64EH::UOP_SaveXMM128 , llvm::Win64EH::UOP_SaveXMM128Big , llvm::Win64EH::UOP_PushMachFrame , llvm::Win64EH::UOP_AllocMedium ,
  llvm::Win64EH::UOP_SaveR19R20X , llvm::Win64EH::UOP_SaveFPLRX , llvm::Win64EH::UOP_SaveFPLR , llvm::Win64EH::UOP_SaveReg ,
  llvm::Win64EH::UOP_SaveRegX , llvm::Win64EH::UOP_SaveRegP , llvm::Win64EH::UOP_SaveRegPX , llvm::Win64EH::UOP_SaveLRPair ,
  llvm::Win64EH::UOP_SaveFReg , llvm::Win64EH::UOP_SaveFRegX , llvm::Win64EH::UOP_SaveFRegP , llvm::Win64EH::UOP_SaveFRegPX ,
  llvm::Win64EH::UOP_SetFP , llvm::Win64EH::UOP_AddFP , llvm::Win64EH::UOP_Nop , llvm::Win64EH::UOP_End ,
  llvm::Win64EH::UOP_SaveNext , llvm::Win64EH::UOP_TrapFrame , llvm::Win64EH::UOP_Context , llvm::Win64EH::UOP_ECContext ,
  llvm::Win64EH::UOP_ClearUnwoundToCall , llvm::Win64EH::UOP_PACSignLR , llvm::Win64EH::UOP_SaveAnyRegI , llvm::Win64EH::UOP_SaveAnyRegIP ,
  llvm::Win64EH::UOP_SaveAnyRegD , llvm::Win64EH::UOP_SaveAnyRegDP , llvm::Win64EH::UOP_SaveAnyRegQ , llvm::Win64EH::UOP_SaveAnyRegQP ,
  llvm::Win64EH::UOP_SaveAnyRegIX , llvm::Win64EH::UOP_SaveAnyRegIPX , llvm::Win64EH::UOP_SaveAnyRegDX , llvm::Win64EH::UOP_SaveAnyRegDPX ,
  llvm::Win64EH::UOP_SaveAnyRegQX , llvm::Win64EH::UOP_SaveAnyRegQPX , llvm::Win64EH::UOP_AllocZ , llvm::Win64EH::UOP_SaveZReg ,
  llvm::Win64EH::UOP_SavePReg , llvm::Win64EH::UOP_AllocHuge , llvm::Win64EH::UOP_WideAllocMedium , llvm::Win64EH::UOP_WideAllocLarge ,
  llvm::Win64EH::UOP_WideAllocHuge , llvm::Win64EH::UOP_WideSaveRegMask , llvm::Win64EH::UOP_SaveSP , llvm::Win64EH::UOP_SaveRegsR4R7LR ,
  llvm::Win64EH::UOP_WideSaveRegsR4R11LR , llvm::Win64EH::UOP_SaveFRegD8D15 , llvm::Win64EH::UOP_SaveRegMask , llvm::Win64EH::UOP_SaveLR ,
  llvm::Win64EH::UOP_SaveFRegD0D15 , llvm::Win64EH::UOP_SaveFRegD16D31 , llvm::Win64EH::UOP_WideNop , llvm::Win64EH::UOP_EndNop ,
  llvm::Win64EH::UOP_WideEndNop , llvm::Win64EH::UOP_Custom , llvm::Win64EH::UOP_Push2
}
 UnwindOpcodes - Enumeration whose values specify a single operation in the prolog of a function. More...
enum  { llvm::Win64EH::UNW_ExceptionHandler = 0x01 , llvm::Win64EH::UNW_TerminateHandler = 0x02 , llvm::Win64EH::UNW_ChainInfo = 0x04 , llvm::Win64EH::UNW_FlagLarge = 0x08 }
enum  llvm::Win64EH::WODOpcode : uint8_t {
  llvm::Win64EH::WOD_SET_FPREG = 0 , llvm::Win64EH::WOD_ALLOC_HUGE = 1 , llvm::Win64EH::WOD_ALLOC_LARGE = 2 , llvm::Win64EH::WOD_PUSH_CANONICAL_FRAME = 3 ,
  llvm::Win64EH::WOD_PUSH = 4 , llvm::Win64EH::WOD_SAVE_NONVOL_FAR = 5 , llvm::Win64EH::WOD_SAVE_NONVOL = 6 , llvm::Win64EH::WOD_PUSH_CONSECUTIVE_2 = 7 ,
  llvm::Win64EH::WOD_ALLOC_SMALL = 8 , llvm::Win64EH::WOD_SAVE_XMM128_FAR = 9 , llvm::Win64EH::WOD_SAVE_XMM128 = 10 , llvm::Win64EH::WOD_PUSH2 = 32
}
 V3 Winding Operation Descriptor opcodes. More...
enum  llvm::Win64EH::EpilogInfoFlagsV3 : uint8_t { llvm::Win64EH::EPILOG_PARENT_FRAGMENT_TRANSFER = 0x01 , llvm::Win64EH::EPILOG_INFO_LARGE = 0x02 }
 V3 EPILOG_INFO flags. More...

Functions

StringRef llvm::Win64EH::getRegisterNameV3 (unsigned Reg)
 Return the register name for a 5-bit AMD64 integer register number.
Expected< DecodedWODllvm::Win64EH::decodeWOD (ArrayRef< uint8_t > Pool, unsigned Offset)
 Decode one WOD from the pool at the given byte offset.
Expected< DecodedUnwindInfoV3llvm::Win64EH::decodeUnwindInfoV3 (ArrayRef< uint8_t > Data)
 Parse a V3 UNWIND_INFO from raw bytes.