summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/ELFDumper.cpp
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2016-05-21 10:16:58 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2016-05-21 10:16:58 +0000
commitc13c59afa702bd2ed7804acb2672a8793eff41c7 (patch)
treeacb0a8ca40f57eb66ff245808e2e0319b6b7ac12 /llvm/tools/llvm-readobj/ELFDumper.cpp
parent0287e17d09b9c8cdf9e607f6b568e3ec5ed65e70 (diff)
downloadbcm5719-llvm-c13c59afa702bd2ed7804acb2672a8793eff41c7.tar.gz
bcm5719-llvm-c13c59afa702bd2ed7804acb2672a8793eff41c7.zip
[llvm-readobj] - Teach readobj to recognize SHF_COMPRESSED flag.
Main problem here was that SHF_COMPRESSED has the same value with XCORE_SHF_CP_SECTION, which was included as standart (common) flag. As far I understand xCore is a family of controllers and it that means it's constant should be processed separately, only if e_machine == EM_XCORE, otherwise llvm-readobj would output different constants twice for compressed section: Flags [ .. SHF_COMPRESSED (0x800) .. XCORE_SHF_CP_SECTION (0x800) .. ] what probably does not make sence if you're not working with xcore file. Differential revision: http://reviews.llvm.org/D20273 llvm-svn: 270320
Diffstat (limited to 'llvm/tools/llvm-readobj/ELFDumper.cpp')
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index a1d92e0b6fe..dfdd029a7f9 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -994,8 +994,12 @@ static const EnumEntry<unsigned> ElfSectionFlags[] = {
ENUM_ENT(SHF_TLS, "T"),
ENUM_ENT(SHF_MASKOS, "o"),
ENUM_ENT(SHF_MASKPROC, "p"),
- ENUM_ENT_1(XCORE_SHF_CP_SECTION),
- ENUM_ENT_1(XCORE_SHF_DP_SECTION),
+ ENUM_ENT_1(SHF_COMPRESSED),
+};
+
+static const EnumEntry<unsigned> ElfXCoreSectionFlags[] = {
+ LLVM_READOBJ_ENUM_ENT(ELF, XCORE_SHF_CP_SECTION),
+ LLVM_READOBJ_ENUM_ENT(ELF, XCORE_SHF_DP_SECTION)
};
static const EnumEntry<unsigned> ElfAMDGPUSectionFlags[] = {
@@ -3281,6 +3285,10 @@ template <class ELFT> void LLVMStyle<ELFT>::printSections(const ELFO *Obj) {
SectionFlags.insert(SectionFlags.end(), std::begin(ElfX86_64SectionFlags),
std::end(ElfX86_64SectionFlags));
break;
+ case EM_XCORE:
+ SectionFlags.insert(SectionFlags.end(), std::begin(ElfXCoreSectionFlags),
+ std::end(ElfXCoreSectionFlags));
+ break;
default:
// Nothing to do.
break;
OpenPOWER on IntegriCloud