summaryrefslogtreecommitdiff
path: root/lib/MC/MCSectionELF.cpp
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2009-08-13 23:30:21 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2009-08-13 23:30:21 +0000
commitfdf229eda95a542fc34d5182e1a91a22789ba122 (patch)
tree08f88c07f62f402320663b559c9f558a75849877 /lib/MC/MCSectionELF.cpp
parent0e275dc53880a7f14f8b8c83cc6e0290a215492d (diff)
downloadllvm-fdf229eda95a542fc34d5182e1a91a22789ba122.tar.gz
llvm-fdf229eda95a542fc34d5182e1a91a22789ba122.tar.bz2
llvm-fdf229eda95a542fc34d5182e1a91a22789ba122.tar.xz
Remove HasCrazyBSS and add a flag in TAI to indicate that '.section'
must be emitted for PowerPC-Linux '.bss' section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78958 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCSectionELF.cpp')
-rw-r--r--lib/MC/MCSectionELF.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/MC/MCSectionELF.cpp b/lib/MC/MCSectionELF.cpp
index 56f803496a..6e6f9990fe 100644
--- a/lib/MC/MCSectionELF.cpp
+++ b/lib/MC/MCSectionELF.cpp
@@ -16,20 +16,21 @@ using namespace llvm;
MCSectionELF *MCSectionELF::
Create(const StringRef &Section, unsigned Type, unsigned Flags,
- SectionKind K, bool hasCrazyBSS, bool isExplicit, MCContext &Ctx) {
+ SectionKind K, bool isExplicit, MCContext &Ctx) {
return new
- (Ctx) MCSectionELF(Section, Type, Flags, K, hasCrazyBSS, isExplicit);
+ (Ctx) MCSectionELF(Section, Type, Flags, K, isExplicit);
}
// ShouldOmitSectionDirective - Decides whether a '.section' directive
// should be printed before the section name
-bool MCSectionELF::ShouldOmitSectionDirective(const char *Name) const {
+bool MCSectionELF::ShouldOmitSectionDirective(const char *Name,
+ const TargetAsmInfo &TAI) const {
- // PPC/Linux doesn't support the .bss directive, it needs .section .bss.
// FIXME: Does .section .bss/.data/.text work everywhere??
- if ((!HasCrazyBSS && strncmp(Name, ".bss", 4) == 0) ||
- strncmp(Name, ".text", 5) == 0 ||
- strncmp(Name, ".data", 5) == 0)
+ if (strncmp(Name, ".text", 5) == 0 ||
+ strncmp(Name, ".data", 5) == 0 ||
+ (strncmp(Name, ".bss", 4) == 0 &&
+ !TAI.usesELFSectionDirectiveForBSS()))
return true;
return false;
@@ -46,8 +47,8 @@ bool MCSectionELF::ShouldPrintSectionType(unsigned Ty) const {
void MCSectionELF::PrintSwitchToSection(const TargetAsmInfo &TAI,
raw_ostream &OS) const {
-
- if (ShouldOmitSectionDirective(SectionName.c_str())) {
+
+ if (ShouldOmitSectionDirective(SectionName.c_str(), TAI)) {
OS << '\t' << getSectionName() << '\n';
return;
}