class MCCFIInstruction

Declaration

class MCCFIInstruction { /* full declaration omitted */ };

Declared at: llvm/include/llvm/MC/MCDwarf.h:435

Method Overview

  • public static llvm::MCCFIInstruction createAdjustCfaOffset(llvm::MCSymbol * L, int Adjustment)
  • public static llvm::MCCFIInstruction createDefCfa(llvm::MCSymbol * L, unsigned int Register, int Offset)
  • public static llvm::MCCFIInstruction createDefCfaOffset(llvm::MCSymbol * L, int Offset)
  • public static llvm::MCCFIInstruction createDefCfaRegister(llvm::MCSymbol * L, unsigned int Register)
  • public static llvm::MCCFIInstruction createEscape(llvm::MCSymbol * L, llvm::StringRef Vals)
  • public static llvm::MCCFIInstruction createGnuArgsSize(llvm::MCSymbol * L, int Size)
  • public static llvm::MCCFIInstruction createNegateRAState(llvm::MCSymbol * L)
  • public static llvm::MCCFIInstruction createOffset(llvm::MCSymbol * L, unsigned int Register, int Offset)
  • public static llvm::MCCFIInstruction createRegister(llvm::MCSymbol * L, unsigned int Register1, unsigned int Register2)
  • public static llvm::MCCFIInstruction createRelOffset(llvm::MCSymbol * L, unsigned int Register, int Offset)
  • public static llvm::MCCFIInstruction createRememberState(llvm::MCSymbol * L)
  • public static llvm::MCCFIInstruction createRestore(llvm::MCSymbol * L, unsigned int Register)
  • public static llvm::MCCFIInstruction createRestoreState(llvm::MCSymbol * L)
  • public static llvm::MCCFIInstruction createSameValue(llvm::MCSymbol * L, unsigned int Register)
  • public static llvm::MCCFIInstruction createUndefined(llvm::MCSymbol * L, unsigned int Register)
  • public static llvm::MCCFIInstruction createWindowSave(llvm::MCSymbol * L)
  • public llvm::MCSymbol * getLabel() const
  • public int getOffset() const
  • public llvm::MCCFIInstruction::OpType getOperation() const
  • public unsigned int getRegister() const
  • public unsigned int getRegister2() const
  • public llvm::StringRef getValues() const

Methods

static llvm::MCCFIInstruction
createAdjustCfaOffset(llvm::MCSymbol* L,
                      int Adjustment)

Description

.cfi_adjust_cfa_offset Same as .cfi_def_cfa_offset, but Offset is a relative value that is added/subtracted from the previous offset.

Declared at: llvm/include/llvm/MC/MCDwarf.h:501

Parameters

llvm::MCSymbol* L
int Adjustment

static llvm::MCCFIInstruction createDefCfa(
    llvm::MCSymbol* L,
    unsigned int Register,
    int Offset)

Description

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

Declared at: llvm/include/llvm/MC/MCDwarf.h:480

Parameters

llvm::MCSymbol* L
unsigned int Register
int Offset

static llvm::MCCFIInstruction createDefCfaOffset(
    llvm::MCSymbol* L,
    int Offset)

Description

.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.

Declared at: llvm/include/llvm/MC/MCDwarf.h:494

Parameters

llvm::MCSymbol* L
int Offset

static llvm::MCCFIInstruction
createDefCfaRegister(llvm::MCSymbol* L,
                     unsigned int Register)

Description

.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.

Declared at: llvm/include/llvm/MC/MCDwarf.h:487

Parameters

llvm::MCSymbol* L
unsigned int Register

static llvm::MCCFIInstruction createEscape(
    llvm::MCSymbol* L,
    llvm::StringRef Vals)

Description

.cfi_escape Allows the user to add arbitrary bytes to the unwind info.

Declared at: llvm/include/llvm/MC/MCDwarf.h:568

Parameters

llvm::MCSymbol* L
llvm::StringRef Vals

