LLVM: llvm::MCCFIInstruction Class Reference (original) (raw)

#include "[llvm/MC/MCDwarf.h](MCDwarf%5F8h%5Fsource.html)"

Public Types
enum OpType : uint8_t { OpSameValue, OpRememberState, OpRestoreState, OpOffset, OpLLVMDefAspaceCfa, OpDefCfaRegister, OpDefCfaOffset, OpDefCfa, OpRelOffset, OpAdjustCfaOffset, OpEscape, OpRestore, OpUndefined, OpRegister, OpWindowSave, OpNegateRAState, OpNegateRAStateWithPC, OpGnuArgsSize, OpLabel, OpValOffset }
Public Member Functions
OpType getOperation () const
MCSymbol * getLabel () const
unsigned getRegister () const
unsigned getRegister2 () const
unsigned getAddressSpace () const
int64_t getOffset () const
MCSymbol * getCfiLabel () const
StringRef getValues () const
StringRef getComment () const
SMLoc getLoc () const
Static Public Member Functions
static MCCFIInstruction cfiDefCfa (MCSymbol *L, unsigned Register, int64_t Offset, SMLoc Loc={})
.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, SMLoc Loc={})
.cfi_def_cfa_register modifies a rule for computing CFA.
static MCCFIInstruction cfiDefCfaOffset (MCSymbol *L, int64_t Offset, SMLoc Loc={})
.cfi_def_cfa_offset modifies a rule for computing CFA.
static MCCFIInstruction createAdjustCfaOffset (MCSymbol *L, int64_t Adjustment, SMLoc Loc={})
.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 createLLVMDefAspaceCfa (MCSymbol *L, unsigned Register, int64_t Offset, unsigned AddressSpace, SMLoc Loc)
.cfi_llvm_def_aspace_cfa defines the rule for computing the CFA to be the result of evaluating the DWARF operation expression DW_OP_constu AS; DW_OP_aspace_bregx R, B as a location description.
static MCCFIInstruction createOffset (MCSymbol *L, unsigned Register, int64_t Offset, SMLoc Loc={})
.cfi_offset Previous value of Register is saved at offset Offset from CFA.
static MCCFIInstruction createRelOffset (MCSymbol *L, unsigned Register, int64_t Offset, SMLoc Loc={})
.cfi_rel_offset Previous value of Register is saved at offset Offset from the current CFA register.
static MCCFIInstruction createRegister (MCSymbol *L, unsigned Register1, unsigned Register2, SMLoc Loc={})
.cfi_register Previous value of Register1 is saved in register Register2.
static MCCFIInstruction createWindowSave (MCSymbol *L, SMLoc Loc={})
.cfi_window_save SPARC register window is saved.
static MCCFIInstruction createNegateRAState (MCSymbol *L, SMLoc Loc={})
.cfi_negate_ra_state AArch64 negate RA state.
static MCCFIInstruction createNegateRAStateWithPC (MCSymbol *L, SMLoc Loc={})
.cfi_negate_ra_state_with_pc AArch64 negate RA state with PC.
static MCCFIInstruction createRestore (MCSymbol *L, unsigned Register, SMLoc Loc={})
.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, SMLoc Loc={})
.cfi_undefined From now on the previous value of Register can't be restored anymore.
static MCCFIInstruction createSameValue (MCSymbol *L, unsigned Register, SMLoc Loc={})
.cfi_same_value Current value of Register is the same as in the previous frame.
static MCCFIInstruction createRememberState (MCSymbol *L, SMLoc Loc={})
.cfi_remember_state Save all current rules for all registers.
static MCCFIInstruction createRestoreState (MCSymbol *L, SMLoc Loc={})
.cfi_restore_state Restore the previously saved state.
static MCCFIInstruction createEscape (MCSymbol *L, StringRef Vals, SMLoc Loc={}, StringRef Comment="")
.cfi_escape Allows the user to add arbitrary bytes to the unwind info.
static MCCFIInstruction createGnuArgsSize (MCSymbol *L, int64_t Size, SMLoc Loc={})
A special wrapper for .cfi_escape that indicates GNU_ARGS_SIZE.
static MCCFIInstruction createLabel (MCSymbol *L, MCSymbol *CfiLabel, SMLoc Loc)
static MCCFIInstruction createValOffset (MCSymbol *L, unsigned Register, int64_t Offset, SMLoc Loc={})
.cfi_val_offset Previous value of Register is offset Offset from the current CFA register.

Definition at line 509 of file MCDwarf.h.

OpType

Enumerator
OpSameValue
OpRememberState
OpRestoreState
OpOffset
OpLLVMDefAspaceCfa
OpDefCfaRegister
OpDefCfaOffset
OpDefCfa
OpRelOffset
OpAdjustCfaOffset
OpEscape
OpRestore
OpUndefined
OpRegister
OpWindowSave
OpNegateRAState
OpNegateRAStateWithPC
OpGnuArgsSize
OpLabel
OpValOffset

