From: Chris Lattner Date: Mon, 30 Jan 2006 23:00:08 +0000 (+0000) Subject: Print the most trivial inline asms. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f2b67cff040d1eb3229f7929d0ec7a5e016a7a57;p=oota-llvm.git Print the most trivial inline asms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25822 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index 83ecfe24c30..ab0465df1c3 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -456,5 +456,16 @@ 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 << "INLINE ASM NOT EMITTED YET!\n"; + unsigned NumOperands = MI->getNumOperands(); + + // Count the number of register definitions. + unsigned NumDefs = 0; + for (; MI->getOperand(NumDefs).isDef(); ++NumDefs) + assert(NumDefs != NumOperands-1 && "No asm string?"); + + assert(MI->getOperand(NumDefs).isExternalSymbol() && "No asm string?"); + + const char *AsmStr = MI->getOperand(NumDefs).getSymbolName(); + + O << AsmStr << "\n"; }