class MCCFIInstruction

Declaration

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

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

Member Variables

private llvm::MCCFIInstruction::OpType Operation
private llvm::MCSymbol* Label
private unsigned int Register
private anonymous struct / union
private unsigned int AddressSpace
private std::vector<char> Values
private std::string Comment

Method Overview

  • private MCCFIInstruction(llvm::MCCFIInstruction::OpType Op, llvm::MCSymbol * L, unsigned int R1, unsigned int R2)
  • private MCCFIInstruction(llvm::MCCFIInstruction::OpType Op, llvm::MCSymbol * L, unsigned int R, int O, unsigned int AS)
  • private MCCFIInstruction(llvm::MCCFIInstruction::OpType Op, llvm::MCSymbol * L, unsigned int R, int O, llvm::StringRef V, llvm::StringRef Comment = "")
  • public static llvm::MCCFIInstruction cfiDefCfa(llvm::MCSymbol * L, unsigned int Register, int Offset)
  • public static llvm::MCCFIInstruction cfiDefCfaOffset(llvm::MCSymbol * L, int Offset)
  • public static llvm::MCCFIInstruction createAdjustCfaOffset(llvm::MCSymbol * L, int Adjustment)
  • public static llvm::MCCFIInstruction createDefCfaRegister(llvm::MCSymbol * L, unsigned int Register)
  • public static llvm::MCCFIInstruction createEscape(llvm::MCSymbol * L, llvm::StringRef Vals, llvm::StringRef Comment = "")
  • public static llvm::MCCFIInstruction createGnuArgsSize(llvm::MCSymbol * L, int Size)
  • public static llvm::MCCFIInstruction createLLVMDefAspaceCfa(llvm::MCSymbol * L, unsigned int Register, int Offset, unsigned int AddressSpace)
  • 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 unsigned int getAddressSpace() const
  • public llvm::StringRef getComment() const
  • 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

MCCFIInstruction(
    llvm::MCCFIInstruction::OpType Op,
    llvm::MCSymbol* L,
    unsigned int R1,
    unsigned int R2)

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

Parameters

llvm::MCCFIInstruction::OpType Op
llvm::MCSymbol* L
unsigned int R1
unsigned int R2

MCCFIInstruction(
    llvm::MCCFIInstruction::OpType Op,
    llvm::MCSymbol* L,
    unsigned int R,
    int O,
    unsigned int AS)

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

Parameters

llvm::MCCFIInstruction::OpType Op
llvm::MCSymbol* L
unsigned int R
int O
unsigned int AS

MCCFIInstruction(
    llvm::MCCFIInstruction::OpType Op,
    llvm::MCSymbol* L,
    unsigned int R,
    int O,
    llvm::StringRef V,
    llvm::StringRef Comment = "")

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

Parameters

llvm::MCCFIInstruction::OpType Op
llvm::MCSymbol* L
unsigned int R
int O
llvm::StringRef V
llvm::StringRef Comment = ""

static llvm::MCCFIInstruction cfiDefCfa(
    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:532

Parameters

llvm::MCSymbol* L
unsigned int Register
int Offset

static llvm::MCCFIInstruction cfiDefCfaOffset(
    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:546

Parameters

llvm::MCSymbol* L
int Offset

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:553

Parameters

llvm::MCSymbol* L
int Adjustment

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:539

Parameters

llvm::MCSymbol* L
unsigned int Register

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

Description

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

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

Parameters

llvm::MCSymbol* L
llvm::StringRef Vals
llvm::StringRef Comment = ""

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:637

Parameters

llvm::MCSymbol* L
int Size

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

Description

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

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

Parameters

llvm::MCSymbol* L
unsigned int Register
int Offset
unsigned int AddressSpace

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

Description

.cfi_negate_ra_state AArch64 negate RA state.

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

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:570

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:585

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:578

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:620

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:603

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:625

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:615

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:609

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:591

Parameters

llvm::MCSymbol* L

unsigned int getAddressSpace() const

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

llvm::StringRef getComment() const

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

llvm::MCSymbol* getLabel() const

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

int getOffset() const

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

llvm::MCCFIInstruction::OpType getOperation()
    const

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

unsigned int getRegister() const

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

unsigned int getRegister2() const

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

llvm::StringRef getValues() const

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