LLVM API Documentation
#include <MCDwarf.h>
Public Types | |
enum | OpType { OpSameValue, OpRememberState, OpRestoreState, OpOffset, OpDefCfaRegister, OpDefCfaOffset, OpDefCfa, OpRelOffset, OpAdjustCfaOffset, OpEscape, OpRestore, OpUndefined, OpRegister, OpWindowSave } |
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. | |
static MCCFIInstruction | createDefCfaRegister (MCSymbol *L, unsigned Register) |
.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. | |
static MCCFIInstruction | createDefCfaOffset (MCSymbol *L, int Offset) |
.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. | |
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. | |
static MCCFIInstruction | createOffset (MCSymbol *L, unsigned Register, int Offset) |
.cfi_offset Previous value of Register is saved at offset Offset from CFA. | |
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. This is transformed to .cfi_offset using the known displacement of the CFA register from the CFA. | |
static MCCFIInstruction | createRegister (MCSymbol *L, unsigned Register1, unsigned Register2) |
.cfi_register Previous value of Register1 is saved in register Register2. | |
static MCCFIInstruction | createWindowSave (MCSymbol *L) |
.cfi_window_save SPARC register window is saved. | |
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. | |
static MCCFIInstruction | createUndefined (MCSymbol *L, unsigned Register) |
.cfi_undefined From now on the previous value of Register can't be restored anymore. | |
static MCCFIInstruction | createSameValue (MCSymbol *L, unsigned Register) |
.cfi_same_value Current value of Register is the same as in the previous frame. I.e., no restoration is needed. | |
static MCCFIInstruction | createRememberState (MCSymbol *L) |
.cfi_remember_state Save all current rules for all registers. | |
static MCCFIInstruction | createRestoreState (MCSymbol *L) |
.cfi_restore_state Restore the previously saved state. | |
static MCCFIInstruction | createEscape (MCSymbol *L, StringRef Vals) |
.cfi_escape Allows the user to add arbitrary bytes to the unwind info. |
static MCCFIInstruction llvm::MCCFIInstruction::createAdjustCfaOffset | ( | MCSymbol * | L, |
int | Adjustment | ||
) | [inline, static] |
.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 371 of file MCDwarf.h.
References OpAdjustCfaOffset.
Referenced by llvm::MCStreamer::EmitCFIAdjustCfaOffset().
static MCCFIInstruction llvm::MCCFIInstruction::createDefCfa | ( | MCSymbol * | L, |
unsigned | Register, | ||
int | Offset | ||
) | [inline, static] |
.cfi_def_cfa defines a rule for computing CFA as: take address from Register and add Offset to it.
Definition at line 350 of file MCDwarf.h.
References OpDefCfa.
Referenced by createAArch64MCAsmInfo(), createARMMCAsmInfo(), createHexagonMCAsmInfo(), createMipsMCAsmInfo(), createPPCMCAsmInfo(), createSparcMCAsmInfo(), createSparcV9MCAsmInfo(), createSystemZMCAsmInfo(), createX86MCAsmInfo(), createXCoreMCAsmInfo(), llvm::MCStreamer::EmitCFIDefCfa(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::emitPrologue().
static MCCFIInstruction llvm::MCCFIInstruction::createDefCfaOffset | ( | MCSymbol * | L, |
int | Offset | ||
) | [inline, static] |
.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 364 of file MCDwarf.h.
References OpDefCfaOffset.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::MCStreamer::EmitCFIDefCfaOffset(), EmitDefCfaOffset(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), and llvm::SystemZFrameLowering::emitPrologue().
static MCCFIInstruction llvm::MCCFIInstruction::createDefCfaRegister | ( | MCSymbol * | L, |
unsigned | Register | ||
) | [inline, static] |
.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 357 of file MCDwarf.h.
References OpDefCfaRegister.
Referenced by llvm::MCStreamer::EmitCFIDefCfaRegister(), EmitDefCfaRegister(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), and llvm::SystemZFrameLowering::emitPrologue().
static MCCFIInstruction llvm::MCCFIInstruction::createEscape | ( | MCSymbol * | L, |
StringRef | Vals | ||
) | [inline, static] |
.cfi_escape Allows the user to add arbitrary bytes to the unwind info.
Definition at line 433 of file MCDwarf.h.
References OpEscape.
Referenced by llvm::MCStreamer::EmitCFIEscape().
static MCCFIInstruction llvm::MCCFIInstruction::createOffset | ( | MCSymbol * | L, |
unsigned | Register, | ||
int | Offset | ||
) | [inline, static] |
.cfi_offset Previous value of Register is saved at offset Offset from CFA.
Definition at line 377 of file MCDwarf.h.
References OpOffset.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), createX86MCAsmInfo(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), EmitCfiOffset(), llvm::MCStreamer::EmitCFIOffset(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), and llvm::SystemZFrameLowering::emitPrologue().
static MCCFIInstruction llvm::MCCFIInstruction::createRegister | ( | MCSymbol * | L, |
unsigned | Register1, | ||
unsigned | Register2 | ||
) | [inline, static] |
.cfi_register Previous value of Register1 is saved in register Register2.
Definition at line 392 of file MCDwarf.h.
References OpRegister.
Referenced by llvm::MCStreamer::EmitCFIRegister(), and llvm::SparcFrameLowering::emitPrologue().
static MCCFIInstruction llvm::MCCFIInstruction::createRelOffset | ( | MCSymbol * | L, |
unsigned | Register, | ||
int | Offset | ||
) | [inline, static] |
.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 385 of file MCDwarf.h.
References OpRelOffset.
Referenced by llvm::MCStreamer::EmitCFIRelOffset().
static MCCFIInstruction llvm::MCCFIInstruction::createRememberState | ( | MCSymbol * | L | ) | [inline, static] |
.cfi_remember_state Save all current rules for all registers.
Definition at line 422 of file MCDwarf.h.
References OpRememberState.
Referenced by llvm::MCStreamer::EmitCFIRememberState().
static MCCFIInstruction llvm::MCCFIInstruction::createRestore | ( | MCSymbol * | L, |
unsigned | Register | ||
) | [inline, static] |
.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 405 of file MCDwarf.h.
References OpRestore.
Referenced by llvm::MCStreamer::EmitCFIRestore().
static MCCFIInstruction llvm::MCCFIInstruction::createRestoreState | ( | MCSymbol * | L | ) | [inline, static] |
.cfi_restore_state Restore the previously saved state.
Definition at line 427 of file MCDwarf.h.
References OpRestoreState.
Referenced by llvm::MCStreamer::EmitCFIRestoreState().
static MCCFIInstruction llvm::MCCFIInstruction::createSameValue | ( | MCSymbol * | L, |
unsigned | Register | ||
) | [inline, static] |
.cfi_same_value Current value of Register is the same as in the previous frame. I.e., no restoration is needed.
Definition at line 417 of file MCDwarf.h.
References OpSameValue.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), and llvm::MCStreamer::EmitCFISameValue().
static MCCFIInstruction llvm::MCCFIInstruction::createUndefined | ( | MCSymbol * | L, |
unsigned | Register | ||
) | [inline, static] |
.cfi_undefined From now on the previous value of Register can't be restored anymore.
Definition at line 411 of file MCDwarf.h.
References OpUndefined.
Referenced by llvm::MCStreamer::EmitCFIUndefined().
static MCCFIInstruction llvm::MCCFIInstruction::createWindowSave | ( | MCSymbol * | L | ) | [inline, static] |
.cfi_window_save SPARC register window is saved.
Definition at line 398 of file MCDwarf.h.
References OpWindowSave.
Referenced by llvm::MCStreamer::EmitCFIWindowSave(), and llvm::SparcFrameLowering::emitPrologue().
MCSymbol* llvm::MCCFIInstruction::getLabel | ( | ) | const [inline] |
int llvm::MCCFIInstruction::getOffset | ( | ) | const [inline] |
Definition at line 453 of file MCDwarf.h.
References Offset, OpAdjustCfaOffset, OpDefCfa, OpDefCfaOffset, OpOffset, and OpRelOffset.
Referenced by llvm::AsmPrinter::emitCFIInstruction().
OpType llvm::MCCFIInstruction::getOperation | ( | ) | const [inline] |
Definition at line 437 of file MCDwarf.h.
Referenced by llvm::AsmPrinter::emitCFIInstruction().
unsigned llvm::MCCFIInstruction::getRegister | ( | ) | const [inline] |
Definition at line 440 of file MCDwarf.h.
References OpDefCfa, OpDefCfaRegister, OpOffset, OpRegister, OpRelOffset, OpRestore, OpSameValue, and OpUndefined.
Referenced by llvm::AsmPrinter::emitCFIInstruction().
unsigned llvm::MCCFIInstruction::getRegister2 | ( | ) | const [inline] |
Definition at line 448 of file MCDwarf.h.
References OpRegister, and Register2.
Referenced by llvm::AsmPrinter::emitCFIInstruction().
StringRef llvm::MCCFIInstruction::getValues | ( | ) | const [inline] |
Definition at line 331 of file MCDwarf.h.
Referenced by getOffset().
Definition at line 332 of file MCDwarf.h.
Referenced by getRegister2().