distinguish between objects and register names, now we can have stuff
authorDuraid Madina <duraid@octopus.com.au>
Thu, 16 Feb 2006 13:12:57 +0000 (13:12 +0000)
committerDuraid Madina <duraid@octopus.com.au>
Thu, 16 Feb 2006 13:12:57 +0000 (13:12 +0000)
with names like "f84", "in6" etc etc.

this should fix one or two tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26232 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/IA64/IA64AsmPrinter.cpp

index 2c2a6d6c9b2d24c26aa2bc864990d952b47ef09c..d779104701c9e1c130354ae3afe87648f6468253 100644 (file)
@@ -235,10 +235,16 @@ void IA64AsmPrinter::printOp(const MachineOperand &MO,
     if (Needfptr)
       O << "@fptr(";
     O << Mang->getValueName(MO.getGlobal());
-    if (Needfptr)
-      O << ")"; // close fptr(
-    if (!isBRCALLinsn)
-      O << ")"; // close ltoff(
+    
+    if (Needfptr && !isBRCALLinsn)
+      O << "#))"; // close both fptr( and ltoff(
+    else {
+      if (Needfptr)
+        O << "#)"; // close only fptr(
+      if (!isBRCALLinsn)
+        O << "#)"; // close only ltoff(
+    }
+    
     int Offset = MO.getOffset();
     if (Offset > 0)
       O << " + " << Offset;
@@ -293,11 +299,11 @@ bool IA64AsmPrinter::doFinalization(Module &M) {
            I->hasWeakLinkage() /* FIXME: Verify correct */)) {
         SwitchSection(".data", I);
         if (I->hasInternalLinkage()) {
-          O << "\t.lcomm " << name << "," << TD.getTypeSize(C->getType())
+          O << "\t.lcomm " << name << "#," << TD.getTypeSize(C->getType())
           << "," << (1 << Align);
           O << "\t\t// ";
         } else {
-          O << "\t.common " << name << "," << TD.getTypeSize(C->getType())
+          O << "\t.common " << name << "#," << TD.getTypeSize(C->getType())
           << "," << (1 << Align);
           O << "\t\t// ";
         }