From: Chris Lattner Date: Fri, 5 May 2006 21:47:05 +0000 (+0000) Subject: Indent multiline asm strings more nicely X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1c05997bd8d8b3e97c9a5384f8197d0348e237a3;p=oota-llvm.git Indent multiline asm strings more nicely git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28132 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index e1a4cf68a7c..4f72a750ea1 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -34,8 +34,8 @@ AsmPrinter::AsmPrinter(std::ostream &o, TargetMachine &tm) GlobalVarAddrSuffix(""), FunctionAddrPrefix(""), FunctionAddrSuffix(""), - InlineAsmStart("#APP\n\t"), - InlineAsmEnd("\t#NO_APP\n"), + InlineAsmStart("#APP"), + InlineAsmEnd("#NO_APP"), ZeroDirective("\t.zero\t"), ZeroDirectiveSuffix(0), AsciiDirective("\t.ascii\t"), @@ -558,7 +558,7 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV) { /// printInlineAsm - This method formats and prints the specified machine /// instruction that is an inline asm. void AsmPrinter::printInlineAsm(const MachineInstr *MI) const { - O << InlineAsmStart; + O << InlineAsmStart << "\n\t"; unsigned NumOperands = MI->getNumOperands(); // Count the number of register definitions. @@ -583,13 +583,17 @@ void AsmPrinter::printInlineAsm(const MachineInstr *MI) const { // Not a special case, emit the string section literally. const char *LiteralEnd = LastEmitted+1; while (*LiteralEnd && *LiteralEnd != '{' && *LiteralEnd != '|' && - *LiteralEnd != '}' && *LiteralEnd != '$') + *LiteralEnd != '}' && *LiteralEnd != '$' && *LiteralEnd != '\n') ++LiteralEnd; if (CurVariant == -1 || CurVariant == AsmPrinterVariant) O.write(LastEmitted, LiteralEnd-LastEmitted); LastEmitted = LiteralEnd; break; } + case '\n': + ++LastEmitted; // Consume newline character. + O << "\n\t"; // Indent code with newline. + break; case '$': { ++LastEmitted; // Consume '$' character. if (*LastEmitted == '$') { // $$ -> $ @@ -707,7 +711,7 @@ void AsmPrinter::printInlineAsm(const MachineInstr *MI) const { break; } } - O << "\n" << InlineAsmEnd; + O << "\n\t" << InlineAsmEnd << "\n"; } /// PrintAsmOperand - Print the specified operand of MI, an INLINEASM