LLVM 22.0.0git
Functions
X86AsmPrinter.cpp File Reference
#include "X86AsmPrinter.h"
#include "MCTargetDesc/X86ATTInstPrinter.h"
#include "MCTargetDesc/X86BaseInfo.h"
#include "MCTargetDesc/X86MCTargetDesc.h"
#include "MCTargetDesc/X86TargetStreamer.h"
#include "TargetInfo/X86TargetInfo.h"
#include "X86.h"
#include "X86InstrInfo.h"
#include "X86MachineFunctionInfo.h"
#include "X86Subtarget.h"
#include "llvm-c/Visibility.h"
#include "llvm/Analysis/StaticDataProfileInfo.h"
#include "llvm/BinaryFormat/COFF.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineModuleInfoImpls.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/CodeGenTypes/MachineValueType.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Mangler.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstBuilder.h"
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Target/TargetMachine.h"

Go to the source code of this file.

Functions

static bool isSimpleReturn (const MachineInstr &MI)
 
static bool isIndirectBranchOrTailCall (const MachineInstr &MI)
 
static bool printAsmMRegister (const X86AsmPrinter &P, const MachineOperand &MO, char Mode, raw_ostream &O)
 
static bool printAsmVRegister (const MachineOperand &MO, char Mode, raw_ostream &O)
 
static void emitNonLazySymbolPointer (MCStreamer &OutStreamer, MCSymbol *StubLabel, MachineModuleInfoImpl::StubValueTy &MCSym)
 
static void emitNonLazyStubs (MachineModuleInfo *MMI, MCStreamer &OutStreamer)
 
static bool usesMSVCFloatingPoint (const Triple &TT, const Module &M)
 True if this module is being built for windows/msvc, and uses floating point.
 
 INITIALIZE_PASS (X86AsmPrinter, "x86-asm-printer", "X86 Assembly Printer", false, false) extern "C" LLVM_C_ABI void LLVMInitializeX86AsmPrinter()
 

Function Documentation

◆ emitNonLazyStubs()

static void emitNonLazyStubs ( MachineModuleInfo MMI,
MCStreamer OutStreamer 
)
static

◆ emitNonLazySymbolPointer()

static void emitNonLazySymbolPointer ( MCStreamer OutStreamer,
MCSymbol StubLabel,
MachineModuleInfoImpl::StubValueTy MCSym 
)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( X86AsmPrinter  ,
"x86-asm-printer"  ,
"X86 Assembly Printer"  ,
false  ,
false   
)

Definition at line 1109 of file X86AsmPrinter.cpp.

References llvm::getTheX86_32Target(), llvm::getTheX86_64Target(), X, and Y.

◆ isIndirectBranchOrTailCall()

static bool isIndirectBranchOrTailCall ( const MachineInstr MI)
static

Definition at line 474 of file X86AsmPrinter.cpp.

References MI, and Opc.

Referenced by llvm::X86AsmPrinter::emitBasicBlockEnd().

◆ isSimpleReturn()

static bool isSimpleReturn ( const MachineInstr MI)
static

Definition at line 469 of file X86AsmPrinter.cpp.

References MI.

Referenced by llvm::X86AsmPrinter::emitBasicBlockEnd().

◆ printAsmMRegister()

static bool printAsmMRegister ( const X86AsmPrinter P,
const MachineOperand MO,
char  Mode,
raw_ostream O 
)
static

◆ printAsmVRegister()

static bool printAsmVRegister ( const MachineOperand MO,
char  Mode,
raw_ostream O 
)
static

◆ usesMSVCFloatingPoint()

static bool usesMSVCFloatingPoint ( const Triple TT,
const Module M 
)
static

True if this module is being built for windows/msvc, and uses floating point.

This is used to emit an undefined reference to _fltused. This is needed in Windows kernel or driver contexts to find and prevent code from modifying non-GPR registers.

TODO: It would be better if this was computed from MIR by looking for selected floating-point instructions.

Definition at line 999 of file X86AsmPrinter.cpp.

References F, I, and instructions.

Referenced by llvm::X86AsmPrinter::emitEndOfAsmFile().