Index: ELF/OutputSections.h =================================================================== --- ELF/OutputSections.h +++ ELF/OutputSections.h @@ -377,6 +377,7 @@ void writeTo(uint8_t *Buf) override; bool hasRelocs() const { return !Relocs.empty(); } typename Base::Kind getKind() const override { return Base::Reloc; } + size_t getRelocCount() const { return Relocs.size(); } static bool classof(const Base *B) { return B->getKind() == Base::Reloc; } private: Index: ELF/OutputSections.cpp =================================================================== --- ELF/OutputSections.cpp +++ ELF/OutputSections.cpp @@ -359,6 +359,11 @@ template static bool compRelocations(const RelTy &A, const RelTy &B) { + bool AIsRel = A.getType(Config->Mips64EL) == Target->RelativeRel; + bool BIsRel = B.getType(Config->Mips64EL) == Target->RelativeRel; + if (AIsRel != BIsRel) + return AIsRel; + return A.getSymbol(Config->Mips64EL) < B.getSymbol(Config->Mips64EL); } @@ -661,6 +666,9 @@ Add({IsRela ? DT_RELASZ : DT_RELSZ, Out::RelaDyn->getSize()}); Add({IsRela ? DT_RELAENT : DT_RELENT, uintX_t(IsRela ? sizeof(Elf_Rela) : sizeof(Elf_Rel))}); + if (Config->ZCombreloc) + Add({IsRela ? DT_RELACOUNT : DT_RELCOUNT, + Out::RelaDyn->getRelocCount()}); } if (Out::RelaPlt && Out::RelaPlt->hasRelocs()) { Add({DT_JMPREL, Out::RelaPlt}); Index: test/ELF/aarch64-tls-gdie.s =================================================================== --- test/ELF/aarch64-tls-gdie.s +++ test/ELF/aarch64-tls-gdie.s @@ -21,14 +21,14 @@ // SEC-NEXT: SHF_ALLOC // SEC-NEXT: SHF_WRITE // SEC-NEXT: ] -// SEC-NEXT: Address: 0x120B0 +// SEC-NEXT: Address: 0x120C0 -// page(0x120B0) - page(0x11004) = 4096 -// 0x0B0 = 176 +// page(0x120C0) - page(0x11004) = 4096 +// 0x0C0 = 192 // CHECK: _start: // CHECK-NEXT: 11000: {{.*}} nop // CHECK-NEXT: 11004: {{.*}} adrp x0, #4096 -// CHECK-NEXT: 11008: {{.*}} ldr x0, [x0, #176] +// CHECK-NEXT: 11008: {{.*}} ldr x0, [x0, #192] // CHECK-NEXT: 1100c: {{.*}} nop // CHECK-NEXT: 11010: {{.*}} nop Index: test/ELF/aarch64-tls-ie.s =================================================================== --- test/ELF/aarch64-tls-ie.s +++ test/ELF/aarch64-tls-ie.s @@ -15,8 +15,8 @@ #RELOC-NEXT: SHF_ALLOC #RELOC-NEXT: SHF_WRITE #RELOC-NEXT: ] -#RELOC-NEXT: Address: 0x120B0 -#RELOC-NEXT: Offset: 0x20B0 +#RELOC-NEXT: Address: 0x120C0 +#RELOC-NEXT: Offset: 0x20C0 #RELOC-NEXT: Size: 16 #RELOC-NEXT: Link: 0 #RELOC-NEXT: Info: 0 @@ -25,21 +25,21 @@ #RELOC-NEXT: } #RELOC: Relocations [ #RELOC-NEXT: Section ({{.*}}) .rela.dyn { -#RELOC-NEXT: 0x120B8 R_AARCH64_TLS_TPREL64 bar 0x0 -#RELOC-NEXT: 0x120B0 R_AARCH64_TLS_TPREL64 foo 0x0 +#RELOC-NEXT: 0x120C8 R_AARCH64_TLS_TPREL64 bar 0x0 +#RELOC-NEXT: 0x120C0 R_AARCH64_TLS_TPREL64 foo 0x0 #RELOC-NEXT: } #RELOC-NEXT:] -# Page(0x120B0) - Page(0x11000) = 0x1000 = 4096 -# 0x120B0 & 0xff8 = 0xB0 = 176 -# Page(0x120B8) - Page(0x11000) = 0x1000 = 4096 -# 0x120B8 & 0xff8 = 0xB8 = 184 +# Page(0x120C0) - Page(0x11000) = 0x1000 = 4096 +# 0x120C0 & 0xff8 = 0xC0 = 192 +# Page(0x120C8) - Page(0x11000) = 0x1000 = 4096 +# 0x120C8 & 0xff8 = 0xC8 = 200 #CHECK: Disassembly of section .text: #CHECK: _start: #CHECK: 11000: 00 00 00 b0 adrp x0, #4096 -#CHECK: 11004: 00 58 40 f9 ldr x0, [x0, #176] +#CHECK: 11004: 00 60 40 f9 ldr x0, [x0, #192] #CHECK: 11008: 00 00 00 b0 adrp x0, #4096 -#CHECK: 1100c: 00 5c 40 f9 ldr x0, [x0, #184] +#CHECK: 1100c: 00 64 40 f9 ldr x0, [x0, #200] .globl _start _start: Index: test/ELF/aarch64-tls-static.s =================================================================== --- test/ELF/aarch64-tls-static.s +++ test/ELF/aarch64-tls-static.s @@ -23,8 +23,8 @@ // SEC-NEXT: SHF_ALLOC // SEC-NEXT: SHF_WRITE // SEC-NEXT: ] -// SEC-NEXT: Address: 0x2098 -// SEC-NEXT: Offset: 0x2098 +// SEC-NEXT: Address: 0x20A8 +// SEC-NEXT: Offset: 0x20A8 // SEC-NEXT: Size: 16 // page(0x2098) - page(0x1000) = 4096 @@ -32,6 +32,6 @@ // CHECK: foo: // CHECK-NEXT: 1000: {{.*}} adrp x0, #4096 -// CHECK-NEXT: 1004: {{.*}} ldr x1, [x0, #152] -// CHECK-NEXT: 1008: {{.*}} add x0, x0, #152 +// CHECK-NEXT: 1004: {{.*}} ldr x1, [x0, #168] +// CHECK-NEXT: 1008: {{.*}} add x0, x0, #168 // CHECK-NEXT: 100c: {{.*}} blr x1 Index: test/ELF/aarch64-tlsdesc.s =================================================================== --- test/ELF/aarch64-tlsdesc.s +++ test/ELF/aarch64-tlsdesc.s @@ -11,14 +11,14 @@ blr x1 // CHECK: 1000: {{.*}} adrp x0, #4096 -// CHECK-NEXT: 1004: {{.*}} ldr x1, [x0, #144] -// CHECK-NEXT: 1008: {{.*}} add x0, x0, #144 +// CHECK-NEXT: 1004: {{.*}} ldr x1, [x0, #160] +// CHECK-NEXT: 1008: {{.*}} add x0, x0, #160 // CHECK-NEXT: 100c: {{.*}} blr x1 -// 0x1000 + 4096 + 144 = 0x2090 +// 0x1000 + 4096 + 160 = 0x20A0 // REL: Relocations [ // REL-NEXT: Section (4) .rela.dyn { -// REL-NEXT: 0x2090 R_AARCH64_TLSDESC a 0x0 +// REL-NEXT: 0x20A0 R_AARCH64_TLSDESC a 0x0 // REL-NEXT: } // REL-NEXT: ] Index: test/ELF/arm-got-relative.s =================================================================== --- test/ELF/arm-got-relative.s +++ test/ELF/arm-got-relative.s @@ -28,7 +28,7 @@ bx lr // CHECK: Dynamic Relocations { -// CHECK-NEXT: 0x204C R_ARM_GLOB_DAT function 0x0 +// CHECK-NEXT: 0x2054 R_ARM_GLOB_DAT function 0x0 // CHECK: Name: _GLOBAL_OFFSET_TABLE_ (16) // CHECK-NEXT: Value: 0x0 @@ -47,7 +47,7 @@ // CODE-NEXT: 1008: 03 00 8f e0 add r0, pc, r3 // CODE-NEXT: 100c: 1e ff 2f e1 bx lr // CODE:$d.1: -// (_GLOBAL_OFFSET_TABLE_ = 0x2048) - (0x1008 + 8) 0x1038 -// CODE-NEXT: 1010: 38 10 00 00 +// (_GLOBAL_OFFSET_TABLE_ = 0x2054) - (0x1008 + 8) 0x1038 +// CODE-NEXT: 1010: 40 10 00 00 // (Got(function) - GotBase = 0x4 // CODE-NEXT: 1014: 04 00 00 00 Index: test/ELF/arm-tls-gd32.s =================================================================== --- test/ELF/arm-tls-gd32.s +++ test/ELF/arm-tls-gd32.s @@ -80,15 +80,15 @@ // SEC-NEXT: SHF_ALLOC // SEC-NEXT: SHF_WRITE // SEC-NEXT: ] -// SEC-NEXT: Address: 0x204C +// SEC-NEXT: Address: 0x2054 // SEC: Size: 24 // SEC: Dynamic Relocations { -// SEC-NEXT: 0x205C R_ARM_TLS_DTPMOD32 - -// SEC-NEXT: 0x204C R_ARM_TLS_DTPMOD32 x -// SEC-NEXT: 0x2050 R_ARM_TLS_DTPOFF32 x -// SEC-NEXT: 0x2054 R_ARM_TLS_DTPMOD32 y -// SEC-NEXT: 0x2058 R_ARM_TLS_DTPOFF32 y +// SEC-NEXT: 0x2064 R_ARM_TLS_DTPMOD32 - +// SEC-NEXT: 0x2054 R_ARM_TLS_DTPMOD32 x +// SEC-NEXT: 0x2058 R_ARM_TLS_DTPOFF32 x +// SEC-NEXT: 0x205C R_ARM_TLS_DTPMOD32 y +// SEC-NEXT: 0x2060 R_ARM_TLS_DTPOFF32 y // CHECK: Disassembly @@ -97,10 +97,10 @@ // CHECK-NEXT: 1004: 00 f0 20 e3 nop // CHECK-NEXT: 1008: 00 f0 20 e3 nop -// (0x204c - 0x100c) + (0x100c - 0x1000 - 8) = 0x1044 -// CHECK: 100c: 44 10 00 00 -// (0x2054 - 0x1010) + (0x1010 - 0x1004 - 8) = 0x1048 -// CHECK-NEXT: 1010: 48 10 00 00 -// (0x205c - 0x1014) + (0x1014 - 0x1008 - 8) = 0x104c -// CHECK-NEXT: 1014: 4c 10 00 00 +// (0x2054 - 0x100c) + (0x100c - 0x1000 - 8) = 0x1044 +// CHECK: 100c: 4c 10 00 00 +// (0x205c - 0x1010) + (0x1010 - 0x1004 - 8) = 0x1048 +// CHECK-NEXT: 1010: 50 10 00 00 +// (0x2064 - 0x1014) + (0x1014 - 0x1008 - 8) = 0x1054 +// CHECK-NEXT: 1014: 54 10 00 00 Index: test/ELF/arm-tls-ie32.s =================================================================== --- test/ELF/arm-tls-ie32.s +++ test/ELF/arm-tls-ie32.s @@ -73,14 +73,14 @@ // SEC-NEXT: SHF_ALLOC // SEC-NEXT: SHF_WRITE // SEC-NEXT: ] -// SEC-NEXT: Address: 0x204C +// SEC-NEXT: Address: 0x2054 // SEC: Size: 12 // SEC: Dynamic Relocations { -// SEC: 0x2054 R_ARM_TLS_TPOFF32 -// SEC: 0x204C R_ARM_TLS_TPOFF32 x -// SEC: 0x2050 R_ARM_TLS_TPOFF32 y +// SEC: 0x205C R_ARM_TLS_TPOFF32 +// SEC: 0x2054 R_ARM_TLS_TPOFF32 x +// SEC: 0x2058 R_ARM_TLS_TPOFF32 y // CHECK: Disassembly of section .text: // CHECK-NEXT: func: @@ -88,9 +88,9 @@ // CHECK-NEXT: 1004: 00 f0 20 e3 nop // CHECK-NEXT: 1008: 00 f0 20 e3 nop -// (0x204c - 0x100c) + (0x100c - 0x1000 - 8) = 0x1044 -// CHECK: 100c: 44 10 00 00 -// (0x2050 - 0x1010) + (0x1010 - 0x1004 - 8) = 0x1044 -// CHECK-NEXT: 1010: 44 10 00 00 -// (0x2054 - 0x1014) + (0x1014 - 0x1008 - 8) = 0x1044 -// CHECK-NEXT: 1014: 44 10 00 00 +// (0x2054 - 0x100c) + (0x100c - 0x1000 - 8) = 0x104c +// CHECK: 100c: 4c 10 00 00 +// (0x2058 - 0x1010) + (0x1010 - 0x1004 - 8) = 0x104c +// CHECK-NEXT: 1010: 4c 10 00 00 +// (0x205c - 0x1014) + (0x1014 - 0x1008 - 8) = 0x104c +// CHECK-NEXT: 1014: 4c 10 00 00 Index: test/ELF/arm-tls-ldm32.s =================================================================== --- test/ELF/arm-tls-ldm32.s +++ test/ELF/arm-tls-ldm32.s @@ -53,14 +53,14 @@ // SEC: Size: 4 // SEC: Dynamic Relocations { -// SEC-NEXT: 0x204C R_ARM_TLS_DTPMOD32 - 0x0 +// SEC-NEXT: 0x2054 R_ARM_TLS_DTPMOD32 - 0x0 // CHECK: Disassembly of section .text: // CHECK-NEXT: _start: // CHECK-NEXT: 1000: 00 f0 20 e3 nop -// (0x204c - 0x1004) + (0x1004 - 0x1000 - 8) = 0x1044 -// CHECK: 1004: 44 10 00 00 +// (0x2054 - 0x1004) + (0x1004 - 0x1000 - 8) = 0x104c +// CHECK: 1004: 4c 10 00 00 // CHECK-NEXT: 1008: 00 00 00 00 // CHECK-NEXT: 100c: 04 00 00 00 Index: test/ELF/combrelocs.s =================================================================== --- test/ELF/combrelocs.s +++ test/ELF/combrelocs.s @@ -40,7 +40,7 @@ # CHECK-NEXT: ] # CHECK: DynamicSection [ # CHECK-NEXT: Tag -# CHECK-NOT: RELACOUNT +# CHECK: RELACOUNT 5 # RUN: ld.lld -z nocombreloc -shared %t.o -o %t.out # RUN: llvm-readobj -r --expand-relocs --dynamic-table %t.out | \ Index: test/ELF/gnu-ifunc-gotpcrel.s =================================================================== --- test/ELF/gnu-ifunc-gotpcrel.s +++ test/ELF/gnu-ifunc-gotpcrel.s @@ -6,7 +6,7 @@ # RUN: llvm-readobj -dyn-relocations %t | FileCheck %s # CHECK: Dynamic Relocations { -# CHECK-NEXT: 0x120B0 R_X86_64_GLOB_DAT foo 0x0 +# CHECK-NEXT: 0x120C0 R_X86_64_GLOB_DAT foo 0x0 # CHECK-NEXT: } .globl _start Index: test/ELF/got-aarch64.s =================================================================== --- test/ELF/got-aarch64.s +++ test/ELF/got-aarch64.s @@ -10,7 +10,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x2090 +// CHECK-NEXT: Address: 0x20A0 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 8 // CHECK-NEXT: Link: 0 @@ -19,7 +19,7 @@ // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x2090 R_AARCH64_GLOB_DAT dat 0x0 +// CHECK-NEXT: 0x20A0 R_AARCH64_GLOB_DAT dat 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] @@ -27,8 +27,8 @@ // 0x2098 & 0xff8 = 0x98 = 152 // DISASM: main: -// DISASM-NEXT: 1000: {{.*}} adrp x0, #4096 -// DISASM-NEXT: 1004: {{.*}} ldr x0, [x0, #144] +// DISASM-NEXT: 1000: 00 00 00 b0 adrp x0, #4096 +// DISASM-NEXT: 1004: 00 50 40 f9 ldr x0, [x0, #160] .global main,foo,dat .text Index: test/ELF/got.s =================================================================== --- test/ELF/got.s +++ test/ELF/got.s @@ -12,7 +12,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x120B0 +// CHECK-NEXT: Address: 0x120C0 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 16 // CHECK-NEXT: Link: 0 @@ -21,22 +21,22 @@ // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x120B0 R_X86_64_GLOB_DAT bar 0x0 -// CHECK-NEXT: 0x120B8 R_X86_64_GLOB_DAT zed 0x0 +// CHECK-NEXT: 0x120C0 R_X86_64_GLOB_DAT bar 0x0 +// CHECK-NEXT: 0x120C8 R_X86_64_GLOB_DAT zed 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] // Unfortunately FileCheck can't do math, so we have to check for explicit // values: -// 0x120B0 - (0x11000 + 2) - 4 = 4266 -// 0x120B0 - (0x11006 + 2) - 4 = 4260 +// 0x120C0 - (0x11000 + 2) - 4 = 4282 +// 0x120C0 - (0x11006 + 2) - 4 = 4276 // 0x120A8 - (0x1100c + 2) - 4 = 4262 // DISASM: _start: -// DISASM-NEXT: 11000: {{.*}} jmpq *4266(%rip) -// DISASM-NEXT: 11006: {{.*}} jmpq *4260(%rip) -// DISASM-NEXT: 1100c: {{.*}} jmpq *4262(%rip) +// DISASM-NEXT: 11000: ff 25 ba 10 00 00 jmpq *4282(%rip) +// DISASM-NEXT: 11006: ff 25 b4 10 00 00 jmpq *4276(%rip) +// DISASM-NEXT: 1100c: ff 25 b6 10 00 00 jmpq *4278(%rip) .global _start _start: Index: test/ELF/gotpc-relax-nopic.s =================================================================== --- test/ELF/gotpc-relax-nopic.s +++ test/ELF/gotpc-relax-nopic.s @@ -36,8 +36,8 @@ # SEC-PIC-NEXT: SHF_ALLOC # SEC-PIC-NEXT: SHF_WRITE # SEC-PIC-NEXT: ] -# SEC-PIC-NEXT: Address: 0x2090 -# SEC-PIC-NEXT: Offset: 0x2090 +# SEC-PIC-NEXT: Address: 0x20A0 +# SEC-PIC-NEXT: Offset: 0x20A0 # SEC-PIC-NEXT: Size: 8 # SEC-PIC-NEXT: Link: # SEC-PIC-NEXT: Info: @@ -46,19 +46,19 @@ # SEC-PIC-NEXT: } ## Check that there was no relaxation performed. All values refer to got entry. -## Ex: 0x1000 + 4233 + 7 = 0x2090 -## 0x102a + 4191 + 7 = 0x2090 +## Ex: 0x1000 + 4233 + 7 = 0x20A0 +## 0x102a + 4191 + 7 = 0x20A0 # DISASM-PIC: Disassembly of section .text: # DISASM-PIC-NEXT: _start: -# DISASM-PIC-NEXT: 1000: 48 13 05 89 10 00 00 adcq 4233(%rip), %rax -# DISASM-PIC-NEXT: 1007: 48 03 1d 82 10 00 00 addq 4226(%rip), %rbx -# DISASM-PIC-NEXT: 100e: 48 23 0d 7b 10 00 00 andq 4219(%rip), %rcx -# DISASM-PIC-NEXT: 1015: 48 3b 15 74 10 00 00 cmpq 4212(%rip), %rdx -# DISASM-PIC-NEXT: 101c: 48 0b 3d 6d 10 00 00 orq 4205(%rip), %rdi -# DISASM-PIC-NEXT: 1023: 48 1b 35 66 10 00 00 sbbq 4198(%rip), %rsi -# DISASM-PIC-NEXT: 102a: 48 2b 2d 5f 10 00 00 subq 4191(%rip), %rbp -# DISASM-PIC-NEXT: 1031: 4c 33 05 58 10 00 00 xorq 4184(%rip), %r8 -# DISASM-PIC-NEXT: 1038: 4c 85 3d 51 10 00 00 testq 4177(%rip), %r15 +# DISASM-PIC-NEXT: 1000: 48 13 05 99 10 00 00 adcq 4249(%rip), %rax +# DISASM-PIC-NEXT: 1007: 48 03 1d 92 10 00 00 addq 4242(%rip), %rbx +# DISASM-PIC-NEXT: 100e: 48 23 0d 8b 10 00 00 andq 4235(%rip), %rcx +# DISASM-PIC-NEXT: 1015: 48 3b 15 84 10 00 00 cmpq 4228(%rip), %rdx +# DISASM-PIC-NEXT: 101c: 48 0b 3d 7d 10 00 00 orq 4221(%rip), %rdi +# DISASM-PIC-NEXT: 1023: 48 1b 35 76 10 00 00 sbbq 4214(%rip), %rsi +# DISASM-PIC-NEXT: 102a: 48 2b 2d 6f 10 00 00 subq 4207(%rip), %rbp +# DISASM-PIC-NEXT: 1031: 4c 33 05 68 10 00 00 xorq 4200(%rip), %r8 +# DISASM-PIC-NEXT: 1038: 4c 85 3d 61 10 00 00 testq 4193(%rip), %r15 .data .type bar, @object Index: test/ELF/gotpc-relax-und-dso.s =================================================================== --- test/ELF/gotpc-relax-und-dso.s +++ test/ELF/gotpc-relax-und-dso.s @@ -22,22 +22,22 @@ # DISASM: hid: # DISASM-NEXT: nop # DISASM: _start: -# DISASM-NEXT: movq 4247(%rip), %rax -# DISASM-NEXT: movq 4240(%rip), %rax -# DISASM-NEXT: movq 4241(%rip), %rax -# DISASM-NEXT: movq 4234(%rip), %rax -# DISASM-NEXT: leaq -36(%rip), %rax -# DISASM-NEXT: leaq -43(%rip), %rax -# DISASM-NEXT: movq 4221(%rip), %rax -# DISASM-NEXT: movq 4214(%rip), %rax -# DISASM-NEXT: movq 4191(%rip), %rax -# DISASM-NEXT: movq 4184(%rip), %rax -# DISASM-NEXT: movq 4185(%rip), %rax -# DISASM-NEXT: movq 4178(%rip), %rax -# DISASM-NEXT: leaq -92(%rip), %rax -# DISASM-NEXT: leaq -99(%rip), %rax -# DISASM-NEXT: movq 4165(%rip), %rax -# DISASM-NEXT: movq 4158(%rip), %rax +# DISASM-NEXT: movq 4263(%rip), %rax +# DISASM-NEXT: movq 4256(%rip), %rax +# DISASM-NEXT: movq 4257(%rip), %rax +# DISASM-NEXT: movq 4250(%rip), %rax +# DISASM-NEXT: leaq -36(%rip), %rax +# DISASM-NEXT: leaq -43(%rip), %rax +# DISASM-NEXT: movq 4237(%rip), %rax +# DISASM-NEXT: movq 4230(%rip), %rax +# DISASM-NEXT: movq 4207(%rip), %rax +# DISASM-NEXT: movq 4200(%rip), %rax +# DISASM-NEXT: movq 4201(%rip), %rax +# DISASM-NEXT: movq 4194(%rip), %rax +# DISASM-NEXT: leaq -92(%rip), %rax +# DISASM-NEXT: leaq -99(%rip), %rax +# DISASM-NEXT: movq 4181(%rip), %rax +# DISASM-NEXT: movq 4174(%rip), %rax .text .globl foo Index: test/ELF/gotpcrelx.s =================================================================== --- test/ELF/gotpcrelx.s +++ test/ELF/gotpcrelx.s @@ -20,11 +20,11 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x2090 +// CHECK-NEXT: Address: 0x20A0 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x2098 R_X86_64_GLOB_DAT bar 0x0 -// CHECK-NEXT: 0x2090 R_X86_64_GLOB_DAT foo 0x0 +// CHECK-NEXT: 0x20A8 R_X86_64_GLOB_DAT bar 0x0 +// CHECK-NEXT: 0x20A0 R_X86_64_GLOB_DAT foo 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] Index: test/ELF/i386-tls-ie-shared.s =================================================================== --- test/ELF/i386-tls-ie-shared.s +++ test/ELF/i386-tls-ie-shared.s @@ -13,8 +13,8 @@ // GOTRELSHARED-NEXT: SHF_ALLOC // GOTRELSHARED-NEXT: SHF_WRITE // GOTRELSHARED-NEXT: ] -// GOTRELSHARED-NEXT: Address: 0x1050 -// GOTRELSHARED-NEXT: Offset: 0x1050 +// GOTRELSHARED-NEXT: Address: 0x1058 +// GOTRELSHARED-NEXT: Offset: 0x1058 // GOTRELSHARED-NEXT: Size: 16 // GOTRELSHARED-NEXT: Link: 0 // GOTRELSHARED-NEXT: Info: 0 @@ -31,10 +31,10 @@ // GOTRELSHARED-NEXT: 0x202D R_386_RELATIVE - 0x0 // GOTRELSHARED-NEXT: 0x2036 R_386_RELATIVE - 0x0 // GOTRELSHARED-NEXT: 0x203F R_386_RELATIVE - 0x0 -// GOTRELSHARED-NEXT: 0x1050 R_386_TLS_TPOFF tlslocal0 0x0 -// GOTRELSHARED-NEXT: 0x1054 R_386_TLS_TPOFF tlslocal1 0x0 -// GOTRELSHARED-NEXT: 0x1058 R_386_TLS_TPOFF tlsshared0 0x0 -// GOTRELSHARED-NEXT: 0x105C R_386_TLS_TPOFF tlsshared1 0x0 +// GOTRELSHARED-NEXT: 0x1058 R_386_TLS_TPOFF tlslocal0 0x0 +// GOTRELSHARED-NEXT: 0x105C R_386_TLS_TPOFF tlslocal1 0x0 +// GOTRELSHARED-NEXT: 0x1060 R_386_TLS_TPOFF tlsshared0 0x0 +// GOTRELSHARED-NEXT: 0x1064 R_386_TLS_TPOFF tlsshared1 0x0 // GOTRELSHARED-NEXT: } // GOTRELSHARED-NEXT: ] @@ -44,22 +44,22 @@ // (.got)[1] = 0x2054 = 8276 // (.got)[2] = 0x2058 = 8280 // (.got)[3] = 0x205C = 8284 -// DISASMSHARED-NEXT: 2000: 8b 0d 50 10 00 00 movl 4176, %ecx -// DISASMSHARED-NEXT: 2006: 65 8b 01 movl %gs:(%ecx), %eax -// DISASMSHARED-NEXT: 2009: a1 50 10 00 00 movl 4176, %eax -// DISASMSHARED-NEXT: 200e: 65 8b 00 movl %gs:(%eax), %eax -// DISASMSHARED-NEXT: 2011: 03 0d 50 10 00 00 addl 4176, %ecx -// DISASMSHARED-NEXT: 2017: 65 8b 01 movl %gs:(%ecx), %eax -// DISASMSHARED-NEXT: 201a: 8b 0d 54 10 00 00 movl 4180, %ecx -// DISASMSHARED-NEXT: 2020: 65 8b 01 movl %gs:(%ecx), %eax -// DISASMSHARED-NEXT: 2023: a1 54 10 00 00 movl 4180, %eax -// DISASMSHARED-NEXT: 2028: 65 8b 00 movl %gs:(%eax), %eax -// DISASMSHARED-NEXT: 202b: 03 0d 54 10 00 00 addl 4180, %ecx -// DISASMSHARED-NEXT: 2031: 65 8b 01 movl %gs:(%ecx), %eax -// DISASMSHARED-NEXT: 2034: 8b 0d 58 10 00 00 movl 4184, %ecx -// DISASMSHARED-NEXT: 203a: 65 8b 01 movl %gs:(%ecx), %eax -// DISASMSHARED-NEXT: 203d: 03 0d 5c 10 00 00 addl 4188, %ecx -// DISASMSHARED-NEXT: 2043: 65 8b 01 movl %gs:(%ecx), %eax +// DISASMSHARED-NEXT: 2000: 8b 0d 58 10 00 00 movl 4184, %ecx +// DISASMSHARED-NEXT: 2006: 65 8b 01 movl %gs:(%ecx), %eax +// DISASMSHARED-NEXT: 2009: a1 58 10 00 00 movl 4184, %eax +// DISASMSHARED-NEXT: 200e: 65 8b 00 movl %gs:(%eax), %eax +// DISASMSHARED-NEXT: 2011: 03 0d 58 10 00 00 addl 4184, %ecx +// DISASMSHARED-NEXT: 2017: 65 8b 01 movl %gs:(%ecx), %eax +// DISASMSHARED-NEXT: 201a: 8b 0d 5c 10 00 00 movl 4188, %ecx +// DISASMSHARED-NEXT: 2020: 65 8b 01 movl %gs:(%ecx), %eax +// DISASMSHARED-NEXT: 2023: a1 5c 10 00 00 movl 4188, %eax +// DISASMSHARED-NEXT: 2028: 65 8b 00 movl %gs:(%eax), %eax +// DISASMSHARED-NEXT: 202b: 03 0d 5c 10 00 00 addl 4188, %ecx +// DISASMSHARED-NEXT: 2031: 65 8b 01 movl %gs:(%ecx), %eax +// DISASMSHARED-NEXT: 2034: 8b 0d 60 10 00 00 movl 4192, %ecx +// DISASMSHARED-NEXT: 203a: 65 8b 01 movl %gs:(%ecx), %eax +// DISASMSHARED-NEXT: 203d: 03 0d 64 10 00 00 addl 4196, %ecx +// DISASMSHARED-NEXT: 2043: 65 8b 01 movl %gs:(%ecx), %eax .type tlslocal0,@object .section .tbss,"awT",@nobits Index: test/ELF/linkerscript/linkerscript-data-segment-relro.s =================================================================== --- test/ELF/linkerscript/linkerscript-data-segment-relro.s +++ test/ELF/linkerscript/linkerscript-data-segment-relro.s @@ -31,8 +31,8 @@ # CHECK-NEXT: SHF_ALLOC # CHECK-NEXT: SHF_WRITE # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x2000F0 -# CHECK-NEXT: Offset: 0x10F0 +# CHECK-NEXT: Address: 0x200100 +# CHECK-NEXT: Offset: 0x1100 # CHECK-NEXT: Size: # CHECK-NEXT: Link: # CHECK-NEXT: Info: Index: test/ELF/local-got-pie.s =================================================================== --- test/ELF/local-got-pie.s +++ test/ELF/local-got-pie.s @@ -12,10 +12,10 @@ foo: nop -// 0x20A0 - 1001 - 5 = 4250 +// 0x20B0 - 1001 - 5 = 4266 // DISASM: Disassembly of section .text: // DISASM-NEXT: _start: -// DISASM-NEXT: 1000: {{.*}} callq 4251 +// DISASM-NEXT: 1000: {{.*}} callq 4267 // DISASM: foo: // DISASM-NEXT: 1005: {{.*}} nop @@ -25,12 +25,12 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x20A0 +// CHECK-NEXT: Address: 0x20B0 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 8 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x20A0 R_X86_64_RELATIVE - 0x1005 +// CHECK-NEXT: 0x20B0 R_X86_64_RELATIVE - 0x1005 // CHECK-NEXT: } // CHECK-NEXT: ] Index: test/ELF/local-got-shared.s =================================================================== --- test/ELF/local-got-shared.s +++ test/ELF/local-got-shared.s @@ -11,9 +11,9 @@ foo: nop -// 0x2090 - 0x1000 - 5 = 4235 +// 0x20A0 - 0x1000 - 5 = 4251 // DISASM: bar: -// DISASM-NEXT: 1000: {{.*}} callq 4235 +// DISASM-NEXT: 1000: {{.*}} callq 4251 // DISASM: foo: // DISASM-NEXT: 1005: {{.*}} nop @@ -24,12 +24,12 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x2090 +// CHECK-NEXT: Address: 0x20A0 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 8 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x2090 R_X86_64_RELATIVE - 0x1005 +// CHECK-NEXT: 0x20A0 R_X86_64_RELATIVE - 0x1005 // CHECK-NEXT: } // CHECK-NEXT: ] Index: test/ELF/local-got.s =================================================================== --- test/ELF/local-got.s +++ test/ELF/local-got.s @@ -14,11 +14,11 @@ foo: nop -// 0x120B0 - 0x11000 - 5 = 4251 -// 0x120B8 - 0x11005 - 5 = 4254 +// 0x120C0 - 0x11000 - 5 = 4251 +// 0x120C8 - 0x11005 - 5 = 4254 // DISASM: _start: -// DISASM-NEXT: 11000: {{.*}} callq 4267 -// DISASM-NEXT: 11005: {{.*}} callq 4270 +// DISASM-NEXT: 11000: {{.*}} callq 4283 +// DISASM-NEXT: 11005: {{.*}} callq 4286 // DISASM: foo: // DISASM-NEXT: 1100a: {{.*}} nop @@ -29,7 +29,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x120B0 +// CHECK-NEXT: Address: 0x120C0 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 16 // CHECK-NEXT: Link: 0 @@ -43,6 +43,6 @@ // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x120B0 R_X86_64_GLOB_DAT bar 0x0 +// CHECK-NEXT: 0x120C0 R_X86_64_GLOB_DAT bar 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] Index: test/ELF/noplt-pie.s =================================================================== --- test/ELF/noplt-pie.s +++ test/ELF/noplt-pie.s @@ -10,8 +10,8 @@ # CHECK: Relocations [ # CHECK-NEXT: Section ({{.*}}) .rela.dyn { -# CHECK-NEXT: 0x120B0 R_X86_64_GLOB_DAT bar 0x0 -# CHECK-NEXT: 0x120B8 R_X86_64_GLOB_DAT zed 0x0 +# CHECK-NEXT: 0x120C0 R_X86_64_GLOB_DAT bar 0x0 +# CHECK-NEXT: 0x120C8 R_X86_64_GLOB_DAT zed 0x0 # CHECK-NEXT: } # CHECK-NEXT: ] Index: test/ELF/relocation-i686.s =================================================================== --- test/ELF/relocation-i686.s +++ test/ELF/relocation-i686.s @@ -55,7 +55,7 @@ // ADDR-NEXT: SHF_ALLOC // ADDR-NEXT: SHF_WRITE // ADDR-NEXT: ] -// ADDR-NEXT: Address: 0x12078 +// ADDR-NEXT: Address: 0x12080 .section .R_386_GOTPC,"ax",@progbits R_386_GOTPC: @@ -65,7 +65,7 @@ // CHECK: Disassembly of section .R_386_GOTPC: // CHECK-NEXT: R_386_GOTPC: -// CHECK-NEXT: 11014: {{.*}} movl $4196, %eax +// CHECK-NEXT: 11014: {{.*}} movl $4204, %eax .section .dynamic_reloc, "ax",@progbits call bar Index: test/ELF/relocation.s =================================================================== --- test/ELF/relocation.s +++ test/ELF/relocation.s @@ -22,7 +22,7 @@ // SEC-NEXT: SHF_ALLOC // SEC-NEXT: SHF_WRITE // SEC-NEXT: ] -// SEC-NEXT: Address: 0x120F0 +// SEC-NEXT: Address: 0x12100 // SEC-NEXT: Offset: // SEC-NEXT: Size: 8 // SEC-NEXT: Link: 0 @@ -123,7 +123,7 @@ // 0x120F8 - 0x101D8 = 7952 // 7952 = 0x101f0000 in little endian // CHECK: Contents of section .R_X86_64_GOTPCREL -// CHECK-NEXT: 101d0 201f0000 +// CHECK-NEXT: 101d0 301f0000 .section .R_X86_64_GOT32,"a",@progbits .global R_X86_64_GOT32 Index: test/ELF/relro.s =================================================================== --- test/ELF/relro.s +++ test/ELF/relro.s @@ -17,8 +17,8 @@ // FULLRELRO-NEXT: SHF_ALLOC // FULLRELRO-NEXT: SHF_WRITE // FULLRELRO-NEXT: ] -// FULLRELRO-NEXT: Address: 0x12110 -// FULLRELRO-NEXT: Offset: 0x2110 +// FULLRELRO-NEXT: Address: 0x12120 +// FULLRELRO-NEXT: Offset: 0x2120 // FULLRELRO-NEXT: Size: 8 // FULLRELRO-NEXT: Link: 0 // FULLRELRO-NEXT: Info: 0 @@ -36,8 +36,8 @@ // FULLRELRO-NEXT: SHF_ALLOC // FULLRELRO-NEXT: SHF_WRITE // FULLRELRO-NEXT: ] -// FULLRELRO-NEXT: Address: 0x12118 -// FULLRELRO-NEXT: Offset: 0x2118 +// FULLRELRO-NEXT: Address: 0x12128 +// FULLRELRO-NEXT: Offset: 0x2128 // FULLRELRO-NEXT: Size: 32 // FULLRELRO-NEXT: Link: 0 // FULLRELRO-NEXT: Info: 0 @@ -103,8 +103,8 @@ // FULLRELRO-NEXT: Offset: 0x // FULLRELRO-NEXT: VirtualAddress: [[RWADDR]] // FULLRELRO-NEXT: PhysicalAddress: -// FULLRELRO-NEXT: FileSize: 312 -// FULLRELRO-NEXT: MemSize: 312 +// FULLRELRO-NEXT: FileSize: 328 +// FULLRELRO-NEXT: MemSize: 328 // FULLRELRO-NEXT: Flags [ // FULLRELRO-NEXT: PF_R // FULLRELRO-NEXT: ] @@ -119,8 +119,8 @@ // PARTRELRO-NEXT: SHF_ALLOC // PARTRELRO-NEXT: SHF_WRITE // PARTRELRO-NEXT: ] -// PARTRELRO-NEXT: Address: 0x120F0 -// PARTRELRO-NEXT: Offset: 0x20F0 +// PARTRELRO-NEXT: Address: 0x12100 +// PARTRELRO-NEXT: Offset: 0x2100 // PARTRELRO-NEXT: Size: 8 // PARTRELRO-NEXT: Link: 0 // PARTRELRO-NEXT: Info: 0 @@ -219,8 +219,8 @@ // PARTRELRO-NEXT: Offset: 0x2000 // PARTRELRO-NEXT: VirtualAddress: [[RWADDR]] // PARTRELRO-NEXT: PhysicalAddress: -// PARTRELRO-NEXT: FileSize: 248 -// PARTRELRO-NEXT: MemSize: 248 +// PARTRELRO-NEXT: FileSize: 264 +// PARTRELRO-NEXT: MemSize: 264 // PARTRELRO-NEXT: Flags [ // PARTRELRO-NEXT: PF_R // PARTRELRO-NEXT: ] Index: test/ELF/shared.s =================================================================== --- test/ELF/shared.s +++ test/ELF/shared.s @@ -259,6 +259,7 @@ // CHECK-NEXT: 0x00000011 REL [[RELADDR]] // CHECK-NEXT: 0x00000012 RELSZ [[RELSIZE]] (bytes) // CHECK-NEXT: 0x00000013 RELENT [[RELENT]] (bytes) +// CHECK-NEXT: 0x6FFFFFFA RELCOUNT 2 // CHECK-NEXT: 0x00000006 SYMTAB [[DYNSYMADDR]] // CHECK-NEXT: 0x0000000B SYMENT [[SYMENT]] (bytes) // CHECK-NEXT: 0x00000005 STRTAB [[DYNSTRADDR]] Index: test/ELF/tls-dynamic-i686.s =================================================================== --- test/ELF/tls-dynamic-i686.s +++ test/ELF/tls-dynamic-i686.s @@ -57,8 +57,8 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x2068 -// CHECK-NEXT: Offset: 0x2068 +// CHECK-NEXT: Address: 0x2070 +// CHECK-NEXT: Offset: 0x2070 // CHECK-NEXT: Size: 32 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 @@ -67,13 +67,13 @@ // CHECK: Relocations [ // CHECK: Section ({{.+}}) .rel.dyn { -// CHECK-NEXT: 0x2078 R_386_TLS_DTPMOD32 - 0x0 -// CHECK-NEXT: 0x2068 R_386_TLS_DTPMOD32 tls0 0x0 -// CHECK-NEXT: 0x206C R_386_TLS_DTPOFF32 tls0 0x0 -// CHECK-NEXT: 0x2080 R_386_TLS_TPOFF tls0 0x0 -// CHECK-NEXT: 0x2070 R_386_TLS_DTPMOD32 tls1 0x0 -// CHECK-NEXT: 0x2074 R_386_TLS_DTPOFF32 tls1 0x0 -// CHECK-NEXT: 0x2084 R_386_TLS_TPOFF tls1 0x0 +// CHECK-NEXT: 0x2080 R_386_TLS_DTPMOD32 - 0x0 +// CHECK-NEXT: 0x2070 R_386_TLS_DTPMOD32 tls0 0x0 +// CHECK-NEXT: 0x2074 R_386_TLS_DTPOFF32 tls0 0x0 +// CHECK-NEXT: 0x2088 R_386_TLS_TPOFF tls0 0x0 +// CHECK-NEXT: 0x2078 R_386_TLS_DTPMOD32 tls1 0x0 +// CHECK-NEXT: 0x207C R_386_TLS_DTPOFF32 tls1 0x0 +// CHECK-NEXT: 0x208C R_386_TLS_TPOFF tls1 0x0 // CHECK-NEXT: } // DIS: Disassembly of section .text: Index: test/ELF/tls-dynamic.s =================================================================== --- test/ELF/tls-dynamic.s +++ test/ELF/tls-dynamic.s @@ -48,16 +48,16 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x20D0 +// CHECK-NEXT: Address: 0x20E0 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 40 // CHECK: Relocations [ // CHECK: Section ({{.+}}) .rela.dyn { -// CHECK-NEXT: 0x20D0 R_X86_64_DTPMOD64 - 0x0 -// CHECK-NEXT: 0x20E0 R_X86_64_DTPMOD64 c 0x0 -// CHECK-NEXT: 0x20E8 R_X86_64_DTPOFF64 c 0x0 -// CHECK-NEXT: 0x20F0 R_X86_64_TPOFF64 c 0x0 +// CHECK-NEXT: 0x20E0 R_X86_64_DTPMOD64 - 0x0 +// CHECK-NEXT: 0x20F0 R_X86_64_DTPMOD64 c 0x0 +// CHECK-NEXT: 0x20F8 R_X86_64_DTPOFF64 c 0x0 +// CHECK-NEXT: 0x2100 R_X86_64_TPOFF64 c 0x0 // CHECK-NEXT: } // 4297 = (0x20D0 + -4) - (0x1000 + 3) // PC relative offset to got entry. @@ -67,9 +67,9 @@ // DIS: Disassembly of section .text: // DIS-NEXT: .text: -// DIS-NEXT: 1000: {{.+}} leaq 4297(%rip), %rdi +// DIS-NEXT: 1000: {{.+}} leaq 4313(%rip), %rdi // DIS-NEXT: 1007: {{.+}} callq -// DIS-NEXT: 100c: {{.+}} leaq 4285(%rip), %rdi +// DIS-NEXT: 100c: {{.+}} leaq 4301(%rip), %rdi // DIS-NEXT: 1013: {{.+}} callq // DIS-NEXT: 1018: {{.+}} leaq (%rax), %rcx // DIS-NEXT: 101f: {{.+}} leaq 4(%rax), %rcx @@ -77,10 +77,10 @@ // DIS-NEXT: 1028: 00 00 // DIS-NEXT: 102a: 00 00 // DIS-NEXT: 102c: 00 00 -// DIS-NEXT: 102e: {{.+}} leaq 4267(%rip), %rdi +// DIS-NEXT: 102e: {{.+}} leaq 4283(%rip), %rdi // DIS-NEXT: 1035: {{.+}} callq // DIS-NEXT: 103b: {{.+}} leaq (%rax), %rcx -// DIS-NEXT: 1042: {{.+}} movq 4263(%rip), %rax +// DIS-NEXT: 1042: {{.+}} movq 4279(%rip), %rax // DIS-NEXT: 1049: {{.+}} movq %fs:(%rax), %rax // DIS-NEXT: 104d: {{.+}} movabsq $0, %rax // DIS-NEXT: 1057: {{.+}} movabsq $4, %rax Index: test/ELF/tls-got.s =================================================================== --- test/ELF/tls-got.s +++ test/ELF/tls-got.s @@ -14,7 +14,7 @@ // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] // CHECK-NEXT: Address: [[ADDR:.*]] -// CHECK-NEXT: Offset: 0x20B0 +// CHECK-NEXT: Offset: 0x20C0 // CHECK-NEXT: Size: 16 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 @@ -24,21 +24,21 @@ // CHECK: Relocations [ // CHECK-NEXT: Section (4) .rela.dyn { -// CHECK-NEXT: 0x120B8 R_X86_64_TPOFF64 tls0 0x0 +// CHECK-NEXT: 0x120C8 R_X86_64_TPOFF64 tls0 0x0 // CHECK-NEXT: [[ADDR]] R_X86_64_TPOFF64 tls1 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] -//0x11000 + 4249 + 7 = 0x120B0 -//0x1100A + 4247 + 7 = 0x120B8 -//0x11014 + 4237 + 7 = 0x120B8 +//0x11000 + 4249 + 7 = 0x120C0 +//0x1100A + 4247 + 7 = 0x120C8 +//0x11014 + 4237 + 7 = 0x120C8 //DISASM: Disassembly of section .text: //DISASM-NEXT: main: -//DISASM-NEXT: 11000: 48 8b 05 a9 10 00 00 movq 4265(%rip), %rax +//DISASM-NEXT: 11000: 48 8b 05 b9 10 00 00 movq 4281(%rip), %rax //DISASM-NEXT: 11007: 64 8b 00 movl %fs:(%rax), %eax -//DISASM-NEXT: 1100a: 48 8b 05 a7 10 00 00 movq 4263(%rip), %rax +//DISASM-NEXT: 1100a: 48 8b 05 b7 10 00 00 movq 4279(%rip), %rax //DISASM-NEXT: 11011: 64 8b 00 movl %fs:(%rax), %eax -//DISASM-NEXT: 11014: 48 8b 05 9d 10 00 00 movq 4253(%rip), %rax +//DISASM-NEXT: 11014: 48 8b 05 ad 10 00 00 movq 4269(%rip), %rax //DISASM-NEXT: 1101b: 64 8b 00 movl %fs:(%rax), %eax //DISASM-NEXT: 1101e: c3 retq Index: test/ELF/tls-initial-exec-local.s =================================================================== --- test/ELF/tls-initial-exec-local.s +++ test/ELF/tls-initial-exec-local.s @@ -10,21 +10,21 @@ // CHECK-NEXT: SHF_ALLOC (0x2) // CHECK-NEXT: SHF_WRITE (0x1) // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x2090 +// CHECK-NEXT: Address: 0x20A0 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x2090 R_X86_64_TPOFF64 - 0x0 -// CHECK-NEXT: 0x2098 R_X86_64_TPOFF64 - 0x4 +// CHECK-NEXT: 0x20A0 R_X86_64_TPOFF64 - 0x0 +// CHECK-NEXT: 0x20A8 R_X86_64_TPOFF64 - 0x4 // CHECK-NEXT: } // CHECK-NEXT: ] -// 0x1007 + 4233 = 0x2090 -// 0x100e + 4234 = 0x2098 +// 0x1007 + 4233 = 0x20A0 +// 0x100e + 4234 = 0x20A8 // DISASM: Disassembly of section .text: // DISASM-NEXT: .text: -// DISASM-NEXT: 1000: {{.*}} addq 4233(%rip), %rax -// DISASM-NEXT: 1007: {{.*}} addq 4234(%rip), %rax +// DISASM-NEXT: 1000: {{.*}} addq 4249(%rip), %rax +// DISASM-NEXT: 1007: {{.*}} addq 4250(%rip), %rax addq foo@GOTTPOFF(%rip), %rax addq bar@GOTTPOFF(%rip), %rax Index: test/ELF/tls-opt-gdie.s =================================================================== --- test/ELF/tls-opt-gdie.s +++ test/ELF/tls-opt-gdie.s @@ -13,8 +13,8 @@ //RELOC-NEXT: SHF_ALLOC //RELOC-NEXT: SHF_WRITE //RELOC-NEXT: ] -//RELOC-NEXT: Address: 0x120B0 -//RELOC-NEXT: Offset: 0x20B0 +//RELOC-NEXT: Address: 0x120C0 +//RELOC-NEXT: Offset: 0x20C0 //RELOC-NEXT: Size: 16 //RELOC-NEXT: Link: 0 //RELOC-NEXT: Info: 0 @@ -23,19 +23,19 @@ //RELOC-NEXT: } //RELOC: Relocations [ //RELOC-NEXT: Section (4) .rela.dyn { -//RELOC-NEXT: 0x120B0 R_X86_64_TPOFF64 tlsshared0 0x0 -//RELOC-NEXT: 0x120B8 R_X86_64_TPOFF64 tlsshared1 0x0 +//RELOC-NEXT: 0x120C0 R_X86_64_TPOFF64 tlsshared0 0x0 +//RELOC-NEXT: 0x120C8 R_X86_64_TPOFF64 tlsshared1 0x0 //RELOC-NEXT: } //RELOC-NEXT: ] -//0x11009 + (4256 + 7) = 0x120B0 -//0x11019 + (4248 + 7) = 0x120B8 +//0x11009 + (4256 + 7) = 0x120C0 +//0x11019 + (4248 + 7) = 0x120C8 // DISASM: Disassembly of section .text: // DISASM-NEXT: _start: // DISASM-NEXT: 11000: {{.*}} movq %fs:0, %rax -// DISASM-NEXT: 11009: {{.*}} addq 4256(%rip), %rax +// DISASM-NEXT: 11009: {{.*}} addq 4272(%rip), %rax // DISASM-NEXT: 11010: {{.*}} movq %fs:0, %rax -// DISASM-NEXT: 11019: {{.*}} addq 4248(%rip), %rax +// DISASM-NEXT: 11019: {{.*}} addq 4264(%rip), %rax .section .text .globl _start Index: test/ELF/tls-opt-gdiele-i686.s =================================================================== --- test/ELF/tls-opt-gdiele-i686.s +++ test/ELF/tls-opt-gdiele-i686.s @@ -7,8 +7,8 @@ // NORELOC: Relocations [ // NORELOC-NEXT: Section ({{.*}}) .rel.dyn { -// NORELOC-NEXT: 0x12058 R_386_TLS_TPOFF tlsshared0 0x0 -// NORELOC-NEXT: 0x1205C R_386_TLS_TPOFF tlsshared1 0x0 +// NORELOC-NEXT: 0x12060 R_386_TLS_TPOFF tlsshared0 0x0 +// NORELOC-NEXT: 0x12064 R_386_TLS_TPOFF tlsshared1 0x0 // NORELOC-NEXT: } // NORELOC-NEXT: ] Index: test/ELF/tls-opt-iele-i686-nopic.s =================================================================== --- test/ELF/tls-opt-iele-i686-nopic.s +++ test/ELF/tls-opt-iele-i686-nopic.s @@ -13,8 +13,8 @@ // GOTREL-NEXT: SHF_ALLOC // GOTREL-NEXT: SHF_WRITE // GOTREL-NEXT: ] -// GOTREL-NEXT: Address: 0x12058 -// GOTREL-NEXT: Offset: 0x2058 +// GOTREL-NEXT: Address: 0x12060 +// GOTREL-NEXT: Offset: 0x2060 // GOTREL-NEXT: Size: 8 // GOTREL-NEXT: Link: 0 // GOTREL-NEXT: Info: 0 @@ -23,8 +23,8 @@ // GOTREL-NEXT: } // GOTREL: Relocations [ // GOTREL-NEXT: Section ({{.*}}) .rel.dyn { -// GOTREL-NEXT: 0x12058 R_386_TLS_TPOFF tlsshared0 0x0 -// GOTREL-NEXT: 0x1205C R_386_TLS_TPOFF tlsshared1 0x0 +// GOTREL-NEXT: 0x12060 R_386_TLS_TPOFF tlsshared0 0x0 +// GOTREL-NEXT: 0x12064 R_386_TLS_TPOFF tlsshared1 0x0 // GOTREL-NEXT: } // GOTREL-NEXT: ] @@ -46,9 +46,9 @@ // DISASM-NEXT: 11028: 65 8b 00 movl %gs:(%eax), %eax // DISASM-NEXT: 1102b: 81 c1 fc ff ff ff addl $4294967292, %ecx // DISASM-NEXT: 11031: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 11034: 8b 0d 58 20 01 00 movl 73816, %ecx +// DISASM-NEXT: 11034: 8b 0d 60 20 01 00 movl 73824, %ecx // DISASM-NEXT: 1103a: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 1103d: 03 0d 5c 20 01 00 addl 73820, %ecx +// DISASM-NEXT: 1103d: 03 0d 64 20 01 00 addl 73828, %ecx // DISASM-NEXT: 11043: 65 8b 01 movl %gs:(%ecx), %eax .type tlslocal0,@object Index: test/ELF/x86-64-tls-gd-local.s =================================================================== --- test/ELF/x86-64-tls-gd-local.s +++ test/ELF/x86-64-tls-gd-local.s @@ -34,8 +34,8 @@ // CHECK-NEXT: SHF_ALLOC (0x2) // CHECK-NEXT: SHF_WRITE (0x1) // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x20D0 -// CHECK-NEXT: Offset: 0x20D0 +// CHECK-NEXT: Address: 0x20E0 +// CHECK-NEXT: Offset: 0x20E0 // CHECK-NEXT: Size: 32 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 @@ -47,6 +47,6 @@ // CHECK-NEXT: ) // CHECK: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x20D0 R_X86_64_DTPMOD64 - 0x0 // CHECK-NEXT: 0x20E0 R_X86_64_DTPMOD64 - 0x0 +// CHECK-NEXT: 0x20F0 R_X86_64_DTPMOD64 - 0x0 // CHECK-NEXT: }