diff options
author | Duraid Madina <duraid@octopus.com.au> | 2006-02-16 13:12:57 +0000 |
---|---|---|
committer | Duraid Madina <duraid@octopus.com.au> | 2006-02-16 13:12:57 +0000 |
commit | 00d3d44b75a6e4356c1130793c39f23d54041092 (patch) | |
tree | 5b482a3e6d3876b9d1603c7e36772771d2c5ca5d | |
parent | 298ebf2bd80ca415e58bbcbd9866ee58f167b620 (diff) |
distinguish between objects and register names, now we can have stuff
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
-rw-r--r-- | lib/Target/IA64/IA64AsmPrinter.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/Target/IA64/IA64AsmPrinter.cpp b/lib/Target/IA64/IA64AsmPrinter.cpp index 2c2a6d6c9b..d779104701 100644 --- a/lib/Target/IA64/IA64AsmPrinter.cpp +++ b/lib/Target/IA64/IA64AsmPrinter.cpp @@ -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// "; } |