LLVM API Documentation

Public Member Functions | Static Public Member Functions
llvm::HexagonAsmPrinter Class Reference

#include <HexagonAsmPrinter.h>

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

List of all members.

Public Member Functions

 HexagonAsmPrinter (TargetMachine &TM, MCStreamer &Streamer)
virtual const char * getPassName () const
bool isBlockOnlyReachableByFallthrough (const MachineBasicBlock *MBB) const
virtual void EmitInstruction (const MachineInstr *MI)
virtual void EmitAlignment (unsigned NumBits, const GlobalValue *GV=0) const
void printOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
bool PrintAsmOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS)
bool PrintAsmMemoryOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS)
void printInstruction (const MachineInstr *MI, raw_ostream &O)
void printOp (const MachineOperand &MO, raw_ostream &O)
void printRegister (const MachineOperand &MO, bool R0AsZero, raw_ostream &O)
void printImmOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printNegImmOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printMEMriOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printFrameIndexOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printBranchOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printCallOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printAbsAddrOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printSymbolHi (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printSymbolLo (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printPredicateOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
void printAddrModeBasePlusOffset (const MachineInstr *MI, int OpNo, raw_ostream &O)
void printGlobalOperand (const MachineInstr *MI, int OpNo, raw_ostream &O)
void printJumpTable (const MachineInstr *MI, int OpNo, raw_ostream &O)
void printConstantPool (const MachineInstr *MI, int OpNo, raw_ostream &O)

Static Public Member Functions

static const char * getRegisterName (unsigned RegNo)

Detailed Description

Definition at line 24 of file HexagonAsmPrinter.h.


Constructor & Destructor Documentation

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

Definition at line 28 of file HexagonAsmPrinter.h.

References llvm::TargetMachine::getSubtarget().


Member Function Documentation

void HexagonAsmPrinter::EmitAlignment ( unsigned  NumBits,
const GlobalValue GV = 0 
) const [virtual]

EmitAlignment - Emit an alignment directive to the specified power of two boundary. For example, if you pass in 3 here, you will get an 8 byte alignment. If a global value is specified, and if that global has an explicit alignment requested, it will override the alignment request if required for correctness.

Reimplemented from llvm::AsmPrinter.

Definition at line 64 of file HexagonAsmPrinter.cpp.

References llvm::MCStreamer::EmitRawText(), and llvm::AsmPrinter::OutStreamer.

void HexagonAsmPrinter::EmitInstruction ( const MachineInstr MI) [virtual]
virtual const char* llvm::HexagonAsmPrinter::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 33 of file HexagonAsmPrinter.h.

static const char* llvm::HexagonAsmPrinter::getRegisterName ( unsigned  RegNo) [static]
bool HexagonAsmPrinter::isBlockOnlyReachableByFallthrough ( const MachineBasicBlock MBB) const [virtual]

isBlockOnlyReachableByFallthough - Return true if the basic block has exactly one predecessor and the control transfer mechanism between the predecessor and this block is a fall-through.

Reimplemented from llvm::AsmPrinter.

Definition at line 117 of file HexagonAsmPrinter.cpp.

References llvm::MachineBasicBlock::hasAddressTaken().

void llvm::HexagonAsmPrinter::printAbsAddrOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]

Definition at line 116 of file HexagonAsmPrinter.h.

void HexagonAsmPrinter::printAddrModeBasePlusOffset ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)

PrintUnmangledNameSafely - Print out the printable characters in the name. Don't print things like
or \0.

Definition at line 253 of file HexagonAsmPrinter.cpp.

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

bool HexagonAsmPrinter::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 164 of file HexagonAsmPrinter.cpp.

References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), llvm_unreachable, and printOperand().

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

PrintAsmOperand - Print out an operand for an inline asm expression.

Reimplemented from llvm::AsmPrinter.

Definition at line 127 of file HexagonAsmPrinter.cpp.

References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), and printOperand().

void llvm::HexagonAsmPrinter::printBranchOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]
void llvm::HexagonAsmPrinter::printCallOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]

Definition at line 112 of file HexagonAsmPrinter.h.

void HexagonAsmPrinter::printConstantPool ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)
void llvm::HexagonAsmPrinter::printFrameIndexOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]
void HexagonAsmPrinter::printGlobalOperand ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)
void llvm::HexagonAsmPrinter::printImmOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]
void llvm::HexagonAsmPrinter::printInstruction ( const MachineInstr MI,
raw_ostream O 
)

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.

void HexagonAsmPrinter::printJumpTable ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)
void llvm::HexagonAsmPrinter::printMEMriOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]
void llvm::HexagonAsmPrinter::printNegImmOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]
void llvm::HexagonAsmPrinter::printOp ( const MachineOperand MO,
raw_ostream O 
)
void HexagonAsmPrinter::printOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
void HexagonAsmPrinter::printPredicateOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)

Definition at line 189 of file HexagonAsmPrinter.cpp.

References llvm_unreachable.

void llvm::HexagonAsmPrinter::printRegister ( const MachineOperand MO,
bool  R0AsZero,
raw_ostream O 
) [inline]

printRegister - Print register according to target requirements.

Definition at line 62 of file HexagonAsmPrinter.h.

References llvm::MachineOperand::getReg(), getRegisterName(), and llvm::TargetRegisterInfo::isPhysicalRegister().

void llvm::HexagonAsmPrinter::printSymbolHi ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]
void llvm::HexagonAsmPrinter::printSymbolLo ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
) [inline]

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