aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuraid Madina <duraid@octopus.com.au>2006-02-16 13:12:57 +0000
committerDuraid Madina <duraid@octopus.com.au>2006-02-16 13:12:57 +0000
commit00d3d44b75a6e4356c1130793c39f23d54041092 (patch)
tree5b482a3e6d3876b9d1603c7e36772771d2c5ca5d
parent298ebf2bd80ca415e58bbcbd9866ee58f167b620 (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.cpp18
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// ";
}