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
This commit is contained in:
Duraid Madina 2006-02-16 13:12:57 +00:00
parent 42c01c8d39
commit 36a2ee299e
1 changed files with 12 additions and 6 deletions

View 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// ";
}