[lld] r369351 - [ELF][PPC] Allow PT_LOAD to have overlapping p_offset ranges on EM_PPC

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 20 02:20:06 PDT 2019


Author: maskray
Date: Tue Aug 20 02:20:05 2019
New Revision: 369351

URL: http://llvm.org/viewvc/llvm-project?rev=369351&view=rev
Log:
[ELF][PPC] Allow PT_LOAD to have overlapping p_offset ranges on EM_PPC

Ported the D64906 technique to EM_PPC.

Delete ppc-rela.s that is covered by ppc32-abs-pic.s

Removed:
    lld/trunk/test/ELF/ppc-rela.s
Modified:
    lld/trunk/ELF/Writer.cpp
    lld/trunk/test/ELF/basic-ppc.s
    lld/trunk/test/ELF/ppc32-abs-pic.s
    lld/trunk/test/ELF/ppc32-call-stub-nopic.s
    lld/trunk/test/ELF/ppc32-call-stub-pic.s
    lld/trunk/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s
    lld/trunk/test/ELF/ppc32-gnu-ifunc.s
    lld/trunk/test/ELF/ppc32-reloc-got.s
    lld/trunk/test/ELF/ppc32-tls-gd.s
    lld/trunk/test/ELF/ppc32-tls-ie.s
    lld/trunk/test/ELF/ppc32-tls-ld.s

Modified: lld/trunk/ELF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/ELF/Writer.cpp (original)
+++ lld/trunk/ELF/Writer.cpp Tue Aug 20 02:20:05 2019
@@ -2221,7 +2221,7 @@ template <class ELFT> void Writer<ELFT>:
       // TODO Enable this technique on all targets.
       bool enable = config->emachine == EM_386 ||
                     config->emachine == EM_AARCH64 ||
-                    config->emachine == EM_PPC64;
+                    config->emachine == EM_PPC || config->emachine == EM_PPC64;
 
       if (!enable || (config->zSeparateCode && prev &&
                       (prev->p_flags & PF_X) != (p->p_flags & PF_X)))

Modified: lld/trunk/test/ELF/basic-ppc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/basic-ppc.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/basic-ppc.s (original)
+++ lld/trunk/test/ELF/basic-ppc.s Tue Aug 20 02:20:05 2019
@@ -26,9 +26,9 @@
 // CHECK-NEXT:   Type: Executable (0x2)
 // CHECK-NEXT:   Machine: EM_PPC (0x14)
 // CHECK-NEXT:   Version: 1
-// CHECK-NEXT:   Entry: 0x10010000
+// CHECK-NEXT:   Entry: 0x100100B4
 // CHECK-NEXT:   ProgramHeaderOffset: 0x34
-// CHECK-NEXT:   SectionHeaderOffset: 0x10050
+// CHECK-NEXT:   SectionHeaderOffset: 0x104
 // CHECK-NEXT:   Flags [ (0x0)
 // CHECK-NEXT:   ]
 // CHECK-NEXT:   HeaderSize: 52
@@ -63,8 +63,8 @@
 // CHECK-NEXT:       SHF_ALLOC (0x2)
 // CHECK-NEXT:       SHF_EXECINSTR (0x4)
 // CHECK-NEXT:     ]
-// CHECK-NEXT:     Address: 0x10010000
-// CHECK-NEXT:     Offset: 0x10000
+// CHECK-NEXT:     Address: 0x100100B4
+// CHECK-NEXT:     Offset: 0xB4
 // CHECK-NEXT:     Size: 12
 // CHECK-NEXT:     Link: 0
 // CHECK-NEXT:     Info: 0
@@ -83,7 +83,7 @@
 // CHECK-NEXT:       SHF_STRINGS (0x20)
 // CHECK-NEXT:     ]
 // CHECK-NEXT:     Address: 0x0
-// CHECK-NEXT:     Offset: 0x1000C
+// CHECK-NEXT:     Offset: 0xC0
 // CHECK-NEXT:     Size: 8
 // CHECK-NEXT:     Link: 0
 // CHECK-NEXT:     Info: 0
@@ -97,7 +97,7 @@
 // CHECK-NEXT:     Flags [ (0x0)
 // CHECK-NEXT:     ]
 // CHECK-NEXT:     Address: 0x0
-// CHECK-NEXT:     Offset: 0x10014
+// CHECK-NEXT:     Offset: 0xC8
 // CHECK-NEXT:     Size: 16
 // CHECK-NEXT:     Link: 5
 // CHECK-NEXT:     Info: 1
