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
- private void EmitAndCountInstruction(llvm::MCInst & Inst)
- private void EmitSEHInstruction(const llvm::MachineInstr * MI)
- private void LowerASAN_CHECK_MEMACCESS(const llvm::MachineInstr & MI)
- private void LowerFAULTING_OP(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerFENTRY_CALL(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHABLE_EVENT_CALL(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHABLE_FUNCTION_ENTER(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHABLE_OP(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHABLE_RET(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHABLE_TAIL_CALL(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHABLE_TYPED_EVENT_CALL(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerPATCHPOINT(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerSTACKMAP(const llvm::MachineInstr & MI)
- private void LowerSTATEPOINT(const llvm::MachineInstr & MI, (anonymous namespace)::X86MCInstLower & MCIL)
- private void LowerTlsAddr((anonymous namespace)::X86MCInstLower & MCInstLowering, const llvm::MachineInstr & MI)
- public bool PrintAsmMemoryOperand(const llvm::MachineInstr * MI, unsigned int OpNo, const char * ExtraCode, llvm::raw_ostream & O)
- public bool PrintAsmOperand(const llvm::MachineInstr * MI, unsigned int OpNo, const char * ExtraCode, llvm::raw_ostream & O)
- private void PrintIntelMemReference(const llvm::MachineInstr * MI, unsigned int OpNo, llvm::raw_ostream & O, const char * Modifier)
- private void PrintLeaMemReference(const llvm::MachineInstr * MI, unsigned int OpNo, llvm::raw_ostream & O, const char * Modifier)
- private void PrintMemReference(const llvm::MachineInstr * MI, unsigned int OpNo, llvm::raw_ostream & O, const char * Modifier)
- private void PrintModifiedOperand(const llvm::MachineInstr * MI, unsigned int OpNo, llvm::raw_ostream & O, const char * Modifier)
- private void PrintOperand(const llvm::MachineInstr * MI, unsigned int OpNo, llvm::raw_ostream & O)
- private void PrintPCRelImm(const llvm::MachineInstr * MI, unsigned int OpNo, llvm::raw_ostream & O)
- private void PrintSymbolOperand(const llvm::MachineOperand & MO, llvm::raw_ostream & O)
- public X86AsmPrinter(llvm::TargetMachine & TM, std::unique_ptr<MCStreamer> Streamer)
- public bool doInitialization(llvm::Module & M)
- public void emitBasicBlockEnd(const llvm::MachineBasicBlock & MBB)
- public void emitEndOfAsmFile(llvm::Module & M)
- public void emitFunctionBodyEnd()
- public void emitFunctionBodyStart()
- public void emitInstruction(const llvm::MachineInstr * MI)
- public void emitStartOfAsmFile(llvm::Module & M)
- public llvm::StringRef getPassName() const
- public const llvm::X86Subtarget & getSubtarget() const
- public bool runOnMachineFunction(llvm::MachineFunction & MF)
- public bool shouldEmitWeakSwiftAsyncExtendedFramePointerFlags() const
Inherited from AsmPrinter:
- public EmitToStreamer
- public GetBlockAddressSymbol
- public GetBlockAddressSymbol
- public GetCPISymbol
- public GetExternalSymbolSymbol
- public GetJTISymbol
- public GetJTSetSymbol
- public GetSizeOfEncodedValue
- public PrintAsmMemoryOperand
- public PrintAsmOperand
- public PrintSpecial
- public PrintSymbolOperand
- public SetupMachineFunction
- public addAsmPrinterHandler
- public computeGlobalGOTEquivs
- public createTempSymbol
- public doFinalization
- public doInitialization
- public emitAlignment
- public emitBBAddrMapSection
- public emitBasicBlockEnd
- public emitBasicBlockStart
- public emitCFIInstruction
- public emitCFIInstruction
- public emitCallSiteOffset
- public emitCallSiteValue
- public emitConstantPool
- public emitDebugValue
- public emitDwarfAbbrev
- public emitDwarfAbbrevs
- public emitDwarfDIE
- public emitDwarfLengthOrOffset
- public emitDwarfOffset
- public emitDwarfStringOffset
- public emitDwarfStringOffset
- public emitDwarfSymbolReference
- public emitDwarfUnitLength
- public emitDwarfUnitLength
- public emitEncodingByte
- public emitEndOfAsmFile
- public emitFrameAlloc
- public emitFunctionBody
- public emitFunctionBodyEnd
- public emitFunctionBodyStart
- public emitFunctionDescriptor
- public emitFunctionEntryLabel
- public emitGlobalConstant
- public emitGlobalGOTEquivs
- public emitGlobalVariable
- public emitImplicitDef
- public emitInitialRawDwarfLocDirective
- public emitInlineAsmEnd
- public emitInlineAsmStart
- public emitInstruction
- public emitInt16
- public emitInt32
- public emitInt64
- public emitInt8
- public emitJumpTableInfo
- public emitLabelDifference
- public emitLabelDifferenceAsULEB128
- public emitLabelPlusOffset
- public emitLabelReference
- public emitLinkage
- public emitMachineConstantPoolValue
- public emitNops
- public emitPatchableFunctionEntries
- public emitPseudoProbe
- public emitRemarksSection
- public emitSLEB128
- public emitSpecialLLVMGlobal
- public emitStackMaps
- public emitStackSizeSection
- public emitStackUsage
- public emitStartOfAsmFile
- public emitTTypeReference
- public emitULEB128
- public emitVisibility
- public emitXRayTable
- public emitXXStructor
- public emitXXStructorList
- public getAddrLabelSymbol
- public getAddrLabelSymbolToEmit
- public getAnalysisUsage
- public getCurrentSection
- public getDataLayout
- public getDwarfDebug
- public getDwarfDebug
- public getDwarfFormParams
- public getDwarfOffsetByteSize
- public getDwarfVersion
- public getFunctionBegin
- public getFunctionCFISectionType
- public getFunctionCFISectionType
- public getFunctionEnd
- public getFunctionFrameSymbol
- public getFunctionNumber
- public getGVAlignment
- public getISAEncoding
- public getMBBExceptionSym
- public getModuleCFISectionType
- public getNameWithPrefix
- public getObjFileLowering
- public getPointerSize
- public getSubtargetInfo
- public getSymbol
- public getSymbolPreferLocal
- public getSymbolWithGlobalValueBase
- public getUnitLengthFieldByteSize
- public isBlockOnlyReachableByFallthrough
- public isDwarf64
- public isPositionIndependent
- public isVerbose
- public lowerConstant
- public needsCFIForDebug
- public needsSEHMoves
- public preprocessXXStructorList
- public printOffset
- public recordSled
- public runOnMachineFunction
- public setDwarfVersion
- protected shouldEmitWeakSwiftAsyncExtendedFramePointerFlags
- public takeDeletedSymbolsForFunction
Inherited from MachineFunctionPass:
- public doInitialization
- protected getAnalysisUsage
- protected getClearedProperties
- protected getRequiredProperties
- protected getSetProperties
- protected runOnMachineFunction
Inherited from FunctionPass:
- public assignPassManager
- public createPrinterPass
- public getPotentialPassManagerType
- public runOnFunction
- protected skipFunction
Inherited from Pass:
- public assignPassManager
- public createPass
- public createPrinterPass
- public doFinalization
- public doInitialization
- public dump
- public dumpPassStructure
- public getAdjustedAnalysisPointer
- public getAnalysis
- public getAnalysis
- public getAnalysisID
- public getAnalysisID
- public getAnalysisIfAvailable
- public getAnalysisUsage
- public getAsImmutablePass
- public getAsPMDataManager
- public getPassID
- public getPassKind
- public getPassName
- public getPotentialPassManagerType
- public getResolver
- public lookupPassInfo
- public lookupPassInfo
- public mustPreserveAnalysisID
- public preparePassManager
- public print
- public releaseMemory
- public setResolver
- public verifyAnalysis
Methods
¶void EmitAndCountInstruction(llvm::MCInst& Inst)
void EmitAndCountInstruction(llvm::MCInst& Inst)
Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:81
Parameters
- llvm::MCInst& Inst
¶void EmitSEHInstruction(
const llvm::MachineInstr* MI)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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()
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)
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)
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
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
const llvm::X86Subtarget& getSubtarget() const
Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:126
¶bool runOnMachineFunction(
llvm::MachineFunction& MF)
bool runOnMachineFunction(
llvm::MachineFunction& MF)
Description
Emit the specified function out to the OutStreamer.
Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:148
Parameters
¶bool shouldEmitWeakSwiftAsyncExtendedFramePointerFlags()
const
bool shouldEmitWeakSwiftAsyncExtendedFramePointerFlags()
const
Declared at: llvm/lib/Target/X86/X86AsmPrinter.h:152