LLVM
8.0.1
|
#include "llvm/MC/MCDwarf.h"
Public Types | |
enum | OpType { OpSameValue, OpRememberState, OpRestoreState, OpOffset, OpDefCfaRegister, OpDefCfaOffset, OpDefCfa, OpRelOffset, OpAdjustCfaOffset, OpEscape, OpRestore, OpUndefined, OpRegister, OpWindowSave, OpNegateRAState, OpGnuArgsSize } |
Public Member Functions | |
OpType | getOperation () const |
MCSymbol * | getLabel () const |
unsigned | getRegister () const |
unsigned | getRegister2 () const |
int | getOffset () const |
StringRef | getValues () const |
Static Public Member Functions | |
static MCCFIInstruction | createDefCfa (MCSymbol *L, unsigned Register, int Offset) |
.cfi_def_cfa defines a rule for computing CFA as: take address from Register and add Offset to it. More... | |
static MCCFIInstruction | createDefCfaRegister (MCSymbol *L, unsigned Register) |
.cfi_def_cfa_register modifies a rule for computing CFA. More... | |
static MCCFIInstruction | createDefCfaOffset (MCSymbol *L, int Offset) |
.cfi_def_cfa_offset modifies a rule for computing CFA. More... | |
static MCCFIInstruction | createAdjustCfaOffset (MCSymbol *L, int Adjustment) |
.cfi_adjust_cfa_offset Same as .cfi_def_cfa_offset, but Offset is a relative value that is added/subtracted from the previous offset. More... | |
static MCCFIInstruction | createOffset (MCSymbol *L, unsigned Register, int Offset) |
.cfi_offset Previous value of Register is saved at offset Offset from CFA. More... | |
static MCCFIInstruction | createRelOffset (MCSymbol *L, unsigned Register, int Offset) |
.cfi_rel_offset Previous value of Register is saved at offset Offset from the current CFA register. More... | |
static MCCFIInstruction | createRegister (MCSymbol *L, unsigned Register1, unsigned Register2) |
.cfi_register Previous value of Register1 is saved in register Register2. More... | |
static MCCFIInstruction | createWindowSave (MCSymbol *L) |
.cfi_window_save SPARC register window is saved. More... | |
static MCCFIInstruction | createNegateRAState (MCSymbol *L) |
.cfi_negate_ra_state AArch64 negate RA state. More... | |
static MCCFIInstruction | createRestore (MCSymbol *L, unsigned Register) |
.cfi_restore says that the rule for Register is now the same as it was at the beginning of the function, after all initial instructions added by .cfi_startproc were executed. More... | |
static MCCFIInstruction | createUndefined (MCSymbol *L, unsigned Register) |
.cfi_undefined From now on the previous value of Register can't be restored anymore. More... | |
static MCCFIInstruction | createSameValue (MCSymbol *L, unsigned Register) |
.cfi_same_value Current value of Register is the same as in the previous frame. More... | |
static MCCFIInstruction | createRememberState (MCSymbol *L) |
.cfi_remember_state Save all current rules for all registers. More... | |
static MCCFIInstruction | createRestoreState (MCSymbol *L) |
.cfi_restore_state Restore the previously saved state. More... | |
static MCCFIInstruction | createEscape (MCSymbol *L, StringRef Vals) |
.cfi_escape Allows the user to add arbitrary bytes to the unwind info. More... | |
static MCCFIInstruction | createGnuArgsSize (MCSymbol *L, int Size) |
A special wrapper for .cfi_escape that indicates GNU_ARGS_SIZE. More... | |
|
inlinestatic |
.cfi_adjust_cfa_offset Same as .cfi_def_cfa_offset, but Offset is a relative value that is added/subtracted from the previous offset.
Definition at line 482 of file MCDwarf.h.
Referenced by llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::MCStreamer::EmitCFIAdjustCfaOffset(), ExpandMOVImmSExti8(), and INITIALIZE_PASS().
|
inlinestatic |
.cfi_def_cfa defines a rule for computing CFA as: take address from Register and add Offset to it.
Definition at line 461 of file MCDwarf.h.
Referenced by createAArch64MCAsmInfo(), createARCMCAsmInfo(), createARMMCAsmInfo(), createHexagonMCAsmInfo(), createMipsMCAsmInfo(), createPPCMCAsmInfo(), createSparcMCAsmInfo(), createSparcV9MCAsmInfo(), createSystemZMCAsmInfo(), createX86MCAsmInfo(), createXCoreMCAsmInfo(), llvm::MCStreamer::EmitCFIDefCfa(), llvm::X86FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), INITIALIZE_PASS(), and llvm::HexagonFrameLowering::insertCFIInstructions().
|
inlinestatic |
.cfi_def_cfa_offset modifies a rule for computing CFA.
Register remains the same, but offset is new. Note that it is the absolute offset that will be added to a defined register to the compute CFA address.
Definition at line 475 of file MCDwarf.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::MCStreamer::EmitCFIDefCfaOffset(), EmitDefCfaOffset(), llvm::X86FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), INITIALIZE_PASS(), and WindowsRequiresStackProbe().
|
inlinestatic |
.cfi_def_cfa_register modifies a rule for computing CFA.
From now on Register will be used instead of the old one. Offset remains the same.
Definition at line 468 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIDefCfaRegister(), EmitDefCfaRegister(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), and INITIALIZE_PASS().
|
inlinestatic |
.cfi_escape Allows the user to add arbitrary bytes to the unwind info.
Definition at line 549 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIEscape(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inlinestatic |
A special wrapper for .cfi_escape that indicates GNU_ARGS_SIZE.
Definition at line 554 of file MCDwarf.h.
Referenced by llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), and llvm::MCStreamer::EmitCFIGnuArgsSize().
|
inlinestatic |
.cfi_negate_ra_state AArch64 negate RA state.
Definition at line 514 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFINegateRAState(), and llvm::AArch64FrameLowering::emitPrologue().
|
inlinestatic |
.cfi_offset Previous value of Register is saved at offset Offset from CFA.
Definition at line 488 of file MCDwarf.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::AArch64InstrInfo::buildOutlinedFrame(), createX86MCAsmInfo(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), EmitCfiOffset(), llvm::MCStreamer::EmitCFIOffset(), llvm::Mips16FrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), and llvm::HexagonFrameLowering::insertCFIInstructions().
|
inlinestatic |
.cfi_register Previous value of Register1 is saved in register Register2.
Definition at line 503 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIRegister(), llvm::SparcFrameLowering::emitPrologue(), and llvm::PPCFrameLowering::emitPrologue().
|
inlinestatic |
.cfi_rel_offset Previous value of Register is saved at offset Offset from the current CFA register.
This is transformed to .cfi_offset using the known displacement of the CFA register from the CFA.
Definition at line 496 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIRelOffset().
|
inlinestatic |
.cfi_remember_state Save all current rules for all registers.
Definition at line 538 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIRememberState().
|
inlinestatic |
.cfi_restore says that the rule for Register is now the same as it was at the beginning of the function, after all initial instructions added by .cfi_startproc were executed.
Definition at line 521 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIRestore().
|
inlinestatic |
.cfi_restore_state Restore the previously saved state.
Definition at line 543 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIRestoreState().
|
inlinestatic |
.cfi_same_value Current value of Register is the same as in the previous frame.
I.e., no restoration is needed.
Definition at line 533 of file MCDwarf.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), and llvm::MCStreamer::EmitCFISameValue().
|
inlinestatic |
.cfi_undefined From now on the previous value of Register can't be restored anymore.
Definition at line 527 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIUndefined().
|
inlinestatic |
.cfi_window_save SPARC register window is saved.
Definition at line 509 of file MCDwarf.h.
Referenced by llvm::MCStreamer::EmitCFIWindowSave(), and llvm::SparcFrameLowering::emitPrologue().
|
inline |
Definition at line 559 of file MCDwarf.h.
Referenced by emitEncodingByte(), and printCFI().
|
inline |
Definition at line 574 of file MCDwarf.h.
References assert().
Referenced by llvm::AsmPrinter::emitCFIInstruction(), emitEncodingByte(), llvm::ARMAsmBackendDarwin::generateCompactUnwindEncoding(), INITIALIZE_PASS(), and printCFI().
|
inline |
Definition at line 558 of file MCDwarf.h.
References Operation.
Referenced by llvm::AsmPrinter::emitCFIInstruction(), emitEncodingByte(), llvm::ARMAsmBackendDarwin::generateCompactUnwindEncoding(), INITIALIZE_PASS(), and printCFI().
|
inline |
Definition at line 561 of file MCDwarf.h.
References assert(), and Register.
Referenced by llvm::AsmPrinter::emitCFIInstruction(), emitEncodingByte(), llvm::ARMAsmBackendDarwin::generateCompactUnwindEncoding(), INITIALIZE_PASS(), and printCFI().
|
inline |
Definition at line 569 of file MCDwarf.h.
References assert().
Referenced by llvm::AsmPrinter::emitCFIInstruction(), emitEncodingByte(), and printCFI().
|
inline |
Definition at line 581 of file MCDwarf.h.
References assert().
Referenced by llvm::AsmPrinter::emitCFIInstruction(), emitEncodingByte(), and printCFI().