class X86AsmPrinter

Declaration

class X86AsmPrinter : public AsmPrinter { /* full declaration omitted */ };

Description

This class is intended to be used as a driving class for all asm writers.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:27

Inherits from: AsmPrinter

Member Variables

private const llvm::X86Subtarget* Subtarget = nullptr
private llvm::StackMaps SM
private llvm::FaultMaps FM
private std::unique_ptr<MCCodeEmitter> CodeEmitter
private bool EmitFPOData = false
private bool ShouldEmitWeakSwiftAsyncExtendedFramePointerFlags = false
private llvm::X86AsmPrinter::StackMapShadowTracker SMShadowTracker

Inherited from AsmPrinter:

public TM
public MAI
public OutContext
public OutStreamer
public MF = nullptr
public MMI = nullptr
public MDT = nullptr
public MLI = nullptr
public ORE
public CurrentPatchableFunctionEntrySym = nullptr
public CurrentFnSym = nullptr
public CurrentFnDescSym = nullptr
public CurrentFnSymForSize = nullptr
public MBBSectionRanges
public GlobalGOTEquivs
protected CurrentFnBegin = nullptr
protected Handlers
protected NumUserHandlers = 0
public Sleds

Method Overview

Inherited from AsmPrinter:

Inherited from MachineFunctionPass:

Inherited from FunctionPass:

Inherited from Pass:

Methods

void EmitAndCountInstruction(llvm::MCInst& Inst)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:81

Parameters

llvm::MCInst& Inst

void EmitSEHInstruction(
    const llvm::MachineInstr* MI)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:105

Parameters

const llvm::MachineInstr* MI

void LowerASAN_CHECK_MEMACCESS(
    const llvm::MachineInstr& MI)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:102

Parameters

const llvm::MachineInstr& MI

void LowerFAULTING_OP(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:85

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerFENTRY_CALL(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:99

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHABLE_EVENT_CALL(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:95

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHABLE_FUNCTION_ENTER(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:91

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHABLE_OP(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:86

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHABLE_RET(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:93

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHABLE_TAIL_CALL(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:94

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHABLE_TYPED_EVENT_CALL(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:96

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerPATCHPOINT(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:83

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerSTACKMAP(const llvm::MachineInstr& MI)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:82

Parameters

const llvm::MachineInstr& MI

void LowerSTATEPOINT(
    const llvm::MachineInstr& MI,
    (anonymous namespace)::X86MCInstLower& MCIL)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:84

Parameters

const llvm::MachineInstr& MI
(anonymous namespace)::X86MCInstLower& MCIL

void LowerTlsAddr(
    (anonymous namespace)::X86MCInstLower&
        MCInstLowering,
    const llvm::MachineInstr& MI)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:88

Parameters

(anonymous namespace)::X86MCInstLower& MCInstLowering
const llvm::MachineInstr& MI

bool PrintAsmMemoryOperand(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    const char* ExtraCode,
    llvm::raw_ostream& O)

Description

Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant as an address. Targets should override this to format as appropriate. This method can return true if the operand is erroneous.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:138

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
const char* ExtraCode
llvm::raw_ostream& O

bool PrintAsmOperand(const llvm::MachineInstr* MI,
                     unsigned int OpNo,
                     const char* ExtraCode,
                     llvm::raw_ostream& O)

Description

Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant. Targets should override this to format as appropriate. This method can return true if the operand is erroneous.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:136

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
const char* ExtraCode
llvm::raw_ostream& O

void PrintIntelMemReference(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    llvm::raw_ostream& O,
    const char* Modifier)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:116

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
llvm::raw_ostream& O
const char* Modifier

void PrintLeaMemReference(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    llvm::raw_ostream& O,
    const char* Modifier)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:112

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
llvm::raw_ostream& O
const char* Modifier

void PrintMemReference(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    llvm::raw_ostream& O,
    const char* Modifier)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:114

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
llvm::raw_ostream& O
const char* Modifier

void PrintModifiedOperand(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    llvm::raw_ostream& O,
    const char* Modifier)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:109

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
llvm::raw_ostream& O
const char* Modifier

void PrintOperand(const llvm::MachineInstr* MI,
                  unsigned int OpNo,
                  llvm::raw_ostream& O)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:108

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
llvm::raw_ostream& O

void PrintPCRelImm(const llvm::MachineInstr* MI,
                   unsigned int OpNo,
                   llvm::raw_ostream& O)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:111

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
llvm::raw_ostream& O

void PrintSymbolOperand(
    const llvm::MachineOperand& MO,
    llvm::raw_ostream& O)

Description

Print the MachineOperand as a symbol. Targets with complex handling of symbol references should override the base implementation.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:107

Parameters

const llvm::MachineOperand& MO
llvm::raw_ostream& O

X86AsmPrinter(
    llvm::TargetMachine& TM,
    std::unique_ptr<MCStreamer> Streamer)

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:120

Parameters

llvm::TargetMachine& TM
std::unique_ptr<MCStreamer> Streamer

bool doInitialization(llvm::Module& M)

Description

Set up the AsmPrinter when we are working on a new module. If your pass overrides this, it must make sure to explicitly call this implementation.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:141

Parameters

llvm::Module& M

void emitBasicBlockEnd(
    const llvm::MachineBasicBlock& MBB)

Description

Targets can override this to emit stuff at the end of a basic block.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:134

Parameters

const llvm::MachineBasicBlock& MBB

void emitEndOfAsmFile(llvm::Module& M)

Description

This virtual method can be overridden by targets that want to emit something at the end of their file.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:130

Parameters

llvm::Module& M

void emitFunctionBodyEnd()

Description

Targets can override this to emit stuff after the last basic block in the function.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:150

void emitFunctionBodyStart()

Description

Targets can override this to emit stuff before the first basic block in the function.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:149

void emitInstruction(const llvm::MachineInstr* MI)

Description

Targets should implement this to emit instructions.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:132

Parameters

const llvm::MachineInstr* MI

void emitStartOfAsmFile(llvm::Module& M)

Description

This virtual method can be overridden by targets that want to emit something at the start of their file.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:128

Parameters

llvm::Module& M

llvm::StringRef getPassName() const

Description

getPassName - Return a nice clean name for a pass. This usually implemented in terms of the name that is registered by one of the Registration templates, but can be overloaded directly.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:122

const llvm::X86Subtarget& getSubtarget() const

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:126

bool runOnMachineFunction(
    llvm::MachineFunction& MF)

Description

Emit the specified function out to the OutStreamer.

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:148

Parameters

llvm::MachineFunction& MF

bool shouldEmitWeakSwiftAsyncExtendedFramePointerFlags()
    const

Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:152