diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-19 04:48:20 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-19 04:48:20 +0000 |
commit | 7517b249caa793a9a01e4b6aff9c47fd88a153cc (patch) | |
tree | c47754566cceb82f78370f52b59afa1a438e8cf2 /lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp | |
parent | 48d64ba9d846229339b2431b298620cb8a01ffc5 (diff) |
add a bool for whether .lcomm takes an alignment instead of basing this on "isdarwin".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93852 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp')
-rw-r--r-- | lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp b/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp index 22e2573c1c..14deafe65a 100644 --- a/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp +++ b/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp @@ -647,17 +647,18 @@ void X86AsmPrinter::printMachineInstruction(const MachineInstr *MI) { } void X86AsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) { - const TargetData *TD = TM.getTargetData(); MCSymbol *GVarSym = GetGlobalValueSymbol(GVar); Constant *C = GVar->getInitializer(); const Type *Type = C->getType(); + + const TargetData *TD = TM.getTargetData(); unsigned Size = TD->getTypeAllocSize(Type); unsigned Align = TD->getPreferredAlignmentLog(GVar); printVisibility(GVarSym, GVar->getVisibility()); - if (Subtarget->isTargetELF()) + if (MAI->hasDotTypeDotSizeDirective()) O << "\t.type\t" << *GVarSym << ",@object\n"; SectionKind GVKind = TargetLoweringObjectFile::getKindForGlobal(GVar, TM); @@ -685,7 +686,7 @@ void X86AsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) { if (const char *LComm = MAI->getLCOMMDirective()) { if (GVar->hasLocalLinkage()) { O << LComm << *GVarSym << ',' << Size; - if (Subtarget->isTargetDarwin()) + if (MAI->getLCOMMDirectiveTakesAlignment()) O << ',' << Align; } } else { |