|
LLVM 22.0.0git
|
#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() | |
|
static |
Definition at line 970 of file X86AsmPrinter.cpp.
References llvm::MCStreamer::addBlankLine(), emitNonLazySymbolPointer(), llvm::MachineModuleInfo::getContext(), llvm::MachineModuleInfoMachO::GetGVStubList(), llvm::MCContext::getMachOSection(), llvm::SectionKind::getMetadata(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::MachO::S_NON_LAZY_SYMBOL_POINTERS, and llvm::MCStreamer::switchSection().
Referenced by llvm::X86AsmPrinter::emitEndOfAsmFile().
|
static |
Definition at line 948 of file X86AsmPrinter.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCStreamer::emitIntValue(), llvm::MCStreamer::emitLabel(), llvm::MCStreamer::emitSymbolAttribute(), llvm::MCStreamer::emitValue(), llvm::MCStreamer::getContext(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getInt(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer(), and llvm::MCSA_IndirectSymbol.
| INITIALIZE_PASS | ( | X86AsmPrinter | , |
| "x86-asm-printer" | , | ||
| "X86 Assembly Printer" | , | ||
| false | , | ||
| false | ) |
Definition at line 1110 of file X86AsmPrinter.cpp.
References llvm::getTheX86_32Target(), llvm::getTheX86_64Target(), LLVM_C_ABI, X, and Y.
|
static |
Definition at line 474 of file X86AsmPrinter.cpp.
Referenced by llvm::X86AsmPrinter::emitBasicBlockEnd().
|
static |
Definition at line 469 of file X86AsmPrinter.cpp.
References MI.
Referenced by llvm::X86AsmPrinter::emitBasicBlockEnd().
|
static |
Definition at line 656 of file X86AsmPrinter.cpp.
References llvm::InlineAsm::AD_ATT, contains(), llvm::MachineInstr::getInlineAsmDialect(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::X86ATTInstPrinter::getRegisterName(), llvm::getX86SubSuperRegister(), Mode, P, and Reg.
Referenced by llvm::X86AsmPrinter::PrintAsmOperand().
|
static |
Definition at line 700 of file X86AsmPrinter.cpp.
References llvm::InlineAsm::AD_ATT, contains(), llvm::MachineInstr::getInlineAsmDialect(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::X86ATTInstPrinter::getRegisterName(), Mode, and Reg.
Referenced by llvm::X86AsmPrinter::PrintAsmOperand().
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 1000 of file X86AsmPrinter.cpp.
References F, I, and instructions.
Referenced by llvm::X86AsmPrinter::emitEndOfAsmFile().