LLVM API Documentation
#include <X86IntelAsmPrinter.h>
Inheritance diagram for llvm::X86IntelAsmPrinter:
Public Member Functions | |
X86IntelAsmPrinter (std::ostream &O, X86TargetMachine &TM) | |
virtual const char * | getPassName () const |
bool | printInstruction (const MachineInstr *MI) |
void | printOperand (const MachineInstr *MI, unsigned OpNo, const char *Modifier=0) |
void | printi8mem (const MachineInstr *MI, unsigned OpNo) |
void | printi16mem (const MachineInstr *MI, unsigned OpNo) |
void | printi32mem (const MachineInstr *MI, unsigned OpNo) |
void | printi64mem (const MachineInstr *MI, unsigned OpNo) |
void | printi128mem (const MachineInstr *MI, unsigned OpNo) |
void | printf32mem (const MachineInstr *MI, unsigned OpNo) |
void | printf64mem (const MachineInstr *MI, unsigned OpNo) |
void | printf128mem (const MachineInstr *MI, unsigned OpNo) |
bool | printAsmMRegister (const MachineOperand &MO, const char Mode) |
bool | PrintAsmOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode) |
bool | PrintAsmMemoryOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode) |
void | printMachineInstruction (const MachineInstr *MI) |
void | printOp (const MachineOperand &MO, const char *Modifier=0) |
void | printSSECC (const MachineInstr *MI, unsigned Op) |
void | printMemReference (const MachineInstr *MI, unsigned Op) |
void | printPICLabel (const MachineInstr *MI, unsigned Op) |
bool | runOnMachineFunction (MachineFunction &F) |
bool | doInitialization (Module &M) |
doInitialization | |
bool | doFinalization (Module &M) |
virtual void | EmitString (const ConstantArray *CVA) const |
Definition at line 23 of file X86IntelAsmPrinter.h.
X86IntelAsmPrinter::X86IntelAsmPrinter | ( | std::ostream & | O, | |
X86TargetMachine & | TM | |||
) |
Definition at line 25 of file X86IntelAsmPrinter.cpp.
virtual const char* llvm::X86IntelAsmPrinter::getPassName | ( | ) | const [inline, virtual] |
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, and if nothing else is available, C++ RTTI will be consulted to get a SOMEWHAT intelligible name for the pass.
Reimplemented from llvm::Pass.
Definition at line 26 of file X86IntelAsmPrinter.h.
bool llvm::X86IntelAsmPrinter::printInstruction | ( | const MachineInstr * | MI | ) |
printInstruction - This method is automatically generated by tablegen from the instruction set description. This method returns true if the machine instruction was sufficiently described to print it, otherwise it returns false.
Referenced by printMachineInstruction().
void llvm::X86IntelAsmPrinter::printOperand | ( | const MachineInstr * | MI, | |
unsigned | OpNo, | |||
const char * | Modifier = 0 | |||
) | [inline] |
Definition at line 37 of file X86IntelAsmPrinter.h.
References llvm::MRegisterInfo::get(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::TargetMachine::getRegisterInfo(), llvm::MRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isRegister(), MI, Name, printOp(), and llvm::AsmPrinter::TM.
Referenced by PrintAsmOperand().
void llvm::X86IntelAsmPrinter::printi8mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printi16mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printi32mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printi64mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printi128mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printf32mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printf64mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
void llvm::X86IntelAsmPrinter::printf128mem | ( | const MachineInstr * | MI, | |
unsigned | OpNo | |||
) | [inline] |
bool X86IntelAsmPrinter::printAsmMRegister | ( | const MachineOperand & | MO, | |
const char | Mode | |||
) |
Definition at line 198 of file X86IntelAsmPrinter.cpp.
References llvm::MRegisterInfo::get(), llvm::MachineOperand::getReg(), llvm::TargetMachine::getRegisterInfo(), llvm::getX86SubSuperRegister(), llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i8, llvm::TargetRegisterDesc::Name, llvm::AsmPrinter::O, Reg, and llvm::AsmPrinter::TM.
Referenced by PrintAsmOperand().
bool X86IntelAsmPrinter::PrintAsmOperand | ( | const MachineInstr * | MI, | |
unsigned | OpNo, | |||
unsigned | AsmVariant, | |||
const char * | ExtraCode | |||
) | [virtual] |
PrintAsmOperand - Print out an operand for an inline asm expression.
Reimplemented from llvm::AsmPrinter.
Definition at line 224 of file X86IntelAsmPrinter.cpp.
References llvm::MachineInstr::getOperand(), MI, printAsmMRegister(), and printOperand().
bool X86IntelAsmPrinter::PrintAsmMemoryOperand | ( | const MachineInstr * | MI, | |
unsigned | OpNo, | |||
unsigned | AsmVariant, | |||
const char * | ExtraCode | |||
) | [virtual] |
PrintAsmMemoryOperand - 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.
Reimplemented from llvm::AsmPrinter.
Definition at line 245 of file X86IntelAsmPrinter.cpp.
References MI, and printMemReference().
void X86IntelAsmPrinter::printMachineInstruction | ( | const MachineInstr * | MI | ) |
printMachineInstruction -- Print out a single X86 LLVM instruction MI in Intel syntax to the current output stream.
Definition at line 258 of file X86IntelAsmPrinter.cpp.
References llvm::AsmPrinter::CommentString, llvm::EmittedInsts, llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::getX86SubSuperRegister(), llvm::MVT::i16, llvm::MVT::i8, MI, llvm::AsmPrinter::O, and printInstruction().
Referenced by runOnMachineFunction().
void X86IntelAsmPrinter::printOp | ( | const MachineOperand & | MO, | |
const char * | Modifier = 0 | |||
) |
Definition at line 83 of file X86IntelAsmPrinter.cpp.
References llvm::MRegisterInfo::get(), llvm::MachineOperand::getConstantPoolIndex(), llvm::AsmPrinter::getFunctionNumber(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImmedValue(), llvm::MachineOperand::getMachineBasicBlock(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getReg(), llvm::TargetMachine::getRegisterInfo(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getType(), llvm::Mangler::getValueName(), llvm::getX86SubSuperRegister(), llvm::AsmPrinter::GlobalPrefix, llvm::MVT::i16, llvm::MVT::i8, llvm::MRegisterInfo::isPhysicalRegister(), llvm::AsmPrinter::Mang, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, llvm::TargetRegisterDesc::Name, llvm::AsmPrinter::O, Offset, llvm::AsmPrinter::printBasicBlockLabel(), llvm::AsmPrinter::PrivateGlobalPrefix, Reg, and llvm::AsmPrinter::TM.
Referenced by printMemReference(), and printOperand().
void X86IntelAsmPrinter::printSSECC | ( | const MachineInstr * | MI, | |
unsigned | Op | |||
) |
Definition at line 68 of file X86IntelAsmPrinter.cpp.
References llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getOperand(), MI, and llvm::AsmPrinter::O.
void X86IntelAsmPrinter::printMemReference | ( | const MachineInstr * | MI, | |
unsigned | Op | |||
) |
Definition at line 142 of file X86IntelAsmPrinter.cpp.
References llvm::MachineOperand::getFrameIndex(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), IndexReg, llvm::MachineOperand::isConstantPoolIndex(), llvm::MachineOperand::isFrameIndex(), llvm::MachineOperand::isGlobalAddress(), llvm::X86SharedAsmPrinter::isMem(), MI, llvm::AsmPrinter::O, and printOp().
Referenced by PrintAsmMemoryOperand(), printf128mem(), printf32mem(), printf64mem(), printi128mem(), printi16mem(), printi32mem(), printi64mem(), and printi8mem().
void X86IntelAsmPrinter::printPICLabel | ( | const MachineInstr * | MI, | |
unsigned | Op | |||
) |
Definition at line 193 of file X86IntelAsmPrinter.cpp.
References llvm::AsmPrinter::getFunctionNumber(), and llvm::AsmPrinter::O.
bool X86IntelAsmPrinter::runOnMachineFunction | ( | MachineFunction & | MF | ) | [virtual] |
runOnMachineFunction - This uses the printMachineInstruction() method to print assembly for each instruction.
Implements llvm::MachineFunctionPass.
Definition at line 32 of file X86IntelAsmPrinter.cpp.
References llvm::MachineFunction::begin(), llvm::AsmPrinter::CurrentFnName, E, llvm::AsmPrinter::EmitAlignment(), llvm::AsmPrinter::EmitConstantPool(), llvm::MachineFunction::end(), llvm::GlobalValue::ExternalLinkage, llvm::MachineFunction::getConstantPool(), llvm::MachineFunction::getFunction(), llvm::GlobalValue::getLinkage(), II, MF, llvm::AsmPrinter::O, llvm::AsmPrinter::printBasicBlockLabel(), printMachineInstruction(), llvm::AsmPrinter::SetupMachineFunction(), and llvm::AsmPrinter::SwitchToTextSection().
bool X86IntelAsmPrinter::doInitialization | ( | Module & | M | ) | [virtual] |
doInitialization
Reimplemented from llvm::X86SharedAsmPrinter.
Definition at line 286 of file X86IntelAsmPrinter.cpp.
References llvm::AsmPrinter::AlignDirective, llvm::AsmPrinter::AsciiDirective, llvm::AsmPrinter::AscizDirective, llvm::Module::begin(), llvm::AsmPrinter::CommentString, llvm::AsmPrinter::Data16bitsDirective, llvm::AsmPrinter::Data32bitsDirective, llvm::AsmPrinter::Data64bitsDirective, llvm::AsmPrinter::Data8bitsDirective, llvm::AsmPrinter::DataSectionStartSuffix, llvm::X86SharedAsmPrinter::DefaultDataSection, llvm::X86SharedAsmPrinter::DefaultTextSection, llvm::X86SharedAsmPrinter::doInitialization(), E, llvm::Module::end(), llvm::Mangler::getValueName(), llvm::Module::global_begin(), llvm::Module::global_end(), llvm::AsmPrinter::GlobalPrefix, llvm::AsmPrinter::HasDotTypeDotSizeDirective, M, llvm::AsmPrinter::Mang, llvm::Mangler::markCharUnacceptable(), llvm::AsmPrinter::O, llvm::AsmPrinter::PrivateGlobalPrefix, llvm::AsmPrinter::SectionEndDirectiveSuffix, llvm::AsmPrinter::SwitchToSectionDirective, llvm::AsmPrinter::TextSectionStartSuffix, llvm::AsmPrinter::ZeroDirective, and llvm::AsmPrinter::ZeroDirectiveSuffix.
bool X86IntelAsmPrinter::doFinalization | ( | Module & | M | ) | [virtual] |
doFinalization - Shut down the asmprinter. If you override this in your pass, you must make sure to call it explicitly.
Reimplemented from llvm::X86SharedAsmPrinter.
Definition at line 330 of file X86IntelAsmPrinter.cpp.
References Align, llvm::GlobalValue::AppendingLinkage, C, llvm::AsmPrinter::CommentString, llvm::X86SharedAsmPrinter::DefaultDataSection, llvm::AsmPrinter::doFinalization(), E, llvm::AsmPrinter::EmitAlignment(), llvm::AsmPrinter::EmitGlobalConstant(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::GlobalValue::ExternalLinkage, llvm::AsmPrinter::getPreferredAlignmentLog(), llvm::TargetMachine::getTargetData(), llvm::TargetData::getTypeSize(), llvm::Mangler::getValueName(), llvm::Module::global_begin(), llvm::Module::global_end(), llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::LinkOnceLinkage, M, llvm::AsmPrinter::Mang, name, llvm::AsmPrinter::O, llvm::AsmPrinter::SwitchToDataSection(), TD, llvm::AsmPrinter::TM, and llvm::GlobalValue::WeakLinkage.
void X86IntelAsmPrinter::EmitString | ( | const ConstantArray * | CVA | ) | const [virtual] |
EmitString - Emit a zero-byte-terminated string constant.
Reimplemented from llvm::AsmPrinter.
Definition at line 392 of file X86IntelAsmPrinter.cpp.
References llvm::User::getNumOperands(), llvm::Constant::getOperand(), and llvm::AsmPrinter::O.