static llvm::MCCFIInstruction createGnuArgsSize(
    llvm::MCSymbol* L,
    int Size)

Description

A special wrapper for .cfi_escape that indicates GNU_ARGS_SIZE

Declared at: llvm/include/llvm/MC/MCDwarf.h:573

Parameters

llvm::MCSymbol* L
int Size

static llvm::MCCFIInstruction createNegateRAState(
    llvm::MCSymbol* L)

Description

.cfi_negate_ra_state AArch64 negate RA state.

Declared at: llvm/include/llvm/MC/MCDwarf.h:533

Parameters

llvm::MCSymbol* L

static llvm::MCCFIInstruction createOffset(
    llvm::MCSymbol* L,
    unsigned int Register,
    int Offset)

Description

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

Declared at: llvm/include/llvm/MC/MCDwarf.h:507

Parameters

llvm::MCSymbol* L
unsigned int Register
int Offset

static llvm::MCCFIInstruction createRegister(
    llvm::MCSymbol* L,
    unsigned int Register1,
    unsigned int Register2)

Description

.cfi_register Previous value of Register1 is saved in register Register2.

Declared at: llvm/include/llvm/MC/MCDwarf.h:522

Parameters

llvm::MCSymbol* L
unsigned int Register1
unsigned int Register2

static llvm::MCCFIInstruction createRelOffset(
    llvm::MCSymbol* L,
    unsigned int Register,
    int Offset)

Description

.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.

Declared at: llvm/include/llvm/MC/MCDwarf.h:515

Parameters

llvm::MCSymbol* L
unsigned int Register
int Offset

static llvm::MCCFIInstruction createRememberState(
    llvm::MCSymbol* L)

Description

.cfi_remember_state Save all current rules for all registers.

Declared at: llvm/include/llvm/MC/MCDwarf.h:557

Parameters

llvm::MCSymbol* L

static llvm::MCCFIInstruction createRestore(
    llvm::MCSymbol* L,
    unsigned int Register)

Description

.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.

Declared at: llvm/include/llvm/MC/MCDwarf.h:540

Parameters

llvm::MCSymbol* L
unsigned int Register

static llvm::MCCFIInstruction createRestoreState(
    llvm::MCSymbol* L)

Description

.cfi_restore_state Restore the previously saved state.

Declared at: llvm/include/llvm/MC/MCDwarf.h:562

Parameters

llvm::MCSymbol* L

static llvm::MCCFIInstruction createSameValue(
    llvm::MCSymbol* L,
    unsigned int Register)

Description

.cfi_same_value Current value of Register is the same as in the previous frame. I.e., no restoration is needed.

Declared at: llvm/include/llvm/MC/MCDwarf.h:552

Parameters

llvm::MCSymbol* L
unsigned int Register

static llvm::MCCFIInstruction createUndefined(
    llvm::MCSymbol* L,
    unsigned int Register)

Description

.cfi_undefined From now on the previous value of Register can't be restored anymore.

Declared at: llvm/include/llvm/MC/MCDwarf.h:546

Parameters

llvm::MCSymbol* L
unsigned int Register

static llvm::MCCFIInstruction createWindowSave(
    llvm::MCSymbol* L)

Description

.cfi_window_save SPARC register window is saved.

Declared at: llvm/include/llvm/MC/MCDwarf.h:528

Parameters

llvm::MCSymbol* L

llvm::MCSymbol* getLabel() const

Declared at: llvm/include/llvm/MC/MCDwarf.h:578

int getOffset() const

Declared at: llvm/include/llvm/MC/MCDwarf.h:593

llvm::MCCFIInstruction::OpType getOperation()
    const

Declared at: llvm/include/llvm/MC/MCDwarf.h:577

unsigned int getRegister() const

Declared at: llvm/include/llvm/MC/MCDwarf.h:580

unsigned int getRegister2() const

Declared at: llvm/include/llvm/MC/MCDwarf.h:588

llvm::StringRef getValues() const

Declared at: llvm/include/llvm/MC/MCDwarf.h:600