Generalize
authorAnton Korobeynikov <asl@math.spbu.ru>
Fri, 8 Aug 2008 18:25:52 +0000 (18:25 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Fri, 8 Aug 2008 18:25:52 +0000 (18:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54542 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ATTAsmPrinter.cpp
lib/Target/X86/X86TargetAsmInfo.cpp

index bb519560a184853793ecb7c77beabfe1e8264d15..8a6b60425ec7056352f1653b70d69a2110227d8c 100644 (file)
@@ -806,10 +806,8 @@ void X86ATTAsmPrinter::printModuleLevelGV(const GlobalVariable* GVar) {
           return;
         } else {
           O << TAI->getCOMMDirective()  << name << ',' << Size;
-
-          // Leopard and above support aligned common symbols.
-          if (Subtarget->getDarwinVers() >= 9)
-            O << ',' << Align;
+          if (TAI->getCOMMDirectiveTakesAlignment())
+            O << ',' << (TAI->getAlignmentIsInBytes() ? (1 << Align) : Align);
         }
       } else {
         if (!Subtarget->isTargetCygMing()) {
index f7443c31f777bb5473fb65ae8f63cfe3e2fbd284..984c6b225c59dcc789bd7cb19b627d054779a74a 100644 (file)
@@ -126,7 +126,8 @@ bool X86TargetAsmInfo::ExpandInlineAsm(CallInst *CI) const {
 
 X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
   X86TargetAsmInfo(TM), DarwinTargetAsmInfo(TM) {
-  bool is64Bit = DTM->getSubtarget<X86Subtarget>().is64Bit();
+  const X86Subtarget* Subtarget = &DTM->getSubtarget<X86Subtarget>();
+  bool is64Bit = Subtarget->is64Bit();
 
   AlignmentIsInBytes = false;
   TextAlignFillValue = 0x90;
@@ -156,7 +157,8 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
   LCOMMDirective = "\t.lcomm\t";
   SwitchToSectionDirective = "\t.section ";
   StringConstantPrefix = "\1LC";
-  COMMDirectiveTakesAlignment = false;
+  // Leopard and above support aligned common symbols.
+  COMMDirectiveTakesAlignment = (Subtarget->getDarwinVers() >= 9);
   HasDotTypeDotSizeDirective = false;
   if (TM.getRelocationModel() == Reloc::Static) {
     StaticCtorsSection = ".constructor";