summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-11-09 14:17:27 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-11-09 14:17:27 +0000
commitf740fd647a0f570d6d60c1dd4608b6a3ff20e437 (patch)
treea3a8fd1ded57869c89d928b16b2f7b2ad0947e14 /llvm/lib
parentdf78bf145242c81af2071a19200e66467d7af131 (diff)
downloadbcm5719-llvm-f740fd647a0f570d6d60c1dd4608b6a3ff20e437.tar.gz
bcm5719-llvm-f740fd647a0f570d6d60c1dd4608b6a3ff20e437.zip
[Hexagon] Handle Hexagon's SHF_HEX_GPREL section flag
llvm-svn: 346494
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/MC/MCParser/ELFAsmParser.cpp3
-rw-r--r--llvm/lib/MC/MCSectionELF.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCParser/ELFAsmParser.cpp b/llvm/lib/MC/MCParser/ELFAsmParser.cpp
index 3d9590e1f9f..d568f7a71ee 100644
--- a/llvm/lib/MC/MCParser/ELFAsmParser.cpp
+++ b/llvm/lib/MC/MCParser/ELFAsmParser.cpp
@@ -321,6 +321,9 @@ static unsigned parseSectionFlags(StringRef flagsStr, bool *UseLastGroup) {
case 'y':
flags |= ELF::SHF_ARM_PURECODE;
break;
+ case 's':
+ flags |= ELF::SHF_HEX_GPREL;
+ break;
case 'G':
flags |= ELF::SHF_GROUP;
break;
diff --git a/llvm/lib/MC/MCSectionELF.cpp b/llvm/lib/MC/MCSectionELF.cpp
index 4d77d05cc50..7ee1694ebbf 100644
--- a/llvm/lib/MC/MCSectionELF.cpp
+++ b/llvm/lib/MC/MCSectionELF.cpp
@@ -116,6 +116,9 @@ void MCSectionELF::PrintSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
} else if (T.isARM() || T.isThumb()) {
if (Flags & ELF::SHF_ARM_PURECODE)
OS << 'y';
+ } else if (Arch == Triple::hexagon) {
+ if (Flags & ELF::SHF_HEX_GPREL)
+ OS << 's';
}
OS << '"';
OpenPOWER on IntegriCloud