set PrivateGlobalPrefix on darwin, use it when printing out CP references
authorChris Lattner <sabre@nondot.org>
Mon, 21 Nov 2005 06:47:58 +0000 (06:47 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 21 Nov 2005 06:47:58 +0000 (06:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24441 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCAsmPrinter.cpp

index 8e3ed6a0ea3296b656f276ed9b150544d2354a7b..666f65515c10b423f80dc48257086823b553cb21 100644 (file)
@@ -230,6 +230,7 @@ namespace {
       : PPCAsmPrinter(O, TM) {
       CommentString = ";";
       GlobalPrefix = "_";
+      PrivateGlobalPrefix = "L";     // Marker for constant pool idxs
       ZeroDirective = "\t.space\t";  // ".space N" emits N zeros.
       Data64bitsDirective = 0;       // we can't emit a 64-bit unit
       AlignmentIsInBytes = false;    // Alignment is by power of 2.
@@ -326,7 +327,8 @@ void PPCAsmPrinter::printOp(const MachineOperand &MO) {
   }
 
   case MachineOperand::MO_ConstantPoolIndex:
-    O << "LCPI" << FunctionNumber << '_' << MO.getConstantPoolIndex();
+    O << PrivateGlobalPrefix << "CPI" << FunctionNumber
+      << '_' << MO.getConstantPoolIndex();
     return;
 
   case MachineOperand::MO_ExternalSymbol:
@@ -447,16 +449,16 @@ void DarwinAsmPrinter::printConstantPool(MachineConstantPool *MCP) {
 
   if (CP.empty()) return;
 
+  SwitchSection(".const", 0);
   for (unsigned i = 0, e = CP.size(); i != e; ++i) {
-    SwitchSection(".const", 0);
     // FIXME: force doubles to be naturally aligned.  We should handle this
     // more correctly in the future.
-    if (Type::DoubleTy == CP[i]->getType())
+    if (CP[i]->getType() == Type::DoubleTy)
       emitAlignment(3);
     else
       emitAlignment(TD.getTypeAlignmentShift(CP[i]->getType()));
-    O << "LCPI" << FunctionNumber << '_' << i << ":\t\t\t\t\t" << CommentString
-      << *CP[i] << '\n';
+    O << PrivateGlobalPrefix << "CPI" << FunctionNumber << '_' << i
+      << ":\t\t\t\t\t" << CommentString << *CP[i] << '\n';
     emitGlobalConstant(CP[i]);
   }
 }
@@ -664,8 +666,8 @@ void AIXAsmPrinter::printConstantPool(MachineConstantPool *MCP) {
     SwitchSection(".const", 0);
     O << "\t.align " << (unsigned)TD.getTypeAlignment(CP[i]->getType())
       << "\n";
-    O << "LCPI" << FunctionNumber << '_' << i << ":\t\t\t\t\t;"
-      << *CP[i] << '\n';
+    O << PrivateGlobalPrefix << "CPI" << FunctionNumber << '_' << i
+      << ":\t\t\t\t\t;" << *CP[i] << '\n';
     emitGlobalConstant(CP[i]);
   }
 }