Definition at line 511 of file MCDwarf.h.

cfiDefCfa()

.cfi_def_cfa defines a rule for computing CFA as: take address from Register and add Offset to it.

Definition at line 585 of file MCDwarf.h.

References Offset, and Register.

Referenced by llvm::CFIInstBuilder::buildDefCFA(), createAArch64MCAsmInfo(), createARCMCAsmInfo(), createARMMCAsmInfo(), createCSKYMCAsmInfo(), llvm::createDefCFA(), createHexagonMCAsmInfo(), createLoongArchMCAsmInfo(), createM68kMCAsmInfo(), createMSP430MCAsmInfo(), createPPCMCAsmInfo(), createRISCVMCAsmInfo(), createSparcMCAsmInfo(), createSparcV9MCAsmInfo(), createSystemZMCAsmInfo(), createVEMCAsmInfo(), createX86MCAsmInfo(), createXCoreMCAsmInfo(), llvm::MCStreamer::emitCFIDefCfa(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::XtensaFrameLowering::emitPrologue(), and llvm::PPCFrameLowering::inlineStackProbe().

cfiDefCfaOffset()

.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 600 of file MCDwarf.h.

References Offset.

Referenced by buildCFAOffs(), llvm::CFIInstBuilder::buildDefCFAOffset(), llvm::createDefCFA(), llvm::MCStreamer::emitCFIDefCfaOffset(), EmitDefCfaOffset(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitPrologue(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::M68kFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), and llvm::XtensaFrameLowering::emitPrologue().

createAdjustCfaOffset()

createDefCfaRegister()

.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 592 of file MCDwarf.h.

References Register.

Referenced by buildDefCFAReg(), llvm::CFIInstBuilder::buildDefCFARegister(), createMipsMCAsmInfo(), llvm::MCStreamer::emitCFIDefCfaRegister(), EmitDefCfaRegister(), llvm::CSKYFrameLowering::emitPrologue(), llvm::M68kFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::XtensaFrameLowering::emitPrologue(), and llvm::PPCFrameLowering::inlineStackProbe().

createEscape()

createGnuArgsSize()

createLabel()

createLLVMDefAspaceCfa()

createNegateRAState()

createNegateRAStateWithPC()

createOffset()

.cfi_offset Previous value of Register is saved at offset Offset from CFA.

Definition at line 627 of file MCDwarf.h.

References Offset, and Register.

Referenced by llvm::CFIInstBuilder::buildOffset(), llvm::createCFAOffset(), createM68kMCAsmInfo(), createMSP430MCAsmInfo(), createX86MCAsmInfo(), llvm::DWARFCFIAnalysis::DWARFCFIAnalysis(), llvm::MSP430FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMovesFullCFA(), EmitCfiOffset(), llvm::MCStreamer::emitCFIOffset(), llvm::ARCFrameLowering::emitPrologue(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::M68kFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), and llvm::XtensaFrameLowering::emitPrologue().

createRegister()

createRelOffset()

createRememberState()

createRestore()

createRestoreState()

createSameValue()

createUndefined()

createValOffset()

createWindowSave()

getAddressSpace()

unsigned llvm::MCCFIInstruction::getAddressSpace ( ) const inline

getCfiLabel()

MCSymbol * llvm::MCCFIInstruction::getCfiLabel ( ) const inline

getComment()

StringRef llvm::MCCFIInstruction::getComment ( ) const inline

getLabel()

MCSymbol * llvm::MCCFIInstruction::getLabel ( ) const inline

getLoc()

SMLoc llvm::MCCFIInstruction::getLoc ( ) const inline

getOffset()

int64_t llvm::MCCFIInstruction::getOffset ( ) const inline

getOperation()

OpType llvm::MCCFIInstruction::getOperation ( ) const inline

getRegister()

unsigned llvm::MCCFIInstruction::getRegister ( ) const inline

Definition at line 723 of file MCDwarf.h.

References assert(), OpDefCfa, OpDefCfaRegister, OpLLVMDefAspaceCfa, OpOffset, OpRegister, OpRelOffset, OpRestore, OpSameValue, OpUndefined, and OpValOffset.

Referenced by llvm::AsmPrinter::emitCFIInstruction(), and printCFI().

getRegister2()

unsigned llvm::MCCFIInstruction::getRegister2 ( ) const inline

getValues()

StringRef llvm::MCCFIInstruction::getValues ( ) const inline

AddressSpace

unsigned llvm::MCCFIInstruction::AddressSpace

CfiLabel

MCSymbol* llvm::MCCFIInstruction::CfiLabel

Offset

int64_t llvm::MCCFIInstruction::Offset

Register

unsigned llvm::MCCFIInstruction::Register

Register2

unsigned llvm::MCCFIInstruction::Register2

[struct]

struct { ... } llvm::MCCFIInstruction::RI

[struct]

struct { ... } llvm::MCCFIInstruction::RIA

[struct]

struct { ... } llvm::MCCFIInstruction::RR


The documentation for this class was generated from the following file: