summaryrefslogtreecommitdiffstats
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
commit36a2ee299e35db340f5677512d0811ea693acd48 (patch)
tree3a3aa57ead9e0a0f472a15e9eadcb99026a2a327
parent42c01c8d393eb87558b5fb1c99b00a10cdbd3f08 (diff)
downloadbcm5719-llvm-36a2ee299e35db340f5677512d0811ea693acd48.tar.gz
bcm5719-llvm-36a2ee299e35db340f5677512d0811ea693acd48.zip
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 llvm-svn: 26232
-rw-r--r--llvm/lib/Target/IA64/IA64AsmPrinter.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/Target/IA64/IA64AsmPrinter.cpp b/llvm/lib/Target/IA64/IA64AsmPrinter.cpp
index 2c2a6d6c9b2..d779104701c 100644
--- a/llvm/lib/Target/IA64/IA64AsmPrinter.cpp
+++ b/llvm/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// ";
}
OpenPOWER on IntegriCloud