summaryrefslogtreecommitdiffstats
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
parentdf78bf145242c81af2071a19200e66467d7af131 (diff)
downloadbcm5719-llvm-f740fd647a0f570d6d60c1dd4608b6a3ff20e437.tar.gz
bcm5719-llvm-f740fd647a0f570d6d60c1dd4608b6a3ff20e437.zip
[Hexagon] Handle Hexagon's SHF_HEX_GPREL section flag
llvm-svn: 346494
-rw-r--r--llvm/lib/MC/MCParser/ELFAsmParser.cpp3
-rw-r--r--llvm/lib/MC/MCSectionELF.cpp3
-rw-r--r--llvm/test/MC/Hexagon/gprel-shflag.s10
3 files changed, 16 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 << '"';
diff --git a/llvm/test/MC/Hexagon/gprel-shflag.s b/llvm/test/MC/Hexagon/gprel-shflag.s
new file mode 100644
index 00000000000..6a8a9a027b6
--- /dev/null
+++ b/llvm/test/MC/Hexagon/gprel-shflag.s
@@ -0,0 +1,10 @@
+# RUN: llvm-mc -arch=hexagon -filetype=asm %s | FileCheck %s
+
+# Make sure the assembler can parse and print the "s" flag for Hexaon's
+# small-data section.
+# CHECK: .section .sdata,"aws",@progbits
+
+ .section ".sdata", "aws", @progbits
+var:
+ .word 0
+
OpenPOWER on IntegriCloud