diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2017-10-25 03:37:12 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2017-10-25 03:37:12 +0000 |
| commit | 689e6c052e0514020e4a2c7623cb49056888c502 (patch) | |
| tree | 75561fd06d3c6639c9128e14b13c850c35156faf /llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s | |
| parent | 9f46ece85a1844c23a710645d9f84d936197d8de (diff) | |
| download | bcm5719-llvm-689e6c052e0514020e4a2c7623cb49056888c502.tar.gz bcm5719-llvm-689e6c052e0514020e4a2c7623cb49056888c502.zip | |
llvm-readobj: Add support for reading relocations in the Android packed format.
This is in preparation for testing lld's upcoming relocation packing
feature (D39152). I have verified that this implementation correctly
unpacks the relocations from a Chromium DSO built with gold and the
Android relocation packer for ARM32 and ARM64.
Differential Revision: https://reviews.llvm.org/D39272
llvm-svn: 316543
Diffstat (limited to 'llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s')
| -rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s b/llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s new file mode 100644 index 00000000000..ac844095104 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s @@ -0,0 +1,37 @@ +.ascii "APS2" +.sleb128 8 // Number of relocations +.sleb128 4096 // Initial offset + +.sleb128 2 // Number of relocations in group +.sleb128 1 // RELOCATION_GROUPED_BY_INFO_FLAG +.sleb128 8 // R_X86_RELATIVE + +.sleb128 256 // Reloc 1: r_offset delta +.sleb128 128 // Reloc 2: r_offset delta + +.sleb128 2 // Number of relocations in group +.sleb128 2 // RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG +.sleb128 8 // offset delta + +.sleb128 (1 << 32) | 1 // R_X86_64_64 (sym index 1) +.sleb128 (2 << 32) | 1 // R_X86_64_64 (sym index 2) + +.sleb128 2 // Number of relocations in group +.sleb128 8 // RELOCATION_GROUP_HAS_ADDEND_FLAG + +.sleb128 1 // offset delta +.sleb128 (1 << 32) | 1 // R_X86_64_64 (sym index 1) +.sleb128 8 // addend delta + +.sleb128 2 // offset delta +.sleb128 (2 << 32) | 1 // R_X86_64_64 (sym index 2) +.sleb128 4 // addend delta + +.sleb128 2 // Number of relocations in group +.sleb128 12 // RELOCATION_GROUP_HAS_ADDEND_FLAG | RELOCATION_GROUPED_BY_ADDEND_FLAG +.sleb128 -2 // addend delta + +.sleb128 4 // offset delta +.sleb128 (1 << 32) | 1 // R_X86_64_64 (sym index 1) +.sleb128 8 // offset delta +.sleb128 (2 << 32) | 1 // R_X86_64_64 (sym index 2) |

