LLVM
15.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 | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
|
static |
Definition at line 269 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_End, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_PushMachFrame, 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(), checkPackedEpilog(), and getOffsetInProlog().
|
static |
Definition at line 1105 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 354 of file MCWin64EH.cpp.
References assert(), b, llvm::MCStreamer::emitInt8(), llvm_unreachable, llvm::WinEH::Instruction::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_End, llvm::Win64EH::UOP_Nop, llvm::Win64EH::UOP_PushMachFrame, 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().
|
static |
Definition at line 905 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), ARM64EmitUnwindCode(), assert(), c, checkPackedEpilog(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::clear(), llvm::MCSymbolRefExpr::create(), llvm::MCContext::createTempSymbol(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitLabel(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::emitValueToAlignment(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::end(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::find(), FindMatchingEpilog(), GetAbsDifference(), llvm::MCStreamer::getContext(), getOffsetInProlog(), i, I, info, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::lookup(), llvm::report_fatal_error(), llvm::MCContext::reportError(), simplifyOpcodes(), tryPackedUnwind(), and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by llvm::Win64EH::ARM64UnwindEmitter::Emit(), and llvm::Win64EH::ARM64UnwindEmitter::EmitUnwindInfo().
|
static |
Definition at line 629 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), Epilog, GetAbsDifference(), getOffsetInProlog(), info, and Offset.
Referenced by ARM64EmitUnwindInfo().
|
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 Context, llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::getContext(), LHS, and RHS.
Referenced by EmitUnwindCode(), and EmitUnwindInfo().
|
static |
Definition at line 143 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 130 of file MCWin64EH.cpp.
References llvm::sampleprof::Base, Context, llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::MCBinaryExpr::createSub(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::getContext(), Other, and llvm::MCSymbolRefExpr::VK_COFF_IMGREL32.
Referenced by ARM64EmitRuntimeFunction(), and EmitRuntimeFunction().
|
static |
Definition at line 62 of file MCWin64EH.cpp.
References b2, llvm::sys::path::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 155 of file MCWin64EH.cpp.
References assert(), c, 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 521 of file MCWin64EH.cpp.
References assert(), i, info, and llvm::Match.
Referenced by ARM64EmitUnwindInfo().
|
static |
Definition at line 253 of file MCWin64EH.cpp.
References Context, llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::MCObjectStreamer::getAssembler(), llvm::MCStreamer::getContext(), LHS, llvm::report_fatal_error(), and RHS.
Referenced by ARM64EmitUnwindInfo(), and checkPackedEpilog().
|
static |
Definition at line 609 of file MCWin64EH.cpp.
References ARM64CountOfUnwindCodes(), Epilog, I, and Prolog.
Referenced by ARM64EmitUnwindInfo(), and checkPackedEpilog().
|
static |
Definition at line 546 of file MCWin64EH.cpp.
References Instructions, 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 670 of file MCWin64EH.cpp.
References info, and llvm::Win64EH::UOP_SetFP.
Referenced by ARM64EmitUnwindInfo().