diff options
5 files changed, 15 insertions, 2 deletions
diff --git a/llvm/include/llvm/BinaryFormat/DynamicTags.def b/llvm/include/llvm/BinaryFormat/DynamicTags.def index 814d8b1..ae25ec5 100644 --- a/llvm/include/llvm/BinaryFormat/DynamicTags.def +++ b/llvm/include/llvm/BinaryFormat/DynamicTags.def @@ -209,6 +209,7 @@ MIPS_DYNAMIC_TAG(MIPS_RWPLT, 0x70000034) // Points to the base // of a writable PLT. MIPS_DYNAMIC_TAG(MIPS_RLD_MAP_REL, 0x70000035) // Relative offset of run time loader // map, used for debugging. +MIPS_DYNAMIC_TAG(MIPS_XHASH, 0x70000036) // GNU-style hash table with xlat. // PPC specific dynamic table entries. PPC_DYNAMIC_TAG(PPC_GOT, 0x70000000) // Uses Secure PLT ABI. diff --git a/llvm/test/tools/llvm-objdump/ELF/dynamic-section-machine-specific.test b/llvm/test/tools/llvm-objdump/ELF/dynamic-section-machine-specific.test index 08d7d2e..20219dd 100644 --- a/llvm/test/tools/llvm-objdump/ELF/dynamic-section-machine-specific.test +++ b/llvm/test/tools/llvm-objdump/ELF/dynamic-section-machine-specific.test @@ -86,6 +86,7 @@ ProgramHeaders: # MIPS-NEXT: MIPS_PLTGOT 0x0000000000001000 # MIPS-NEXT: MIPS_RWPLT 0x0000000000001000 # MIPS-NEXT: MIPS_RLD_MAP_REL 0x0000000000001000 +# MIPS-NEXT: MIPS_XHASH 0x0000000000002000 --- !ELF FileHeader: @@ -187,6 +188,8 @@ Sections: Value: 0x1000 - Tag: DT_MIPS_RLD_MAP_REL Value: 0x1000 + - Tag: DT_MIPS_XHASH + Value: 0x2000 - Tag: DT_NULL Value: 0 ProgramHeaders: diff --git a/llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test index 970edcc..c32ea33 100644 --- a/llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test +++ b/llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test @@ -53,7 +53,7 @@ ProgramHeaders: # RUN: llvm-readelf --dynamic-table %t.mips \ # RUN: | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=GNU-MIPS -# LLVM-MIPS:DynamicSection [ (47 entries) +# LLVM-MIPS:DynamicSection [ (48 entries) # LLVM-MIPS-NEXT: Tag Type Name/Value # LLVM-MIPS-NEXT: 0x0000000000000004 HASH 0x1000 # LLVM-MIPS-NEXT: 0x0000000070000001 MIPS_RLD_VERSION 305419896 @@ -101,10 +101,11 @@ ProgramHeaders: # LLVM-MIPS-NEXT: 0x0000000070000032 MIPS_PLTGOT 0x1000 # LLVM-MIPS-NEXT: 0x0000000070000034 MIPS_RWPLT 0x1000 # LLVM-MIPS-NEXT: 0x0000000070000035 MIPS_RLD_MAP_REL 0x1000 +# LLVM-MIPS-NEXT: 0x0000000070000036 MIPS_XHASH 0x2000 # LLVM-MIPS-NEXT: 0x0000000000000000 NULL 0x0 # LLVM-MIPS-NEXT:] -# GNU-MIPS:Dynamic section at offset {{.*}} contains 47 entries: +# GNU-MIPS:Dynamic section at offset {{.*}} contains 48 entries: # GNU-MIPS-NEXT: Tag Type Name/Value # GNU-MIPS-NEXT: 0x0000000000000004 (HASH) 0x1000 # GNU-MIPS-NEXT: 0x0000000070000001 (MIPS_RLD_VERSION) 305419896 @@ -152,6 +153,7 @@ ProgramHeaders: # GNU-MIPS-NEXT: 0x0000000070000032 (MIPS_PLTGOT) 0x1000 # GNU-MIPS-NEXT: 0x0000000070000034 (MIPS_RWPLT) 0x1000 # GNU-MIPS-NEXT: 0x0000000070000035 (MIPS_RLD_MAP_REL) 0x1000 +# GNU-MIPS-NEXT: 0x0000000070000036 (MIPS_XHASH) 0x2000 # GNU-MIPS-NEXT: 0x0000000000000000 (NULL) 0x0 --- !ELF @@ -256,6 +258,8 @@ Sections: Value: 0x1000 - Tag: DT_MIPS_RLD_MAP_REL Value: 0x1000 + - Tag: DT_MIPS_XHASH + Value: 0x2000 - Tag: DT_NULL Value: 0 ProgramHeaders: diff --git a/llvm/test/tools/obj2yaml/ELF/dynamic-section-arch-tags.yaml b/llvm/test/tools/obj2yaml/ELF/dynamic-section-arch-tags.yaml index 5523b2f..538838f 100644 --- a/llvm/test/tools/obj2yaml/ELF/dynamic-section-arch-tags.yaml +++ b/llvm/test/tools/obj2yaml/ELF/dynamic-section-arch-tags.yaml @@ -97,6 +97,8 @@ # MIPS-NEXT: Value: 0x2D # MIPS-NEXT: - Tag: DT_MIPS_RLD_MAP_REL # MIPS-NEXT: Value: 0x2E +# MIPS-NEXT: - Tag: DT_MIPS_XHASH +# MIPS-NEXT: Value: 0x2F --- !ELF FileHeader: @@ -200,6 +202,8 @@ Sections: Value: 0x000000000000002D - Tag: DT_MIPS_RLD_MAP_REL Value: 0x000000000000002E + - Tag: DT_MIPS_XHASH + Value: 0x000000000000002F ## Check we can handle Hexagon specific tags. # RUN: yaml2obj --docnum=2 %s -o %t2 diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index 04a6722..3d43d1a 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -2265,6 +2265,7 @@ std::string ELFDumper<ELFT>::getDynamicEntry(uint64_t Type, case DT_MIPS_PLTGOT: case DT_MIPS_RWPLT: case DT_MIPS_RLD_MAP_REL: + case DT_MIPS_XHASH: return FormatHexValue(Value); case DT_MIPS_FLAGS: return FormatFlags(Value, makeArrayRef(ElfDynamicDTMipsFlags)); |