@@ -114,7 +114,7 @@
 // CHECK-NEXT:     Flags [ (0x0)
 // CHECK-NEXT:     ]
 // CHECK-NEXT:     Address: 0x0
-// CHECK-NEXT:     Offset: 0x10024
+// CHECK-NEXT:     Offset: 0xD8
 // CHECK-NEXT:     Size: 42
 // CHECK-NEXT:     Link: 0
 // CHECK-NEXT:     Info: 0
@@ -128,7 +128,7 @@
 // CHECK-NEXT:     Flags [ (0x0)
 // CHECK-NEXT:     ]
 // CHECK-NEXT:     Address: 0x0
-// CHECK-NEXT:     Offset: 0x1004E
+// CHECK-NEXT:     Offset: 0x102
 // CHECK-NEXT:     Size: 1
 // CHECK-NEXT:     Link: 0
 // CHECK-NEXT:     Info: 0
@@ -143,8 +143,8 @@
 // CHECK-NEXT:   ProgramHeader {
 // CHECK-NEXT:     Type: PT_PHDR (0x6)
 // CHECK-NEXT:     Offset: 0x34
-// CHECK-NEXT:     VirtualAddress: 0x10000034
-// CHECK-NEXT:     PhysicalAddress: 0x10000034
+// CHECK-NEXT:     VirtualAddress: 0x10010034
+// CHECK-NEXT:     PhysicalAddress: 0x10010034
 // CHECK-NEXT:     FileSize: 128
 // CHECK-NEXT:     MemSize: 128
 // CHECK-NEXT:     Flags [ (0x4)
@@ -155,8 +155,8 @@
 // CHECK-NEXT:   ProgramHeader {
 // CHECK-NEXT:     Type: PT_LOAD (0x1)
 // CHECK-NEXT:     Offset: 0x0
-// CHECK-NEXT:     VirtualAddress: 0x10000000
-// CHECK-NEXT:     PhysicalAddress: 0x10000000
+// CHECK-NEXT:     VirtualAddress: 0x10010000
+// CHECK-NEXT:     PhysicalAddress: 0x10010000
 // CHECK-NEXT:     FileSize: 180
 // CHECK-NEXT:     MemSize: 180
 // CHECK-NEXT:     Flags [ (0x4)
@@ -166,9 +166,9 @@
 // CHECK-NEXT:   }
 // CHECK-NEXT:   ProgramHeader {
 // CHECK-NEXT:     Type: PT_LOAD (0x1)
-// CHECK-NEXT:     Offset: 0x1000
-// CHECK-NEXT:     VirtualAddress: 0x10010000
-// CHECK-NEXT:     PhysicalAddress: 0x10010000
+// CHECK-NEXT:     Offset: 0xB4
+// CHECK-NEXT:     VirtualAddress: 0x100100B4
+// CHECK-NEXT:     PhysicalAddress: 0x100100B4
 // CHECK-NEXT:     FileSize: 12
 // CHECK-NEXT:     MemSize: 12
 // CHECK-NEXT:     Flags [ (0x5)

Removed: lld/trunk/test/ELF/ppc-rela.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc-rela.s?rev=369350&view=auto
==============================================================================
--- lld/trunk/test/ELF/ppc-rela.s (original)
+++ lld/trunk/test/ELF/ppc-rela.s (removed)
@@ -1,11 +0,0 @@
-# REQUIRES: ppc
-# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-freebsd %s -o %t
-# RUN: ld.lld %t -o %t2 -shared
-# RUN: llvm-readobj -r %t2 | FileCheck %s
-
-.data
-  .long foo
-
-// CHECK:      Section ({{.*}}) .rela.dyn {
-// CHECK-NEXT:   0x20000 R_PPC_ADDR32 foo 0x0
-// CHECK-NEXT: }

Modified: lld/trunk/test/ELF/ppc32-abs-pic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-abs-pic.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-abs-pic.s (original)
+++ lld/trunk/test/ELF/ppc32-abs-pic.s Tue Aug 20 02:20:05 2019
@@ -7,11 +7,11 @@
 ## R_PPC_ADDR32 is an absolute relocation type.
 ## In PIC mode, it creates a relative relocation if the symbol is non-preemptable.
 
-# NM: 00020004 d b
+# NM: 00030204 d b
 
 # RELOC:      .rela.dyn {
