LLVM API Documentation

Public Member Functions
llvm::ARMAsmPrinter Class Reference

#include <ARMAsmPrinter.h>

Inheritance diagram for llvm::ARMAsmPrinter:
Inheritance graph
[legend]
Collaboration diagram for llvm::ARMAsmPrinter:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ARMAsmPrinter (TargetMachine &TM, MCStreamer &Streamer)
virtual const char * getPassName () const LLVM_OVERRIDE
void printOperand (const MachineInstr *MI, int OpNum, raw_ostream &O, const char *Modifier=0)
virtual bool PrintAsmOperand (const MachineInstr *MI, unsigned OpNum, unsigned AsmVariant, const char *ExtraCode, raw_ostream &O) LLVM_OVERRIDE
virtual bool PrintAsmMemoryOperand (const MachineInstr *MI, unsigned OpNum, unsigned AsmVariant, const char *ExtraCode, raw_ostream &O) LLVM_OVERRIDE
void EmitJumpTable (const MachineInstr *MI)
void EmitJump2Table (const MachineInstr *MI)
virtual void EmitInstruction (const MachineInstr *MI) LLVM_OVERRIDE
 EmitInstruction - Targets should implement this to emit instructions.
virtual bool runOnMachineFunction (MachineFunction &F) LLVM_OVERRIDE
virtual void EmitConstantPool () LLVM_OVERRIDE
virtual void EmitFunctionBodyEnd () LLVM_OVERRIDE
virtual void EmitFunctionEntryLabel () LLVM_OVERRIDE
virtual void EmitStartOfAsmFile (Module &M) LLVM_OVERRIDE
virtual void EmitEndOfAsmFile (Module &M) LLVM_OVERRIDE
virtual void EmitXXStructor (const Constant *CV) LLVM_OVERRIDE
bool lowerOperand (const MachineOperand &MO, MCOperand &MCOp)
void PrintDebugValueComment (const MachineInstr *MI, raw_ostream &OS)
virtual MachineLocation getDebugValueLocation (const MachineInstr *MI) const LLVM_OVERRIDE
virtual void EmitDwarfRegOp (const MachineLocation &MLoc) const LLVM_OVERRIDE
 EmitDwarfRegOp - Emit dwarf register operation.
virtual unsigned getISAEncoding () LLVM_OVERRIDE
virtual void EmitMachineConstantPoolValue (MachineConstantPoolValue *MCPV) LLVM_OVERRIDE

Detailed Description

Definition at line 29 of file ARMAsmPrinter.h.


Constructor & Destructor Documentation

llvm::ARMAsmPrinter::ARMAsmPrinter ( TargetMachine TM,
MCStreamer Streamer 
) [inline, explicit]

Definition at line 47 of file ARMAsmPrinter.h.

References llvm::TargetMachine::getSubtarget().


Member Function Documentation

virtual void llvm::ARMAsmPrinter::EmitConstantPool ( ) [inline, virtual]

EmitConstantPool - Print to the current output stream assembly representations of the constants in the constant pool MCP. This is used to print out constants which have been "spilled to memory" by the code generator.

Reimplemented from llvm::AsmPrinter.

Definition at line 71 of file ARMAsmPrinter.h.

void ARMAsmPrinter::EmitDwarfRegOp ( const MachineLocation MLoc) const [virtual]
void ARMAsmPrinter::EmitEndOfAsmFile ( Module ) [virtual]
void ARMAsmPrinter::EmitFunctionBodyEnd ( ) [virtual]

EmitFunctionBodyEnd - Targets can override this to emit stuff after the last basic block in the function.

Reimplemented from llvm::AsmPrinter.

Definition at line 290 of file ARMAsmPrinter.cpp.

References llvm::MCStreamer::EmitDataRegion(), llvm::MCDR_DataRegionEnd, and llvm::AsmPrinter::OutStreamer.

void ARMAsmPrinter::EmitFunctionEntryLabel ( ) [virtual]

EmitFunctionEntryLabel - Emit the label that is the entrypoint for the function. This can be overridden by targets as required to do custom stuff.

Reimplemented from llvm::AsmPrinter.

Definition at line 299 of file ARMAsmPrinter.cpp.

