void EmitComments(const MCInst &MI) const;
protected:
- /// getOperandColumn - Return the output column number (zero-based)
- /// for operand % "operand." If TargetAsmInfo has FirstOperandColumn
- /// == 0 or MaxOperandLength == 0, return 0, meaning column alignment
- /// is disabled.
- unsigned getOperandColumn(int operand) const;
-
- /// PadToColumn - This gets called every time a tab is emitted. If
- /// column padding is turned on, we replace the tab with the
- /// appropriate amount of padding. If not, we replace the tab with a
- /// space, except for the first operand so that initial operands are
- /// always lined up by tabs.
- void PadToColumn(unsigned Operand) const;
-
/// EmitZeros - Emit a block of zeros.
///
void EmitZeros(uint64_t NumZeros, unsigned AddrSpace = 0) const;
/// assembler.
const char *CommentString; // Defaults to "#"
- /// FirstOperandColumn - The output column where the first operand
- /// should be printed
- unsigned FirstOperandColumn; // Defaults to 0 (ignored)
-
- /// MaxOperandLength - The maximum length of any printed asm
- /// operand
- unsigned MaxOperandLength; // Defaults to 0 (ignored)
-
/// GlobalPrefix - If this is set to a non-empty string, it is prepended
/// onto all global symbols. This is often used for "_" or ".".
const char *GlobalPrefix; // Defaults to ""
const char *getCommentString() const {
return CommentString;
}
- unsigned getFirstOperandColumn() const {
- return FirstOperandColumn;
- }
- unsigned getMaxOperandLength() const {
- return MaxOperandLength;
- }
const char *getGlobalPrefix() const {
return GlobalPrefix;
}
O << '\n';
}
-/// getOperandColumn - Return the output column number (zero-based)
-/// for operand % "operand." If TargetAsmInfo has FirstOperandColumn
-/// == 0 or MaxOperandLength == 0, return 0, meaning column alignment
-/// is disabled.
-unsigned AsmPrinter::getOperandColumn(int operand) const {
- if (TAI->getFirstOperandColumn() > 0 && TAI->getMaxOperandLength() > 0)
- return TAI->getFirstOperandColumn() +
- (TAI->getMaxOperandLength()+1)*(operand-1);
- return 0;
-}
-
-/// PadToColumn - This gets called every time a tab is emitted. If
-/// column padding is turned on, we replace the tab with the
-/// appropriate amount of padding. If not, we replace the tab with a
-/// space, except for the first operand so that initial operands are
-/// always lined up by tabs.
-void AsmPrinter::PadToColumn(unsigned Operand) const {
- if (getOperandColumn(Operand) > 0) {
- O.PadToColumn(getOperandColumn(Operand), 1);
- }
- else {
- if (Operand == 1) {
- // Emit the tab after the mnemonic.
- O << '\t';
- }
- else {
- // Replace the tab with a space.
- O << ' ';
- }
- }
-}
-
/// EmitZeros - Emit a block of zeros.
///
void AsmPrinter::EmitZeros(uint64_t NumZeros, unsigned AddrSpace) const {
SeparatorChar = ';';
CommentColumn = 60;
CommentString = "#";
- FirstOperandColumn = 0;
- MaxOperandLength = 0;
GlobalPrefix = "";
PrivateGlobalPrefix = ".";
LinkerPrivateGlobalPrefix = "";