LLVM 20.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 "X86InstrInfo.h"
#include "X86MachineFunctionInfo.h"
#include "X86Subtarget.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. | |
LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeX86AsmPrinter () |
|
static |
Definition at line 956 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 934 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.
|
static |
Definition at line 432 of file X86AsmPrinter.cpp.
References MI.
Referenced by llvm::X86AsmPrinter::emitBasicBlockEnd().
|
static |
Definition at line 427 of file X86AsmPrinter.cpp.
References MI.
Referenced by llvm::X86AsmPrinter::emitBasicBlockEnd().
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeX86AsmPrinter | ( | ) |
Definition at line 1070 of file X86AsmPrinter.cpp.
References llvm::getTheX86_32Target(), llvm::getTheX86_64Target(), X, and Y.
|
static |
Definition at line 615 of file X86AsmPrinter.cpp.
References llvm::InlineAsm::AD_ATT, contains(), llvm::MachineInstr::getInlineAsmDialect(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::X86ATTInstPrinter::getRegisterName(), llvm::getX86SubSuperRegister(), and P.
Referenced by llvm::X86AsmPrinter::PrintAsmOperand().
|
static |
Definition at line 659 of file X86AsmPrinter.cpp.
References llvm::InlineAsm::AD_ATT, contains(), llvm::MachineInstr::getInlineAsmDialect(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), and llvm::X86ATTInstPrinter::getRegisterName().
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 986 of file X86AsmPrinter.cpp.
References F, I, and instructions.
Referenced by llvm::X86AsmPrinter::emitEndOfAsmFile().