aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorDavid Tenty <daltenty@ibm.com>2019-08-08 15:40:35 +0000
committerDavid Tenty <daltenty@ibm.com>2019-08-08 15:40:35 +0000
commit8558aac82cd2329bdf2a2e887f42ba7bd246e746 (patch)
tree294c4d346674238d4db20f3f9a3fdaeb443c7083 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent27ca82f32a35f305a48487f6cf80155d25197cfd (diff)
downloadllvm-8558aac82cd2329bdf2a2e887f42ba7bd246e746.zip
llvm-8558aac82cd2329bdf2a2e887f42ba7bd246e746.tar.gz
llvm-8558aac82cd2329bdf2a2e887f42ba7bd246e746.tar.bz2
Enable assembly output of local commons for AIX
Summary: This patch enable assembly output of local commons for AIX using .lcomm directives. Adds a EmitXCOFFLocalCommonSymbol to MCStreamer so we can emit the AIX version of .lcomm assembly directives which include a csect name. Handle the case of BSS locals in PPCAIXAsmPrinter by using EmitXCOFFLocalCommonSymbol. Adds a test for generating .lcomm on AIX Targets. Reviewers: cebowleratibm, hubert.reinterpretcast, Xiangling_L, jasonliu, sfertile Reviewed By: sfertile Subscribers: wuzish, nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64825 llvm-svn: 368306
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
index ac7c4c5..7eb4901 100644
--- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -1836,11 +1836,12 @@ MCSection *TargetLoweringObjectFileXCOFF::SelectSectionForGlobal(
// Common symbols go into a csect with matching name which will get mapped
// into the .bss section.
- if (Kind.isCommon()) {
+ if (Kind.isBSSLocal() || Kind.isCommon()) {
SmallString<128> Name;
getNameWithPrefix(Name, GO, TM);
- return getContext().getXCOFFSection(Name, XCOFF::XMC_RW, XCOFF::XTY_CM,
- Kind, /* BeginSymbolName */ nullptr);
+ return getContext().getXCOFFSection(
+ Name, Kind.isBSSLocal() ? XCOFF::XMC_BS : XCOFF::XMC_RW, XCOFF::XTY_CM,
+ Kind, /* BeginSymbolName */ nullptr);
}
if (Kind.isText())