-# RELOC-NEXT:   0x20004 R_PPC_RELATIVE - 0x20004
-# RELOC-NEXT:   0x20000 R_PPC_ADDR32 a 0
+# RELOC-NEXT:   0x30204 R_PPC_RELATIVE - 0x30204
+# RELOC-NEXT:   0x30200 R_PPC_ADDR32 a 0
 # RELOC-NEXT: }
 
 .globl a, b

Modified: lld/trunk/test/ELF/ppc32-call-stub-nopic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-call-stub-nopic.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-call-stub-nopic.s (original)
+++ lld/trunk/test/ELF/ppc32-call-stub-nopic.s Tue Aug 20 02:20:05 2019
@@ -11,12 +11,12 @@
 # RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
 
 # RELOC:      .rela.plt {
-# RELOC-NEXT:   0x10030000 R_PPC_JMP_SLOT f 0x0
-# RELOC-NEXT:   0x10030004 R_PPC_JMP_SLOT g 0x0
+# RELOC-NEXT:   0x100302C4 R_PPC_JMP_SLOT f 0x0
+# RELOC-NEXT:   0x100302C8 R_PPC_JMP_SLOT g 0x0
 # RELOC-NEXT: }
 
-# SEC:   .got PROGBITS 10020070
-# RELOC: PPC_GOT 0x10020070
+# SEC:   .got PROGBITS 100202b8
+# RELOC: PPC_GOT 0x100202B8
 
 ## .got2+0x8000-0x10004 = 0x30000+0x8000-0x10004 = 65536*2+32764
 # CHECK-LABEL: _start:
@@ -27,40 +27,40 @@
 # CHECK-EMPTY:
 
 ## -fno-PIC call stubs of f and g.
-## .plt[0] = 0x10030000 = 65536*4099+0
-## .plt[1] = 0x10030004 = 65536*4099+4
+## .plt[0] = 0x100302c4 = 65536*4099+708
+## .plt[1] = 0x100302c8 = 65536*4099+712
 # CHECK-NEXT:  00000000.plt_call32.f:
 # CHECK-NEXT:    lis 11, 4099
-# CHECK-NEXT:    lwz 11, 0(11)
+# CHECK-NEXT:    lwz 11, 708(11)
 # CHECK-NEXT:    mtctr 11
 # CHECK-NEXT:    bctr
 # CHECK-EMPTY:
 # CHECK-NEXT:  00000000.plt_call32.g:
 # CHECK-NEXT:    lis 11, 4099
-# CHECK-NEXT:    lwz 11, 4(11)
+# CHECK-NEXT:    lwz 11, 712(11)
 # CHECK-NEXT:    mtctr 11
 # CHECK-NEXT:    bctr
 # CHECK-EMPTY:
 
 ## In Secure PLT ABI, .plt stores function pointers to first instructions of .glink
-# HEX: 0x10030000 10010040 10010044
+# HEX: 0x100302c4 10010200 10010204
 
 ## These instructions are referenced by .plt entries.
-# CHECK: 10010040 .glink:
+# CHECK: 10010200 .glink:
 # CHECK-NEXT: b .+8
 # CHECK-NEXT: b .+4
 
 ## PLTresolve
-## Operands of lis & lwz: .got+4 = 0x10020070+4 = 65536*4098+116
-## Operands of addis & addi: -.glink = -0x10010040 = 65536*-4097-48
+## Operands of lis & lwz: .got+4 = 0x10020070+4 = 65536*4098+700
+## Operands of addis & addi: -.glink = -0x10010200 = 65536*-4097-512
 # CHECK-NEXT: lis 12, 4098
 # CHECK-NEXT: addis 11, 11, -4097
-# CHECK-NEXT: lwz 0, 116(12)
-# CHECK-NEXT: addi 11, 11, -64
+# CHECK-NEXT: lwz 0, 700(12)
+# CHECK-NEXT: addi 11, 11, -512
 
 # CHECK-NEXT: mtctr 0
 # CHECK-NEXT: add 0, 11, 11
-# CHECK-NEXT: lwz 12, 120(12)
+# CHECK-NEXT: lwz 12, 704(12)
 # CHECK-NEXT: add 11, 0, 11
 # CHECK-NEXT: bctr
 

Modified: lld/trunk/test/ELF/ppc32-call-stub-pic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-call-stub-pic.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-call-stub-pic.s (original)
+++ lld/trunk/test/ELF/ppc32-call-stub-pic.s Tue Aug 20 02:20:05 2019
@@ -28,15 +28,18 @@
 # RELOC-NEXT:   R_PPC_JMP_SLOT h 0x0
 # RELOC-NEXT: }
 
-# SEC: .got PROGBITS 00020088
-# DYN: PPC_GOT 0x20088
+# SEC: .got PROGBITS 00020374
+# DYN: PPC_GOT 0x20374
 
 ## .got2+0x8000-0x10004 = 0x30000+0x8000-0x10004 = 65536*2+32764
 # CHECK-LABEL: _start:
-# CHECK-NEXT:    bcl 20, 31, .+4
-# CHECK-NEXT:  10004: mflr 30
-# CHECK-NEXT:    addis 30, 30, 2
-# CHECK-NEXT:    addi 30, 30, 32764
+# CHECK-NEXT:         bcl 20, 31, .+4
+# PIE-NEXT:    10210: mflr 30
+# PIE-NEXT:           addis 30, 30, 3
+# PIE-NEXT:           addi 30, 30, -32400
+# SHARED-NEXT: 10230: mflr 30
+# SHARED-NEXT:        addis 30, 30, 3
+# SHARED-NEXT:        addi 30, 30, -32408
 
 ## Two bl 00008000.got2.plt_pic32.f
 # CHECK-NEXT:    bl .+40
@@ -80,8 +83,7 @@
 ## -fpic call stub of f.
 # CHECK-NEXT:  00000000.plt_pic32.f:
 # CHECK-NEXT:    addis 11, 30, 2
-# PIE-NEXT:      lwz 11, -144(11)
-# SHARED-NEXT:   lwz 11, -136(11)
+# CHECK-NEXT:    lwz 11, 4(11)
 # CHECK-NEXT:    mtctr 11
 # CHECK-NEXT:    bctr
 # CHECK-EMPTY:
@@ -92,36 +94,38 @@
 # CHECK-NEXT:  00008000.got2.plt_pic32.f:
 
 ## In Secure PLT ABI, .plt stores function pointers to first instructions of .glink
-# HEX: 0x0003fff8 00010090 00010094 00010098
+# HEX: 0x00040378 000102a0 000102a4 000102a8
 
 ## These instructions are referenced by .plt entries.
-# CHECK: 00010090 .glink:
+# PIE:    000102a0 .glink:
+# SHARED: 000102c0 .glink:
 # CHECK-NEXT: b .+12
 # CHECK-NEXT: b .+8
 # CHECK-NEXT: b .+4
 
 ## PLTresolve
 ## Operand of addi: 0x100a8-.glink = 24
-# CHECK-NEXT: addis 11, 11, 0
-# CHECK-NEXT: mflr 0
-# CHECK-NEXT: bcl 20, 31, .+4
-# CHECK-NEXT: 100a8: addi 11, 11, 24
+# CHECK-NEXT:         addis 11, 11, 0
+# CHECK-NEXT:         mflr 0
+# CHECK-NEXT:         bcl 20, 31, .+4
+# PIE-NEXT:    102b8: addi 11, 11, 24
+# SHARED-NEXT: 102d8: addi 11, 11, 24
 
 # CHECK-NEXT: mflr 12
 # CHECK-NEXT: mtlr 0
 # CHECK-NEXT: subf 11, 12, 11
 
 ## Operand of lwz in -pie mode: &.got[1] - 0x100a8 = 0x20088+4 - 0x100a8 = 65536*1-28
-# CHECK-NEXT: addis 12, 12, 1
-# PIE-NEXT:   lwz 0, -28(12)
-# SHARED-NEXT: lwz 0, -36(12)
-
-# PIE-NEXT:   lwz 12, -24(12)
-# SHARED-NEXT: lwz 12, -32(12)
-# CHECK-NEXT: mtctr 0
-# CHECK-NEXT: add 0, 11, 11
-# CHECK-NEXT: add 11, 0, 11
-# CHECK-NEXT: bctr
+# CHECK-NEXT:  addis 12, 12, 1
+# PIE-NEXT:    lwz 0, 192(12)
+# SHARED-NEXT: lwz 0, 184(12)
+
+# PIE-NEXT:    lwz 12, 196(12)
+# SHARED-NEXT: lwz 12, 188(12)
+# CHECK-NEXT:  mtctr 0
+# CHECK-NEXT:  add 0, 11, 11
+# CHECK-NEXT:  add 11, 0, 11
+# CHECK-NEXT:  bctr
 
 .section .got2,"aw"
 .space 65516

Modified: lld/trunk/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s (original)
+++ lld/trunk/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s Tue Aug 20 02:20:05 2019
@@ -7,26 +7,26 @@
 # RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
 
 # RELOC:      .rela.dyn {
-# RELOC-NEXT:   0x10020004 R_PPC_IRELATIVE - 0x10010000
+# RELOC-NEXT:   0x10020108 R_PPC_IRELATIVE - 0x100100E0
 # RELOC-NEXT: }
 
-# SYM: 10010020 0 FUNC GLOBAL DEFAULT {{.*}} func
-# HEX: 0x10020000 10010020
+# SYM: 10010100 0 FUNC GLOBAL DEFAULT {{.*}} func
+# HEX: 0x10020104 10010100
 
 .section .got2,"aw"
 .long func
 
 # CHECK:      func_resolver:
-# CHECK-NEXT: 10010000: blr
+# CHECK-NEXT: 100100e0: blr
 # CHECK:      _start:
 # CHECK-NEXT:   bl .+12
 # CHECK-NEXT:   lis 9, 4097
-# CHECK-NEXT:   addi 9, 9, 32
+# CHECK-NEXT:   addi 9, 9, 256
 # CHECK-EMPTY:
 # CHECK-NEXT: 00000000.plt_call32.func:
-## 10020004 = 65536*4098+4
+## 0x10020108 = 65536*4098+264
 # CHECK-NEXT:   lis 11, 4098
-# CHECK-NEXT:   lwz 11, 4(11)
+# CHECK-NEXT:   lwz 11, 264(11)
 
 .text
 .globl func

Modified: lld/trunk/test/ELF/ppc32-gnu-ifunc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-gnu-ifunc.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-gnu-ifunc.s (original)
+++ lld/trunk/test/ELF/ppc32-gnu-ifunc.s Tue Aug 20 02:20:05 2019
@@ -6,14 +6,14 @@
 # RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
 
 # RELOC:      .rela.dyn {
-# RELOC-NEXT:   0x10020000 R_PPC_IRELATIVE - 0x10010000
+# RELOC-NEXT:   0x10020114 R_PPC_IRELATIVE - 0x100100E0
 # RELOC-NEXT: }
 
 # SEC: .rela.dyn RELA 100000d4 0000d4 00000c
-# SYM: 10010000 0 FUNC GLOBAL DEFAULT {{.*}} func
+# SYM: 100100e0 0 FUNC GLOBAL DEFAULT {{.*}} func
 
 # CHECK:      func_resolver:
-# CHECK-NEXT:   10010000:
+# CHECK-NEXT:   100100e0:
 # CHECK:      _start:
 # CHECK-NEXT:   bl .+20
 ## .rela.plt = 0x100000d4 = 65536*4096+212

Modified: lld/trunk/test/ELF/ppc32-reloc-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-reloc-got.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-reloc-got.s (original)
+++ lld/trunk/test/ELF/ppc32-reloc-got.s Tue Aug 20 02:20:05 2019
@@ -1,7 +1,7 @@
 # REQUIRES: ppc
 # RUN: llvm-mc -filetype=obj -triple=powerpc %s -o %t.o
 # RUN: echo '.globl b; b:' | llvm-mc -filetype=obj -triple=powerpc - -o %t1.o
-# RUN: ld.lld -shared %t1.o -o %t1.so
+# RUN: ld.lld -shared %t1.o -soname=t1.so -o %t1.so
 
 # RUN: ld.lld %t.o %t1.so -o %t
 # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s
@@ -14,14 +14,14 @@
 # SEC: .got PROGBITS 00020068 020068 000014
 
 # RELOC:      .rela.dyn {
-# RELOC-NEXT:   0x10020078 R_PPC_GLOB_DAT b 0x0
+# RELOC-NEXT:   0x1002021C R_PPC_GLOB_DAT b 0x0
 # RELOC-NEXT: }
 
-# NM: 10030000 d a
+# NM: 10030220 d a
 
 ## The GOT slot of a can be filled at link time.
 # HEX: section '.got':
-# HEX: 0x10020068 {{[0-9a-f]+}} 00000000 00000000 10030000
+# HEX: 0x1002020c {{[0-9a-f]+}} 00000000 00000000 10030220
 
 ## a: &.got[3] - _GLOBAL_OFFSET_TABLE_ = 12
 ## b: &.got[4] - _GLOBAL_OFFSET_TABLE_ = 16

Modified: lld/trunk/test/ELF/ppc32-tls-gd.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-tls-gd.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-tls-gd.s (original)
+++ lld/trunk/test/ELF/ppc32-tls-gd.s Tue Aug 20 02:20:05 2019
@@ -18,15 +18,15 @@
 # RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck --check-prefix=IE %s
 
 ## DT_PPC_GOT represents the address of _GLOBAL_OFFSET_TABLE_.
-# GD-DYN: PPC_GOT 0x20078
+# GD-DYN: PPC_GOT 0x2035C
 
 # GD-REL:      .rela.dyn {
-# GD-REL-NEXT:   0x20078 R_PPC_DTPMOD32 a 0x0
-# GD-REL-NEXT:   0x2007C R_PPC_DTPREL32 a 0x0
-# GD-REL-NEXT:   0x20080 R_PPC_DTPMOD32 b 0x0
-# GD-REL-NEXT:   0x20084 R_PPC_DTPREL32 b 0x0
-# GD-REL-NEXT:   0x20088 R_PPC_DTPMOD32 c 0x0
-# GD-REL-NEXT:   0x2008C R_PPC_DTPREL32 c 0x0
+# GD-REL-NEXT:   0x2035C R_PPC_DTPMOD32 a 0x0
+# GD-REL-NEXT:   0x20360 R_PPC_DTPREL32 a 0x0
+# GD-REL-NEXT:   0x20364 R_PPC_DTPMOD32 b 0x0
+# GD-REL-NEXT:   0x20368 R_PPC_DTPREL32 b 0x0
+# GD-REL-NEXT:   0x2036C R_PPC_DTPMOD32 c 0x0
+# GD-REL-NEXT:   0x20370 R_PPC_DTPREL32 c 0x0
 # GD-REL-NEXT: }
 
 ## &DTPMOD(a) - _GLOBAL_OFFSET_TABLE_ = 0x20078 - 0x20078 = 0
@@ -60,8 +60,8 @@
 # LE-NEXT: lwz 3, 0(3)
 
 # IE-REL:      .rela.dyn {
-# IE-REL-NEXT:   0x10020068 R_PPC_TPREL32 b 0x0
-# IE-REL-NEXT:   0x1002006C R_PPC_TPREL32 c 0x0
+# IE-REL-NEXT:   0x10020274 R_PPC_TPREL32 b 0x0
+# IE-REL-NEXT:   0x10020278 R_PPC_TPREL32 c 0x0
 # IE-REL-NEXT: }
 
 ## a is relaxed to use LE.

Modified: lld/trunk/test/ELF/ppc32-tls-ie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-tls-ie.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-tls-ie.s (original)
+++ lld/trunk/test/ELF/ppc32-tls-ie.s Tue Aug 20 02:20:05 2019
@@ -11,8 +11,8 @@
 
 ## A non-preemptable symbol (b) has 0 st_shndx.
 # IE-REL:      .rela.dyn {
-# IE-REL-NEXT:   0x2005C R_PPC_TPREL32 - 0xC
-# IE-REL-NEXT:   0x20058 R_PPC_TPREL32 a 0x0
+# IE-REL-NEXT:   0x20224 R_PPC_TPREL32 - 0xC
+# IE-REL-NEXT:   0x20220 R_PPC_TPREL32 a 0x0
 # IE-REL-NEXT: }
 
 ## &.got[0] - _GLOBAL_OFFSET_TABLE_ = 0

Modified: lld/trunk/test/ELF/ppc32-tls-ld.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc32-tls-ld.s?rev=369351&r1=369350&r2=369351&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc32-tls-ld.s (original)
+++ lld/trunk/test/ELF/ppc32-tls-ld.s Tue Aug 20 02:20:05 2019
@@ -11,7 +11,7 @@
 # RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck --check-prefix=LE %s
 
 # LD-REL:      .rela.dyn {
-# LD-REL-NEXT:   0x20078 R_PPC_DTPMOD32 - 0x0
+# LD-REL-NEXT:   0x202CC R_PPC_DTPMOD32 - 0x0
 # LD-REL-NEXT: }
 
 ## .got - _GLOBAL_OFFSET_TABLE_ = 0




More information about the llvm-commits mailing list