[llvm-commits] [llvm] r57346 - /llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp

Anton Korobeynikov asl at math.spbu.ru
Fri Oct 10 03:15:03 PDT 2008


Author: asl
Date: Fri Oct 10 05:15:03 2008
New Revision: 57346

URL: http://llvm.org/viewvc/llvm-project?rev=57346&view=rev
Log:
Add rudimentary asmprinter support for printing inline asm operands for sparc.

Modified:
    llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp

Modified: llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp?rev=57346&r1=57345&r2=57346&view=diff

==============================================================================
--- llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp Fri Oct 10 05:15:03 2008
@@ -65,6 +65,10 @@
     bool runOnMachineFunction(MachineFunction &F);
     bool doInitialization(Module &M);
     bool doFinalization(Module &M);
+    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
+                       unsigned AsmVariant, const char *ExtraCode);
+    bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
+                             unsigned AsmVariant, const char *ExtraCode);
   };
 } // end of anonymous namespace
 
@@ -213,8 +217,6 @@
   O << SPARCCondCodeToString((SPCC::CondCodes)CC);
 }
 
-
-
 bool SparcAsmPrinter::doInitialization(Module &M) {
   Mang = new Mangler(M);
   return false; // success
@@ -307,3 +309,30 @@
   O << name << ":\n";
   EmitGlobalConstant(C);
 }
+
+/// PrintAsmOperand - Print out an operand for an inline asm expression.
+///
+bool SparcAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
+                                      unsigned AsmVariant,
+                                      const char *ExtraCode) {
+  if (ExtraCode && ExtraCode[0])
+    return true;  // Unknown modifier
+
+  printOperand(MI, OpNo);
+
+  return false;
+}
+
+bool SparcAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
+                                            unsigned OpNo,
+                                            unsigned AsmVariant,
+                                            const char *ExtraCode) {
+  if (ExtraCode && ExtraCode[0])
+    return true;  // Unknown modifier
+
+  O << '[';
+  printMemOperand(MI, OpNo);
+  O << ']';
+
+  return false;
+}





More information about the llvm-commits mailing list