References llvm::AsmPrinter::CurrentFnSym, llvm::MCStreamer::EmitAssemblerFlag(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitThumbFunc(), llvm::ARMFunctionInfo::isThumbFunction(), llvm::MCAF_Code16, and llvm::AsmPrinter::OutStreamer.

void ARMAsmPrinter::EmitInstruction ( const MachineInstr ) [virtual]

EmitInstruction - Targets should implement this to emit instructions.

CONSTPOOL_ENTRY - This instruction represents a floating constant pool in the function. The first operand is the ID# for this instruction, the second is the index into the MachineConstantPool that this is, the third is the size in bytes of this constant pool entry. The required alignment is specified on the basic block holding this MI.

Reimplemented from llvm::AsmPrinter.

Definition at line 1253 of file ARMAsmPrinter.cpp.

References llvm::MCStreamer::AddComment(), llvm::MCInstBuilder::addImm(), llvm::MCInst::addOperand(), llvm::MCInstBuilder::addReg(), llvm::ARMCC::AL, llvm::MachineConstantPoolEntry::ConstVal, llvm::convertAddSubFlagsOpcode(), llvm::MCConstantExpr::Create(), llvm::MCSymbolRefExpr::Create(), llvm::MCBinaryExpr::CreateAdd(), llvm::MCOperand::CreateExpr(), llvm::MCOperand::CreateImm(), llvm::ARMMCExpr::CreateLower16(), llvm::MCOperand::CreateReg(), llvm::MCBinaryExpr::CreateSub(), llvm::ARMMCExpr::CreateUpper16(), llvm::TargetOpcode::DBG_VALUE, llvm::AsmPrinter::EmitAlignment(), llvm::MCStreamer::EmitDataRegion(), llvm::AsmPrinter::EmitGlobalConstant(), llvm::MCStreamer::EmitInstruction(), llvm::MCStreamer::EmitIntValue(), EmitJump2Table(), EmitJumpTable(), llvm::MCStreamer::EmitLabel(), EmitMachineConstantPoolValue(), llvm::MCStreamer::EmitRawText(), EnableARMEHABI, llvm::MachineInstr::FrameSetup, llvm::MachineConstantPool::getConstants(), llvm::AsmPrinter::GetCPISymbol(), llvm::MachineInstr::getFlag(), llvm::AsmPrinter::getFunctionNumber(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getPICLabel(), llvm::MCAsmInfo::getPrivateGlobalPrefix(), llvm::MachineOperand::getReg(), llvm::Mangler::getSymbol(), llvm::MachineOperand::getTargetFlags(), llvm::MCStreamer::hasRawTextSupport(), llvm::MachineConstantPoolEntry::isMachineConstantPoolEntry(), llvm::ARMSubtarget::isTargetDarwin(), llvm::AsmPrinter::isVerbose(), llvm_unreachable, llvm::LowerARMMachineInstrToMCInst(), llvm::MachineConstantPoolEntry::MachineCPVal, llvm::AsmPrinter::MAI, llvm::AsmPrinter::Mang, llvm::MCDR_DataRegion, llvm::MCDR_DataRegionEnd, llvm::ARMII::MO_HI16_NONLAZY_PIC, llvm::ARMII::MO_LO16_NONLAZY_PIC, llvm::AsmPrinter::OutContext, llvm::AsmPrinter::OutStreamer, PrintDebugValueComment(), llvm::MCInst::setOpcode(), llvm::raw_svector_ostream::str(), llvm::ISD::TRAP, and llvm::MachineConstantPoolEntry::Val.

void ARMAsmPrinter::EmitJump2Table ( const MachineInstr MI)
void ARMAsmPrinter::EmitJumpTable ( const MachineInstr MI)
void ARMAsmPrinter::EmitMachineConstantPoolValue ( MachineConstantPoolValue MCPV) [virtual]
void ARMAsmPrinter::EmitStartOfAsmFile ( Module ) [virtual]
void ARMAsmPrinter::EmitXXStructor ( const Constant CV) [virtual]
MachineLocation ARMAsmPrinter::getDebugValueLocation ( const MachineInstr MI) const [virtual]
virtual unsigned llvm::ARMAsmPrinter::getISAEncoding ( ) [inline, virtual]

getISAEncoding - Get the value for DW_AT_APPLE_isa. Zero if no isa encoding specified.

Reimplemented from llvm::AsmPrinter.

Definition at line 108 of file ARMAsmPrinter.h.

References llvm::ARM::DW_ISA_ARM_arm, and llvm::ARM::DW_ISA_ARM_thumb.

virtual const char* llvm::ARMAsmPrinter::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.

Reimplemented from llvm::Pass.

Definition at line 52 of file ARMAsmPrinter.h.

bool ARMAsmPrinter::lowerOperand ( const MachineOperand MO,
MCOperand MCOp 
)
bool ARMAsmPrinter::PrintAsmMemoryOperand ( const MachineInstr MI,
unsigned  OpNo,
unsigned  AsmVariant,
const char *  ExtraCode,
raw_ostream OS 
) [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 554 of file ARMAsmPrinter.cpp.

References llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::ARMInstPrinter::getRegisterName(), and llvm::MachineOperand::isReg().

bool ARMAsmPrinter::PrintAsmOperand ( const MachineInstr MI,
unsigned  OpNo,
unsigned  AsmVariant,
const char *  ExtraCode,
raw_ostream O 
) [virtual]

PrintAsmOperand - 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.

PrintAsmOperand - Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant. Targets should override this to format as appropriate.

Reimplemented from llvm::AsmPrinter.

Definition at line 416 of file ARMAsmPrinter.cpp.

References llvm::MachineOperand::getImm(), llvm::InlineAsm::getNumOperandRegisters(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::TargetMachine::getRegisterInfo(), llvm::ARMInstPrinter::getRegisterName(), llvm::MCRegisterInfo::getSubReg(), llvm::MachineFunction::getTarget(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::AsmPrinter::MF, and printOperand().

void ARMAsmPrinter::PrintDebugValueComment ( const MachineInstr MI,
raw_ostream OS 
)
void ARMAsmPrinter::printOperand ( const MachineInstr MI,
int  OpNum,
raw_ostream O,
const char *  Modifier = 0 
)
bool ARMAsmPrinter::runOnMachineFunction ( MachineFunction MF) [virtual]

runOnMachineFunction - This uses the EmitInstruction() method to print assembly for each instruction.

Reimplemented from llvm::AsmPrinter.

Definition at line 327 of file ARMAsmPrinter.cpp.

References llvm::MachineFunction::getConstantPool(), and llvm::MachineFunction::getInfo().


The documentation for this class was generated from the following files: