LLVM 20.0.0git
|
#include "llvm/MC/MCWin64EH.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCObjectStreamer.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/Win64EH.h"
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
|
static |
Definition at line 340 of file MCWin64EH.cpp.
References I, llvm_unreachable, llvm::Win64EH::UOP_AddFP, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocMedium, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_ClearUnwoundToCall, llvm::Win64EH::UOP_Context, llvm::Win64EH::UOP_ECContext, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_PACSignLR, llvm::Win64EH::UOP_PushMachFrame, llvm::Win64EH::UOP_SaveAnyRegD, llvm::Win64EH::UOP_SaveAnyRegDP, llvm::Win64EH::UOP_SaveAnyRegDPX, llvm::Win64EH::UOP_SaveAnyRegDX, llvm::Win64EH::UOP_SaveAnyRegI, llvm::Win64EH::UOP_SaveAnyRegIP, llvm::Win64EH::UOP_SaveAnyRegIPX, llvm::Win64EH::UOP_SaveAnyRegIX, llvm::Win64EH::UOP_SaveAnyRegQ, llvm::Win64EH::UOP_SaveAnyRegQP, llvm::Win64EH::UOP_SaveAnyRegQPX, llvm::Win64EH::UOP_SaveAnyRegQX, llvm::Win64EH::UOP_SaveFPLR, llvm::Win64EH::UOP_SaveFPLRX, llvm::Win64EH::UOP_SaveFReg, llvm::Win64EH::UOP_SaveFRegP, llvm::Win64EH::UOP_SaveFRegPX, llvm::Win64EH::UOP_SaveFRegX, llvm::Win64EH::UOP_SaveLRPair, llvm::Win64EH::UOP_SaveNext, llvm::Win64EH::UOP_SaveR19R20X, llvm::Win64EH::UOP_SaveReg, llvm::Win64EH::UOP_SaveRegP, llvm::Win64EH::UOP_SaveRegPX, llvm::Win64EH::UOP_SaveRegX, llvm::Win64EH::UOP_SetFP, and llvm::Win64EH::UOP_TrapFrame.
Referenced by ARM64EmitUnwindInfo(), ARM64ProcessEpilogs(), checkARM64PackedEpilog(), and getARM64OffsetInProlog().
|
static |
Definition at line 2508 of file MCWin64EH.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCStreamer::emitInt32(), EmitSymbolRefWithOfs(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), llvm::MCStreamer::getContext(), info, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by llvm::Win64EH::ARM64UnwindEmitter::Emit().
|
static |
Definition at line 445 of file MCWin64EH.cpp.
References assert(), llvm::MCStreamer::emitInt8(), llvm_unreachable, Mode, llvm::WinEH::Instruction::Offset, llvm::Offset, llvm::WinEH::Instruction::Operation, llvm::WinEH::Instruction::Register, llvm::Win64EH::UOP_AddFP, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocMedium, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_ClearUnwoundToCall, llvm::Win64EH::UOP_Context, llvm::Win64EH::UOP_ECContext, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_PACSignLR, llvm::Win64EH::UOP_PushMachFrame, llvm::Win64EH::UOP_SaveAnyRegD, llvm::Win64EH::UOP_SaveAnyRegDP, llvm::Win64EH::UOP_SaveAnyRegDPX, llvm::Win64EH::UOP_SaveAnyRegDX, llvm::Win64EH::UOP_SaveAnyRegI, llvm::Win64EH::UOP_SaveAnyRegIP, llvm::Win64EH::UOP_SaveAnyRegIPX, llvm::Win64EH::UOP_SaveAnyRegIX, llvm::Win64EH::UOP_SaveAnyRegQ, llvm::Win64EH::UOP_SaveAnyRegQP, llvm::Win64EH::UOP_SaveAnyRegQPX, llvm::Win64EH::UOP_SaveAnyRegQX, llvm::Win64EH::UOP_SaveFPLR, llvm::Win64EH::UOP_SaveFPLRX, llvm::Win64EH::UOP_SaveFReg, llvm::Win64EH::UOP_SaveFRegP, llvm::Win64EH::UOP_SaveFRegPX, llvm::Win64EH::UOP_SaveFRegX, llvm::Win64EH::UOP_SaveLRPair, llvm::Win64EH::UOP_SaveNext, llvm::Win64EH::UOP_SaveR19R20X, llvm::Win64EH::UOP_SaveReg, llvm::Win64EH::UOP_SaveRegP, llvm::Win64EH::UOP_SaveRegPX, llvm::Win64EH::UOP_SaveRegX, llvm::Win64EH::UOP_SetFP, and llvm::Win64EH::UOP_TrapFrame.
Referenced by ARM64EmitUnwindInfoForSegment().
|
static |
Definition at line 1353 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), ARM64EmitUnwindInfoForSegment(), ARM64FindSegmentsInFunction(), GetAbsDifference(), llvm::MCStreamer::getContext(), I, info, llvm::report_fatal_error(), llvm::MCContext::reportError(), and simplifyARM64Opcodes().
Referenced by llvm::Win64EH::ARM64UnwindEmitter::Emit(), and llvm::Win64EH::ARM64UnwindEmitter::EmitUnwindInfo().
|
static |
Definition at line 1206 of file MCWin64EH.cpp.
References ARM64EmitUnwindCode(), ARM64ProcessEpilogs(), assert(), checkARM64PackedEpilog(), llvm::MCSymbolRefExpr::create(), llvm::MCContext::createTempSymbol(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitLabel(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), llvm::WinEH::FrameInfo::Segment::Epilogs, llvm::MCStreamer::getContext(), llvm::WinEH::FrameInfo::Segment::HasProlog, I, info, llvm::WinEH::FrameInfo::Segment::Length, llvm::WinEH::FrameInfo::Segment::Offset, llvm::report_fatal_error(), llvm::reverse(), llvm::WinEH::FrameInfo::Segment::Symbol, tryARM64PackedUnwind(), and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by ARM64EmitUnwindInfo().
|
static |
Definition at line 1125 of file MCWin64EH.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), checkARM64Instructions(), End, GetAbsDifference(), I, info, llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by ARM64EmitUnwindInfo().
|
static |
Definition at line 1081 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), assert(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::clear(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::contains(), llvm::WinEH::FrameInfo::Segment::Epilogs, FindMatchingEpilog(), getARM64OffsetInProlog(), llvm::WinEH::FrameInfo::Segment::HasProlog, I, info, and llvm::MapVector< KeyT, ValueT, MapType, VectorType >::lookup().
Referenced by ARM64EmitUnwindInfoForSegment().
|
static |
Definition at line 1502 of file MCWin64EH.cpp.
References I, llvm_unreachable, llvm::Win64EH::UOP_AllocHuge, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_Custom, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_EndNop, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_SaveFRegD0D15, llvm::Win64EH::UOP_SaveFRegD16D31, llvm::Win64EH::UOP_SaveFRegD8D15, llvm::Win64EH::UOP_SaveLR, llvm::Win64EH::UOP_SaveRegMask, llvm::Win64EH::UOP_SaveRegsR4R7LR, llvm::Win64EH::UOP_SaveSP, llvm::Win64EH::UOP_WideAllocHuge, llvm::Win64EH::UOP_WideAllocLarge, llvm::Win64EH::UOP_WideAllocMedium, llvm::Win64EH::UOP_WideEndNop, llvm::Win64EH::UOP_WideNop, llvm::Win64EH::UOP_WideSaveRegMask, and llvm::Win64EH::UOP_WideSaveRegsR4R11LR.
Referenced by checkARMInstructions(), checkARMPackedEpilog(), and tryARMPackedUnwind().
|
static |
Definition at line 1431 of file MCWin64EH.cpp.
References I, llvm_unreachable, llvm::Win64EH::UOP_AllocHuge, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_Custom, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_EndNop, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_SaveFRegD0D15, llvm::Win64EH::UOP_SaveFRegD16D31, llvm::Win64EH::UOP_SaveFRegD8D15, llvm::Win64EH::UOP_SaveLR, llvm::Win64EH::UOP_SaveRegMask, llvm::Win64EH::UOP_SaveRegsR4R7LR, llvm::Win64EH::UOP_SaveSP, llvm::Win64EH::UOP_WideAllocHuge, llvm::Win64EH::UOP_WideAllocLarge, llvm::Win64EH::UOP_WideAllocMedium, llvm::Win64EH::UOP_WideEndNop, llvm::Win64EH::UOP_WideNop, llvm::Win64EH::UOP_WideSaveRegMask, and llvm::Win64EH::UOP_WideSaveRegsR4R11LR.
Referenced by ARMEmitUnwindInfo(), checkARMPackedEpilog(), and getARMOffsetInProlog().
|
static |
Definition at line 2526 of file MCWin64EH.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCStreamer::emitInt32(), EmitSymbolRefWithOfs(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), llvm::MCStreamer::getContext(), info, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by llvm::Win64EH::ARMUnwindEmitter::Emit().
|
static |
Definition at line 1599 of file MCWin64EH.cpp.
References assert(), llvm::MCStreamer::emitInt8(), llvm_unreachable, llvm::WinEH::Instruction::Offset, llvm::WinEH::Instruction::Operation, llvm::WinEH::Instruction::Register, llvm::Win64EH::UOP_AllocHuge, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_Custom, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_EndNop, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_SaveFRegD0D15, llvm::Win64EH::UOP_SaveFRegD16D31, llvm::Win64EH::UOP_SaveFRegD8D15, llvm::Win64EH::UOP_SaveLR, llvm::Win64EH::UOP_SaveRegMask, llvm::Win64EH::UOP_SaveRegsR4R7LR, llvm::Win64EH::UOP_SaveSP, llvm::Win64EH::UOP_WideAllocHuge, llvm::Win64EH::UOP_WideAllocLarge, llvm::Win64EH::UOP_WideAllocMedium, llvm::Win64EH::UOP_WideEndNop, llvm::Win64EH::UOP_WideNop, llvm::Win64EH::UOP_WideSaveRegMask, and llvm::Win64EH::UOP_WideSaveRegsR4R11LR.
Referenced by ARMEmitUnwindInfo().
|
static |
Definition at line 2270 of file MCWin64EH.cpp.
References ARMCountOfUnwindCodes(), ARMEmitUnwindCode(), assert(), checkARMInstructions(), checkARMPackedEpilog(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::clear(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::contains(), llvm::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createOr(), llvm::MCContext::createTempSymbol(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitLabel(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), Epilog, FindMatchingEpilog(), getARMOffsetInProlog(), llvm::MCStreamer::getContext(), GetOptionalAbsDifference(), GetSubDivExpr(), I, info, isARMTerminator(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::lookup(), llvm::report_fatal_error(), llvm::MCContext::reportError(), tryARMPackedUnwind(), and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by llvm::Win64EH::ARMUnwindEmitter::Emit(), and llvm::Win64EH::ARMUnwindEmitter::EmitUnwindInfo().
|
static |
Definition at line 302 of file MCWin64EH.cpp.
References End, llvm::MCStreamer::getContext(), GetOptionalAbsDifference(), I, Name, llvm::MCContext::reportError(), llvm::ArrayRef< T >::size(), llvm::Win64EH::UOP_ClearUnwoundToCall, llvm::Win64EH::UOP_Context, llvm::Win64EH::UOP_ECContext, llvm::Win64EH::UOP_PushMachFrame, and llvm::Win64EH::UOP_TrapFrame.
Referenced by ARM64FindSegmentsInFunction().
|
static |
Definition at line 761 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), Epilog, llvm::WinEH::FrameInfo::Segment::Epilogs, getARM64OffsetInProlog(), info, llvm::WinEH::FrameInfo::Segment::Length, llvm::WinEH::FrameInfo::Segment::Offset, llvm::Offset, and Sym.
Referenced by ARM64EmitUnwindInfoForSegment().
|
static |
Definition at line 1561 of file MCWin64EH.cpp.
References ARMCountOfInstructionBytes(), End, llvm::MCStreamer::getContext(), GetOptionalAbsDifference(), Name, and llvm::MCContext::reportError().
Referenced by ARMEmitUnwindInfo().
|
static |
Definition at line 1771 of file MCWin64EH.cpp.
References ARMCountOfInstructionBytes(), ARMCountOfUnwindCodes(), llvm::WinEH::FrameInfo::Epilog::Condition, Epilog, getARMOffsetInProlog(), GetOptionalAbsDifference(), info, llvm::WinEH::FrameInfo::Epilog::Instructions, and llvm::Offset.
Referenced by ARMEmitUnwindInfo().
|
static |
Definition at line 25 of file MCWin64EH.cpp.
References I, llvm_unreachable, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_PushMachFrame, llvm::Win64EH::UOP_PushNonVol, llvm::Win64EH::UOP_SaveNonVol, llvm::Win64EH::UOP_SaveNonVolBig, llvm::Win64EH::UOP_SaveXMM128, llvm::Win64EH::UOP_SaveXMM128Big, and llvm::Win64EH::UOP_SetFPReg.
Referenced by EmitUnwindInfo().
|
static |
Definition at line 53 of file MCWin64EH.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::getContext(), LHS, and RHS.
Referenced by EmitUnwindCode(), and EmitUnwindInfo().
|
static |
Definition at line 154 of file MCWin64EH.cpp.
References llvm::MCSymbolRefExpr::create(), EmitSymbolRefWithOfs(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), llvm::MCStreamer::getContext(), info, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by llvm::Win64EH::UnwindEmitter::Emit(), and EmitUnwindInfo().
|
static |
Definition at line 141 of file MCWin64EH.cpp.
References llvm::sampleprof::Base, llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::MCBinaryExpr::createSub(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::getContext(), Other, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
|
static |
Definition at line 130 of file MCWin64EH.cpp.
References llvm::sampleprof::Base, llvm::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::getContext(), llvm::Offset, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by ARM64EmitRuntimeFunction(), ARMEmitRuntimeFunction(), and EmitRuntimeFunction().
|
static |
Definition at line 62 of file MCWin64EH.cpp.
References llvm::MCSection::begin(), EmitAbsDifference(), llvm::MCStreamer::emitInt16(), llvm::MCStreamer::emitInt8(), llvm::WinEH::Instruction::Label, llvm_unreachable, llvm::WinEH::Instruction::Offset, llvm::WinEH::Instruction::Operation, llvm::WinEH::Instruction::Register, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_PushMachFrame, llvm::Win64EH::UOP_PushNonVol, llvm::Win64EH::UOP_SaveNonVol, llvm::Win64EH::UOP_SaveNonVolBig, llvm::Win64EH::UOP_SaveXMM128, llvm::Win64EH::UOP_SaveXMM128Big, and llvm::Win64EH::UOP_SetFPReg.
Referenced by EmitUnwindInfo().
|
static |
Definition at line 166 of file MCWin64EH.cpp.
References assert(), CountOfUnwindCodes(), llvm::MCSymbolRefExpr::create(), llvm::MCContext::createTempSymbol(), EmitAbsDifference(), llvm::MCStreamer::emitInt16(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitLabel(), EmitRuntimeFunction(), EmitUnwindCode(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), llvm::MCStreamer::getContext(), info, llvm::WinEH::Instruction::Offset, llvm::WinEH::Instruction::Operation, llvm::WinEH::Instruction::Register, llvm::Win64EH::UNW_ChainInfo, llvm::Win64EH::UNW_ExceptionHandler, llvm::Win64EH::UNW_TerminateHandler, llvm::Win64EH::UOP_SetFPReg, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by llvm::Win64EH::UnwindEmitter::EmitUnwindInfo().
|
static |
Definition at line 651 of file MCWin64EH.cpp.
References assert(), info, and llvm::Match.
Referenced by ARM64ProcessEpilogs(), and ARMEmitUnwindInfo().
|
static |
Definition at line 293 of file MCWin64EH.cpp.
References GetOptionalAbsDifference(), LHS, llvm::report_fatal_error(), and RHS.
Referenced by ARM64EmitUnwindInfo(), and ARM64FindSegmentsInFunction().
|
static |
Definition at line 740 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), Epilog, I, and Prolog.
Referenced by ARM64ProcessEpilogs(), and checkARM64PackedEpilog().
|
static |
Definition at line 1735 of file MCWin64EH.cpp.
References ARMCountOfUnwindCodes(), Epilog, I, Prolog, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_EndNop, and llvm::Win64EH::UOP_WideEndNop.
Referenced by ARMEmitUnwindInfo(), and checkARMPackedEpilog().
|
static |
Definition at line 276 of file MCWin64EH.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::MCStreamer::getContext(), LHS, OS, RHS, and value.
Referenced by ARMEmitUnwindInfo(), checkARM64Instructions(), checkARMInstructions(), checkARMPackedEpilog(), GetAbsDifference(), and tryARMPackedUnwind().
|
static |
Definition at line 264 of file MCWin64EH.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createDiv(), llvm::MCBinaryExpr::createSub(), llvm::MCStreamer::getContext(), LHS, and RHS.
Referenced by ARMEmitUnwindInfo().
|
static |
Definition at line 1586 of file MCWin64EH.cpp.
References llvm::WinEH::Instruction::Operation, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_EndNop, and llvm::Win64EH::UOP_WideEndNop.
Referenced by ARMEmitUnwindInfo().
|
static |
Definition at line 1828 of file MCWin64EH.cpp.
References llvm::First, IntRegs, and N.
Referenced by tryARMPackedUnwind().
|
static |
Definition at line 676 of file MCWin64EH.cpp.
References llvm::Reverse, llvm::Win64EH::UOP_AddFP, llvm::Win64EH::UOP_SaveFPLR, llvm::Win64EH::UOP_SaveFPLRX, llvm::Win64EH::UOP_SaveNext, llvm::Win64EH::UOP_SaveR19R20X, llvm::Win64EH::UOP_SaveRegP, llvm::Win64EH::UOP_SaveRegPX, and llvm::Win64EH::UOP_SetFP.
Referenced by ARM64EmitUnwindInfo().
|
static |
Definition at line 804 of file MCWin64EH.cpp.
References assert(), End, H, info, IntRegs, llvm::WinEH::Instruction::Offset, llvm::WinEH::Instruction::Operation, llvm::WinEH::Instruction::Register, llvm::report_fatal_error(), llvm::Win64EH::UOP_AddFP, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocMedium, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_ClearUnwoundToCall, llvm::Win64EH::UOP_Context, llvm::Win64EH::UOP_ECContext, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_PACSignLR, llvm::Win64EH::UOP_PushMachFrame, llvm::Win64EH::UOP_SaveAnyRegD, llvm::Win64EH::UOP_SaveAnyRegDP, llvm::Win64EH::UOP_SaveAnyRegDPX, llvm::Win64EH::UOP_SaveAnyRegDX, llvm::Win64EH::UOP_SaveAnyRegI, llvm::Win64EH::UOP_SaveAnyRegIP, llvm::Win64EH::UOP_SaveAnyRegIPX, llvm::Win64EH::UOP_SaveAnyRegIX, llvm::Win64EH::UOP_SaveAnyRegQ, llvm::Win64EH::UOP_SaveAnyRegQP, llvm::Win64EH::UOP_SaveAnyRegQPX, llvm::Win64EH::UOP_SaveAnyRegQX, llvm::Win64EH::UOP_SaveFPLR, llvm::Win64EH::UOP_SaveFPLRX, llvm::Win64EH::UOP_SaveFReg, llvm::Win64EH::UOP_SaveFRegP, llvm::Win64EH::UOP_SaveFRegPX, llvm::Win64EH::UOP_SaveFRegX, llvm::Win64EH::UOP_SaveLRPair, llvm::Win64EH::UOP_SaveNext, llvm::Win64EH::UOP_SaveR19R20X, llvm::Win64EH::UOP_SaveReg, llvm::Win64EH::UOP_SaveRegP, llvm::Win64EH::UOP_SaveRegPX, llvm::Win64EH::UOP_SaveRegX, llvm::Win64EH::UOP_SetFP, and llvm::Win64EH::UOP_TrapFrame.
Referenced by ARM64EmitUnwindInfoForSegment().
|
static |
Definition at line 1868 of file MCWin64EH.cpp.
References ARMCountOfInstructionBytes(), assert(), llvm::CallingConv::C, llvm::WinEH::FrameInfo::Epilog::Condition, Epilog, GetOptionalAbsDifference(), H, info, llvm::WinEH::FrameInfo::Epilog::Instructions, IntRegs, llvm_unreachable, llvm::WinEH::Instruction::Offset, llvm::WinEH::Instruction::Operation, parseRegMask(), llvm::WinEH::Instruction::Register, llvm::Win64EH::UOP_AllocHuge, llvm::Win64EH::UOP_AllocLarge, llvm::Win64EH::UOP_AllocSmall, llvm::Win64EH::UOP_Custom, llvm::Win64EH::UOP_End, llvm::Win64EH::UOP_EndNop, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_SaveFRegD0D15, llvm::Win64EH::UOP_SaveFRegD16D31, llvm::Win64EH::UOP_SaveFRegD8D15, llvm::Win64EH::UOP_SaveLR, llvm::Win64EH::UOP_SaveRegMask, llvm::Win64EH::UOP_SaveRegsR4R7LR, llvm::Win64EH::UOP_SaveSP, llvm::Win64EH::UOP_WideAllocHuge, llvm::Win64EH::UOP_WideAllocLarge, llvm::Win64EH::UOP_WideAllocMedium, llvm::Win64EH::UOP_WideEndNop, llvm::Win64EH::UOP_WideNop, llvm::Win64EH::UOP_WideSaveRegMask, and llvm::Win64EH::UOP_WideSaveRegsR4R11LR.
Referenced by ARMEmitUnwindInfo().