[lld] r362294 - [ELF][test] Reorganize some AArch64 tests

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 1 04:01:26 PDT 2019


Author: maskray
Date: Sat Jun  1 04:01:26 2019
New Revision: 362294

URL: http://llvm.org/viewvc/llvm-project?rev=362294&view=rev
Log:
[ELF][test] Reorganize some AArch64 tests

Delete aarch64-got.s because it is covered by aarch64-tls-iele.s
Merge got-aarch64.s into aarch64-fpic-got.s by adding disassembly to the latter
Create aarch64-gnu-ifunc-nonpreemptable to unify aarch64-gnu-ifunc3.s (position-dependent executable) and aarch64-gnu-ifunc-address-pie.s (PIE)
Rename aarch64-got-reloc.s to aarch64-got-weak-undef.s
Add --no-show-raw-insn to llvm-objdump -d RUN lines
Add -pie test to arch64-tls-iele.s
Delete aarch64-tls-pie.s: it is covered by arch64-tls-iele.s and aarch64-tls-le.s
Rename aarch64-copy2.s to aarch64-nopic-plt.s: "copy2" gives false impression that the test is related to copy relocation

Added:
    lld/trunk/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s
    lld/trunk/test/ELF/aarch64-got-weak-undef.s
    lld/trunk/test/ELF/aarch64-nopic-plt.s
      - copied, changed from r362276, lld/trunk/test/ELF/aarch64-copy2.s
Removed:
    lld/trunk/test/ELF/aarch64-copy2.s
    lld/trunk/test/ELF/aarch64-gnu-ifunc-address-pie.s
    lld/trunk/test/ELF/aarch64-gnu-ifunc3.s
    lld/trunk/test/ELF/aarch64-got-reloc.s
    lld/trunk/test/ELF/aarch64-got.s
    lld/trunk/test/ELF/aarch64-tls-pie.s
    lld/trunk/test/ELF/got-aarch64.s
Modified:
    lld/trunk/test/ELF/aarch64-fpic-got.s
    lld/trunk/test/ELF/aarch64-gnu-ifunc-address.s
    lld/trunk/test/ELF/aarch64-tls-gdie.s
    lld/trunk/test/ELF/aarch64-tls-gdle.s
    lld/trunk/test/ELF/aarch64-tls-ie.s
    lld/trunk/test/ELF/aarch64-tls-iele.s
    lld/trunk/test/ELF/aarch64-tlsld-ldst.s

Removed: lld/trunk/test/ELF/aarch64-copy2.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-copy2.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-copy2.s (original)
+++ lld/trunk/test/ELF/aarch64-copy2.s (removed)
@@ -1,27 +0,0 @@
-// REQUIRES: aarch64
-// RUN: llvm-mc %s -o %t.o -filetype=obj -triple=aarch64-pc-linux
-// RUN: llvm-mc %p/Inputs/aarch64-copy2.s -o %t2.o -filetype=obj -triple=aarch64-pc-linux
-// RUN: ld.lld %t2.o -o %t2.so -shared
-// RUN: ld.lld %t.o %t2.so -o %t
-// RUN: llvm-readobj --symbols %t | FileCheck %s
-
-        .global _start
-_start:
-        adrp    x8, foo
-        bl bar
-
-// CHECK:      Name: bar
-// CHECK-NEXT: Value: 0x0
-// CHECK-NEXT: Size: 0
-// CHECK-NEXT: Binding: Global
-// CHECK-NEXT: Type: None
-// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: Undefined
-
-// CHECK:      Name: foo
-// CHECK-NEXT: Value: 0x210030
-// CHECK-NEXT: Size: 0
-// CHECK-NEXT: Binding: Global
-// CHECK-NEXT: Type: Function
-// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: Undefined

Modified: lld/trunk/test/ELF/aarch64-fpic-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-fpic-got.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-fpic-got.s (original)
+++ lld/trunk/test/ELF/aarch64-fpic-got.s Sat Jun  1 04:01:26 2019
@@ -3,14 +3,22 @@
 # RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux %s -o %t.o
 # RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux %p/Inputs/shared.s -o %t-lib.o
 # RUN: ld.lld -shared %t-lib.o -o %t-lib.so
+
 # RUN: ld.lld %t-lib.so %t.o -o %t.exe
-# RUN: llvm-readobj --dyn-relocations %t.exe | FileCheck %s
+# RUN: llvm-readobj -r %t.exe | FileCheck --check-prefix=RELOC %s
+# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck --check-prefix=DIS %s
 
 ## Checks if got access to dynamic objects is done through a got relative
 ## dynamic relocation and not using plt relative (R_AARCH64_JUMP_SLOT).
-# CHECK:       Dynamic Relocations {
-# CHECK-NEXT:    0x{{[0-9A-F]+}}  R_AARCH64_GLOB_DAT bar 0x0
-# CHECK-NEXT:  }
+# RELOC:      .rela.dyn {
+# RELOC-NEXT:   0x2200C0 R_AARCH64_GLOB_DAT bar 0x0
+# RELOC-NEXT: }
+
+## page(0x2200C0) - page(0x210000) = 65536
+## page(0x2200C0) & 0xff8 = 192
+# DIS:      _start:
+# DIS-NEXT: 210000: adrp x0, #65536
+# DIS-NEXT: 210004: ldr x0, [x0, #192]
 
 .globl _start
 _start:

Removed: lld/trunk/test/ELF/aarch64-gnu-ifunc-address-pie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-gnu-ifunc-address-pie.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-gnu-ifunc-address-pie.s (original)
+++ lld/trunk/test/ELF/aarch64-gnu-ifunc-address-pie.s (removed)
@@ -1,49 +0,0 @@
-# REQUIRES: aarch64
-# RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux-gnu %s -o %t.o
-# RUN: ld.lld -pie %t.o -o %tout
-# RUN: llvm-objdump -D %tout | FileCheck %s
-# RUN: llvm-readobj -r %tout | FileCheck %s -check-prefix=CHECK-RELOCS
-
-# Test that when we take the address of a preemptible ifunc using -fpie, we can
-# handle the case when the ifunc is in the same translation unit as the address
-# taker. In this case the compiler knows that ifunc is not defined in a shared
-# library so it can use a non got generating relative reference.
-.text
-.globl myfunc
-.type myfunc, at gnu_indirect_function
-myfunc:
-.globl myfunc_resolver
-.type myfunc_resolver, at function
-myfunc_resolver:
- ret
-
-.text
-.globl main
-.type main, at function
-main:
- adrp x8, myfunc
- add  x8, x8, :lo12: myfunc
- ret
-
-# CHECK: 0000000000010000 myfunc_resolver:
-# CHECK-NEXT:    10000:	c0 03 5f d6 	ret
-# CHECK: 0000000000010004 main:
-# CHECK-NEXT:    10004:	08 00 00 90 	adrp	x8, #0
-# x8 = 0x10000
-# CHECK-NEXT:    10008:	08 41 00 91 	add	x8, x8, #16
-# x8 = 0x10010 = .plt for myfunc
-# CHECK-NEXT:    1000c:	c0 03 5f d6 	ret
-# CHECK-EMPTY:
-# CHECK-NEXT: Disassembly of section .plt:
-# CHECK-EMPTY:
-# CHECK-NEXT: 0000000000010010 myfunc:
-# CHECK-NEXT:    10010:	10 01 00 90 	adrp	x16, #131072
-# CHECK-NEXT:    10014:	11 02 40 f9 	ldr	x17, [x16]
-# CHECK-NEXT:    10018:	10 02 00 91 	add	x16, x16, #0
-# CHECK-NEXT:    1001c:	20 02 1f d6 	br	x17
-
-# CHECK-RELOCS: Relocations [
-# CHECK-RELOCS-NEXT:   Section {{.*}} .rela.plt {
-# CHECK-RELOCS-NEXT:     0x30000 R_AARCH64_IRELATIVE - 0x10000
-# CHECK-RELOCS-NEXT:   }
-# CHECK-RELOCS-NEXT: ]

Modified: lld/trunk/test/ELF/aarch64-gnu-ifunc-address.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-gnu-ifunc-address.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-gnu-ifunc-address.s (original)
+++ lld/trunk/test/ELF/aarch64-gnu-ifunc-address.s Sat Jun  1 04:01:26 2019
@@ -1,7 +1,7 @@
 # REQUIRES: aarch64
 # RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux-gnu %s -o %t.o
 # RUN: ld.lld -shared %t.o -o %tout
-# RUN: llvm-objdump -D %tout | FileCheck %s
+# RUN: llvm-objdump -D --no-show-raw-insn %tout | FileCheck %s
 # RUN: llvm-readobj -r %tout | FileCheck %s --check-prefix=CHECK-RELOCS
 
 # Test that when we take the address of a preemptible ifunc in a shared object
@@ -22,10 +22,10 @@ main:
  ret
 # CHECK:   0000000000010004 main:
 # x8 = 0x20000
-# CHECK-NEXT:    10004: 88 00 00 90     adrp    x8, #65536
+# CHECK-NEXT:    10004: adrp    x8, #65536
 # x8 = 0x200a0 = .got entry for myfunc with R_AARCH64_GLOB_DAT
-# CHECK-NEXT:    10008: 08 51 40 f9     ldr     x8, [x8, #160]
-# CHECK-NEXT:    1000c: c0 03 5f d6     ret
+# CHECK-NEXT:    10008: ldr     x8, [x8, #160]
+# CHECK-NEXT:    1000c: ret
 
 # CHECK: Disassembly of section .got:
 # CHECK-EMPTY:

Added: lld/trunk/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s?rev=362294&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s (added)
+++ lld/trunk/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s Sat Jun  1 04:01:26 2019
@@ -0,0 +1,72 @@
+# REQUIRES: aarch64
+# RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux-gnu %s -o %t.o
+
+# RUN: ld.lld %t.o -o %t
+# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s --check-prefix=PDE
+# RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=PDE-RELOC
+
+# RUN: ld.lld -pie %t.o -o %t
+# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s --check-prefix=PIE
+# RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=PIE-RELOC
+
+## When compiling with -fno-PIE or -fPIE, if the ifunc is in the same
+## translation unit as the address taker, the compiler knows that ifunc is not
+## defined in a shared library so it can use a non GOT generating relative reference.
+.text
+.globl myfunc
+.type myfunc, at gnu_indirect_function
+myfunc:
+.globl myfunc_resolver
+.type myfunc_resolver, at function
+myfunc_resolver:
+ ret
+
+.text
+.globl main
+.type main, at function
+main:
+ adrp x8, myfunc
+ add  x8, x8, :lo12: myfunc
+ ret
+
+## The address of myfunc is the address of the PLT entry for myfunc.
+# PDE:      myfunc_resolver:
+# PDE-NEXT:   210000:   ret
+# PDE:      main:
+# PDE-NEXT:   210004:   adrp    x8, #0
+# PDE-NEXT:   210008:   add     x8, x8, #16
+# PDE-NEXT:   21000c:   ret
+# PDE-EMPTY:
+# PDE-NEXT: Disassembly of section .plt:
+# PDE-EMPTY:
+# PDE-NEXT: myfunc:
+## page(.got.plt) - page(0x210010) = 65536
+# PDE-NEXT:   210010: adrp    x16, #65536
+# PDE-NEXT:   210014: ldr     x17, [x16]
+# PDE-NEXT:   210018: add     x16, x16, #0
+# PDE-NEXT:   21001c: br      x17
+
+## The adrp to myfunc should generate a PLT entry and a GOT entry with an
+## irelative relocation.
+# PDE-RELOC:      .rela.plt {
+# PDE-RELOC-NEXT:   0x220000 R_AARCH64_IRELATIVE - 0x210000
+# PDE-RELOC-NEXT: }
+
+# PIE:      myfunc_resolver:
+# PIE-NEXT:    10000: ret
+# PIE:      main:
+# PIE-NEXT:    10004: adrp    x8, #0
+# PIE-NEXT:    10008: add     x8, x8, #16
+# PIE-NEXT:    1000c: ret
+# PIE-EMPTY:
+# PIE-NEXT: Disassembly of section .plt:
+# PIE-EMPTY:
+# PIE-NEXT: myfunc:
+# PIE-NEXT:    10010: adrp    x16, #131072
+# PIE-NEXT:    10014: ldr     x17, [x16]
+# PIE-NEXT:    10018: add     x16, x16, #0
+# PIE-NEXT:    1001c: br      x17
+
+# PIE-RELOC:      .rela.plt {
+# PIE-RELOC-NEXT:   0x30000 R_AARCH64_IRELATIVE - 0x10000
+# PIE-RELOC-NEXT: }

Removed: lld/trunk/test/ELF/aarch64-gnu-ifunc3.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-gnu-ifunc3.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-gnu-ifunc3.s (original)
+++ lld/trunk/test/ELF/aarch64-gnu-ifunc3.s (removed)
@@ -1,57 +0,0 @@
-# REQUIRES: aarch64
-# RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux-gnu %s -o %t.o
-# RUN: ld.lld -static %t.o -o %tout
-# RUN: llvm-objdump -D %tout | FileCheck %s
-# RUN: llvm-readobj -r %tout | FileCheck %s --check-prefix=RELOC
-
-# The address of myfunc is the address of the PLT entry for myfunc.
-# The adrp to myfunc should generate a PLT entry and a got entry with an
-# irelative relocation.
-.text
-.globl myfunc
-.type myfunc, at gnu_indirect_function
-myfunc:
-.globl myfunc_resolver
-.type myfunc_resolver, at function
-myfunc_resolver:
- ret
-
-.text
-.globl _start
-.type _start, at function
-_start:
- adrp x8, myfunc
- add  x8, x8, :lo12:myfunc
- ret
-
-# CHECK: Disassembly of section .text:
-# CHECK-EMPTY:
-# CHECK-NEXT: myfunc_resolver:
-# CHECK-NEXT:   210000:	c0 03 5f d6 	ret
-# CHECK: _start:
-# adrp x8, 0x210000 + 0x10 from add == .plt entry
-# CHECK-NEXT:   210004:	08 00 00 90 	adrp	x8, #0
-# CHECK-NEXT:   210008:	08 41 00 91 	add	x8, x8, #16
-# CHECK-NEXT:   21000c:	c0 03 5f d6 	ret
-# CHECK-EMPTY:
-# CHECK-NEXT: Disassembly of section .plt:
-# CHECK-EMPTY:
-# CHECK-NEXT: myfunc:
-# adrp x16, 0x220000, 0x220000 == address in .got.plt
-# CHECK-NEXT:   210010:	90 00 00 90 	adrp	x16, #65536
-# CHECK-NEXT:   210014:	11 02 40 f9 	ldr	x17, [x16]
-# CHECK-NEXT:   210018:	10 02 00 91 	add	x16, x16, #0
-# CHECK-NEXT:   21001c:	20 02 1f d6 	br	x17
-# CHECK-EMPTY:
-# CHECK-NEXT: Disassembly of section .got.plt:
-# CHECK-EMPTY:
-# CHECK-NEXT: .got.plt:
-# 0x210010 == address in .plt
-# CHECK-NEXT:   220000:	10 00 21 00
-# CHECK-NEXT:   220004:	00 00 00 00
-
-# RELOC: Relocations [
-# RELOC-NEXT:  Section (1) .rela.plt {
-# RELOC-NEXT:    0x220000 R_AARCH64_IRELATIVE - 0x210000
-# RELOC-NEXT:  }
-# RELOC-NEXT: ]

Removed: lld/trunk/test/ELF/aarch64-got-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-got-reloc.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-got-reloc.s (original)
+++ lld/trunk/test/ELF/aarch64-got-reloc.s (removed)
@@ -1,30 +0,0 @@
-// REQUIRES: aarch64
-// RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
-// RUN: ld.lld %t.o -o %t
-// RUN: llvm-readobj -S --section-data  %t | FileCheck %s
-
-// CHECK:      Name: .got
-// CHECK-NEXT: Type: SHT_PROGBITS
-// CHECK-NEXT:  Flags [
-// CHECK-NEXT:    SHF_ALLOC
-// CHECK-NEXT:    SHF_WRITE
-// CHECK-NEXT:  ]
-// CHECK-NEXT:  Address:
-// CHECK-NEXT:  Offset:
-// CHECK-NEXT:  Size: 8
-// CHECK-NEXT:  Link: 0
-// CHECK-NEXT:  Info: 0
-// CHECK-NEXT:  AddressAlignment: 8
-// CHECK-NEXT:  EntrySize: 0
-// CHECK-NEXT:  SectionData (
-// CHECK-NEXT:    0000: 00000000 00000000                    |........|
-// CHECK-NEXT:  )
-
-        .globl  _start
-_start:
-        adrp    x8, :got:foo
-        ldr     x8, [x8, :got_lo12:foo]
-        ldr     w0, [x8]
-        ret
-
-        .weak   foo

Added: lld/trunk/test/ELF/aarch64-got-weak-undef.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-got-weak-undef.s?rev=362294&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-got-weak-undef.s (added)
+++ lld/trunk/test/ELF/aarch64-got-weak-undef.s Sat Jun  1 04:01:26 2019
@@ -0,0 +1,18 @@
+// REQUIRES: aarch64
+// RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
+// RUN: ld.lld %t.o -o %t
+// RUN: llvm-readelf -r %t | FileCheck --check-prefix=RELOC %s
+// RUN: llvm-readelf -x .got %t | FileCheck %s
+
+// RELOC: no relocations
+
+// CHECK: 0x00220000 00000000 00000000
+
+        .globl  _start
+_start:
+        adrp    x8, :got:foo
+        ldr     x8, [x8, :got_lo12:foo]
+        ldr     w0, [x8]
+        ret
+
+        .weak   foo

Removed: lld/trunk/test/ELF/aarch64-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-got.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-got.s (original)
+++ lld/trunk/test/ELF/aarch64-got.s (removed)
@@ -1,18 +0,0 @@
-# REQUIRES: aarch64
-# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t.o
-# RUN: ld.lld %t.o -o %t
-# RUN: llvm-readobj -S %t | FileCheck %s
-
-# CHECK-NOT: Name: .got
-
-.globl _start
-_start:
- adrp    x0, :gottprel:foo
-
-	.global foo
- .section .tdata,"awT",%progbits
- .align 2
- .type foo, %object
- .size foo, 4
-foo:
- .word 5

Copied: lld/trunk/test/ELF/aarch64-nopic-plt.s (from r362276, lld/trunk/test/ELF/aarch64-copy2.s)
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-nopic-plt.s?p2=lld/trunk/test/ELF/aarch64-nopic-plt.s&p1=lld/trunk/test/ELF/aarch64-copy2.s&r1=362276&r2=362294&rev=362294&view=diff
==============================================================================
    (empty)

Modified: lld/trunk/test/ELF/aarch64-tls-gdie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tls-gdie.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-tls-gdie.s (original)
+++ lld/trunk/test/ELF/aarch64-tls-gdie.s Sat Jun  1 04:01:26 2019
@@ -4,7 +4,7 @@
 // RUN: ld.lld %t2.o -o %t2.so -shared
 // RUN: ld.lld --hash-style=sysv %t.o %t2.so -o %t
 // RUN: llvm-readobj -S %t | FileCheck --check-prefix=SEC %s
-// RUN: llvm-objdump -d %t | FileCheck %s
+// RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
 
         .globl  _start
 _start:
@@ -27,8 +27,8 @@ _start:
 // 0x0B0 = 176
 
 // CHECK:      _start:
-// CHECK-NEXT: 210000: {{.*}} nop
-// CHECK-NEXT: 210004: {{.*}} adrp       x0, #65536
-// CHECK-NEXT: 210008: {{.*}} ldr        x0, [x0, #176]
-// CHECK-NEXT: 21000c: {{.*}} nop
-// CHECK-NEXT: 210010: {{.*}} nop
+// CHECK-NEXT: 210000: nop
+// CHECK-NEXT: 210004: adrp    x0, #65536
+// CHECK-NEXT: 210008: ldr     x0, [x0, #176]
+// CHECK-NEXT: 21000c: nop
+// CHECK-NEXT: 210010: nop

Modified: lld/trunk/test/ELF/aarch64-tls-gdle.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tls-gdle.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-tls-gdle.s (original)
+++ lld/trunk/test/ELF/aarch64-tls-gdle.s Sat Jun  1 04:01:26 2019
@@ -2,21 +2,21 @@
 # RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %p/Inputs/aarch64-tls-ie.s -o %ttlsie.o
 # RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %tmain.o
 # RUN: ld.lld %tmain.o %ttlsie.o -o %tout
-# RUN: llvm-objdump -d %tout | FileCheck %s
-# RUN: llvm-readobj -S -r %tout | FileCheck -check-prefix=RELOC %s
+# RUN: llvm-objdump -d --no-show-raw-insn %tout | FileCheck %s
+# RUN: llvm-readobj -r %tout | FileCheck -check-prefix=RELOC %s
 
-#Local-Dynamic to Local-Exec relax creates no
-#RELOC:      Relocations [
-#RELOC-NEXT: ]
+## Local-Dynamic to Local-Exec relax creates no dynamic relocations.
+# RELOC:      Relocations [
+# RELOC-NEXT: ]
 
 # TCB size = 0x16 and foo is first element from TLS register.
 # CHECK: Disassembly of section .text:
 # CHECK-EMPTY:
 # CHECK: _start:
-# CHECK:  210000:	00 00 a0 d2	movz	x0, #0, lsl #16
-# CHECK:  210004:	00 02 80 f2 	movk	x0, #16
-# CHECK:  210008:	1f 20 03 d5 	nop
-# CHECK:  21000c:	1f 20 03 d5 	nop
+# CHECK:  210000: movz    x0, #0, lsl #16
+# CHECK:  210004: movk    x0, #16
+# CHECK:  210008: nop
+# CHECK:  21000c: nop
 
 .globl _start
 _start:

Modified: lld/trunk/test/ELF/aarch64-tls-ie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tls-ie.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-tls-ie.s (original)
+++ lld/trunk/test/ELF/aarch64-tls-ie.s Sat Jun  1 04:01:26 2019
@@ -1,45 +1,43 @@
-// REQUIRES: aarch64
 # REQUIRES: aarch64
 # RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %p/Inputs/aarch64-tls-ie.s -o %tdso.o
 # RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %tmain.o
 # RUN: ld.lld -shared %tdso.o -o %tdso.so
 # RUN: ld.lld --hash-style=sysv %tmain.o %tdso.so -o %tout
-# RUN: llvm-objdump -d %tout | FileCheck %s
+# RUN: llvm-objdump -d --no-show-raw-insn %tout | FileCheck %s
 # RUN: llvm-readobj -S -r %tout | FileCheck -check-prefix=RELOC %s
 
-#RELOC:      Section {
-#RELOC:        Index:
-#RELOC:        Name: .got
-#RELOC-NEXT:   Type: SHT_PROGBITS
-#RELOC-NEXT:   Flags [
-#RELOC-NEXT:     SHF_ALLOC
-#RELOC-NEXT:     SHF_WRITE
-#RELOC-NEXT:   ]
-#RELOC-NEXT:   Address: 0x2200B0
-#RELOC-NEXT:   Offset: 0x200B0
-#RELOC-NEXT:   Size: 16
-#RELOC-NEXT:   Link: 0
-#RELOC-NEXT:   Info: 0
-#RELOC-NEXT:   AddressAlignment: 8
-#RELOC-NEXT:   EntrySize: 0
-#RELOC-NEXT: }
-#RELOC:      Relocations [
-#RELOC-NEXT:  Section ({{.*}}) .rela.dyn {
-#RELOC-NEXT:    0x2200B8 R_AARCH64_TLS_TPREL64 bar 0x0
-#RELOC-NEXT:    0x2200B0 R_AARCH64_TLS_TPREL64 foo 0x0
-#RELOC-NEXT:  }
-#RELOC-NEXT:]
+# RELOC:      Section {
+# RELOC:        Index:
+# RELOC:        Name: .got
+# RELOC-NEXT:   Type: SHT_PROGBITS
+# RELOC-NEXT:   Flags [
+# RELOC-NEXT:     SHF_ALLOC
+# RELOC-NEXT:     SHF_WRITE
+# RELOC-NEXT:   ]
+# RELOC-NEXT:   Address: 0x2200B0
+# RELOC-NEXT:   Offset: 0x200B0
+# RELOC-NEXT:   Size: 16
+# RELOC-NEXT:   Link: 0
+# RELOC-NEXT:   Info: 0
+# RELOC-NEXT:   AddressAlignment: 8
+# RELOC-NEXT:   EntrySize: 0
+# RELOC-NEXT: }
+# RELOC:      Relocations [
+# RELOC-NEXT:  Section ({{.*}}) .rela.dyn {
+# RELOC-NEXT:    0x2200B8 R_AARCH64_TLS_TPREL64 bar 0x0
+# RELOC-NEXT:    0x2200B0 R_AARCH64_TLS_TPREL64 foo 0x0
+# RELOC-NEXT:  }
+# RELOC-NEXT:]
 
-# Page(0x2200B0) - Page(0x210000) = 0x10000 = 65536
-# 0x2200B0 & 0xff8 = 0xB0 = 176
-# Page(0x2200B8) - Page(0x210000) = 0x10000 = 65536
-# 0x2200B8 & 0xff8 = 0xB8 = 184
-#CHECK: Disassembly of section .text:
-#CHECK: _start:
-#CHECK:  210000: 80 00 00 90 adrp x0, #65536
-#CHECK:  210004: 00 58 40 f9 ldr  x0, [x0, #176]
-#CHECK:  210008: 80 00 00 90 adrp x0, #65536
-#CHECK:  21000c: 00 5c 40 f9 ldr  x0, [x0, #184]
+## Page(0x2200B0) - Page(0x210000) = 0x10000 = 65536
+## 0x2200B0 & 0xff8 = 0xB0 = 176
+## Page(0x2200B8) - Page(0x210000) = 0x10000 = 65536
+## 0x2200B8 & 0xff8 = 0xB8 = 184
+# CHECK:     _start:
+# CHECK-NEXT: 210000: adrp x0, #65536
+# CHECK-NEXT: 210004: ldr  x0, [x0, #176]
+# CHECK-NEXT: 210008: adrp x0, #65536
+# CHECK-NEXT: 21000c: ldr  x0, [x0, #184]
 
 .globl _start
 _start:

Modified: lld/trunk/test/ELF/aarch64-tls-iele.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tls-iele.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-tls-iele.s (original)
+++ lld/trunk/test/ELF/aarch64-tls-iele.s Sat Jun  1 04:01:26 2019
@@ -2,8 +2,12 @@
 # RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %p/Inputs/aarch64-tls-ie.s -o %ttlsie.o
 # RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %tmain.o
 # RUN: ld.lld %tmain.o %ttlsie.o -o %tout
-# RUN: llvm-objdump -d %tout | FileCheck %s
-# RUN: llvm-readobj -S -r %tout | FileCheck -check-prefix=RELOC %s
+# RUN: llvm-objdump -d --no-show-raw-insn %tout | FileCheck %s
+# RUN: llvm-readobj -r %tout | FileCheck -check-prefix=RELOC %s
+
+# RUN: ld.lld -pie %tmain.o %ttlsie.o -o %tout
+# RUN: llvm-objdump -d --no-show-raw-insn %tout | FileCheck %s
+# RUN: llvm-readobj -r %tout | FileCheck -check-prefix=RELOC %s
 
 # Initial-Exec to Local-Exec relax creates no dynamic relocations.
 # RELOC:      Relocations [
@@ -13,10 +17,10 @@
 # CHECK: Disassembly of section .text:
 # CHECK-EMPTY:
 # CHECK: _start:
-# CHECK-NEXT: 210000:  00 00 a0 d2   movz   x0, #0, lsl #16
-# CHECK-NEXT: 210004:  80 02 80 f2   movk   x0, #20
-# CHECK-NEXT: 210008:  00 00 a0 d2   movz   x0, #0, lsl #16
-# CHECK-NEXT: 21000c:  00 02 80 f2   movk   x0, #16
+# CHECK-NEXT: movz   x0, #0, lsl #16
+# CHECK-NEXT: movk   x0, #20
+# CHECK-NEXT: movz   x0, #0, lsl #16
+# CHECK-NEXT: movk   x0, #16
 
 .section .tdata
 .align 2

Removed: lld/trunk/test/ELF/aarch64-tls-pie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tls-pie.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/aarch64-tls-pie.s (original)
+++ lld/trunk/test/ELF/aarch64-tls-pie.s (removed)
@@ -1,28 +0,0 @@
-# REQUIRES: aarch64
-# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-cloudabi %s -o %t1.o
-# RUN: ld.lld -pie %t1.o -o %t
-# RUN: llvm-readobj -r %t | FileCheck %s
-
-# Similar to bug 27174: R_AARCH64_TLSLE_*TPREL* relocations should be
-# eliminated when building a PIE executable, as the static TLS layout is
-# fixed.
-#
-# CHECK:      Relocations [
-# CHECK-NEXT: ]
-
-	.globl	_start
-_start:
-	# Accessing the variable directly.
-	add	x11, x8, :tprel_hi12:i
-	add	x11, x11, :tprel_lo12_nc:i
-
-	# Accessing the variable through the GOT.
-	adrp	x10, :gottprel:i
-	mrs	x8, TPIDR_EL0
-	ldr	x10, [x10, :gottprel_lo12:i]
-
-	.section	.tbss.i,"awT", at nobits
-	.globl	i
-i:
-	.word	0
-	.size	i, 4

Modified: lld/trunk/test/ELF/aarch64-tlsld-ldst.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tlsld-ldst.s?rev=362294&r1=362293&r2=362294&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-tlsld-ldst.s (original)
+++ lld/trunk/test/ELF/aarch64-tlsld-ldst.s Sat Jun  1 04:01:26 2019
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -triple=aarch64-linux-gnu -filetype=obj %s -o %t.o
 // RUN: ld.lld %t.o -o %t
-// RUN: llvm-objdump -d %t | FileCheck %s
+// RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
 // RUN: llvm-readelf --symbols %t | FileCheck -check-prefix CHECK-SYMS %s
 
         .text
@@ -25,22 +25,22 @@ _start:  mrs x8, TPIDR_EL0
         ldrb w0, [x8, :tprel_lo12_nc:var4]
 
 // CHECK: _start:
-// CHECK-NEXT:    210000:       48 d0 3b d5     mrs     x8, TPIDR_EL0
+// CHECK-NEXT:    210000:       mrs     x8, TPIDR_EL0
 // 0x0 + c10 = 0xc10       = tcb (16-bytes) + var0
-// CHECK-NEXT:    210004:       08 01 40 91     add     x8, x8, #0, lsl #12
-// CHECK-NEXT:    210008:       14 05 c3 3d     ldr     q20, [x8, #3088]
+// CHECK-NEXT:    210004:       add     x8, x8, #0, lsl #12
+// CHECK-NEXT:    210008:       ldr     q20, [x8, #3088]
 // 0x1000 + 0x820 = 0x1820 = tcb + var1
-// CHECK-NEXT:    21000c:       08 05 40 91     add     x8, x8, #1, lsl #12
-// CHECK-NEXT:    210010:       00 11 44 f9     ldr     x0, [x8, #2080]
+// CHECK-NEXT:    21000c:       add     x8, x8, #1, lsl #12
+// CHECK-NEXT:    210010:       ldr     x0, [x8, #2080]
 // 0x2000 + 0x428 = 0x2428 = tcb + var2
-// CHECK-NEXT:    210014:       08 09 40 91     add     x8, x8, #2, lsl #12
-// CHECK-NEXT:    210018:       00 29 44 b9     ldr     w0, [x8, #1064]
+// CHECK-NEXT:    210014:       add     x8, x8, #2, lsl #12
+// CHECK-NEXT:    210018:       ldr     w0, [x8, #1064]
 // 0x3000 + 0x2c  = 0x302c = tcb + var3
-// CHECK-NEXT:    21001c:       08 0d 40 91     add     x8, x8, #3, lsl #12
-// CHECK-NEXT:    210020:       00 59 40 79     ldrh    w0, [x8, #44]
+// CHECK-NEXT:    21001c:       add     x8, x8, #3, lsl #12
+// CHECK-NEXT:    210020:       ldrh    w0, [x8, #44]
 // 0x3000 + 0xc2e = 0x32ce = tcb + var4
-// CHECK-NEXT:    210024:       08 0d 40 91     add     x8, x8, #3, lsl #12
-// CHECK-NEXT:    210028:       00 b9 70 39     ldrb    w0, [x8, #3118]
+// CHECK-NEXT:    210024:       add     x8, x8, #3, lsl #12
+// CHECK-NEXT:    210028:       ldrb    w0, [x8, #3118]
 
 // CHECK-SYMS:      0000000000000c00     0 TLS     GLOBAL DEFAULT    2 var0
 // CHECK-SYMS-NEXT: 0000000000001810     4 TLS     GLOBAL DEFAULT    2 var1

Removed: lld/trunk/test/ELF/got-aarch64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/got-aarch64.s?rev=362293&view=auto
==============================================================================
--- lld/trunk/test/ELF/got-aarch64.s (original)
+++ lld/trunk/test/ELF/got-aarch64.s (removed)
@@ -1,40 +0,0 @@
-// REQUIRES: aarch64
-// RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %t.o
-// RUN: ld.lld --hash-style=sysv -shared %t.o -o %t.so
-// RUN: llvm-readobj -S -r %t.so | FileCheck %s
-// RUN: llvm-objdump -d %t.so | FileCheck --check-prefix=DISASM %s
-
-// CHECK:      Name: .got
-// CHECK-NEXT: Type: SHT_PROGBITS
-// CHECK-NEXT: Flags [
-// CHECK-NEXT:   SHF_ALLOC
-// CHECK-NEXT:   SHF_WRITE
-// CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x20090
-// CHECK-NEXT: Offset:
-// CHECK-NEXT: Size: 8
-// CHECK-NEXT: Link: 0
-// CHECK-NEXT: Info: 0
-// CHECK-NEXT: AddressAlignment: 8
-
-// CHECK:      Relocations [
-// CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
-// CHECK-NEXT:     0x20090 R_AARCH64_GLOB_DAT dat 0x0
-// CHECK-NEXT:   }
-// CHECK-NEXT: ]
-
-// Page(0x20098) - Page(0x10000) = 0x10000 = 65536
-// 0x20098 & 0xff8 = 0x98 = 152
-
-// DISASM: main:
-// DISASM-NEXT:   10000:  80 00 00 90   adrp  x0, #65536
-// DISASM-NEXT:   10004: 00 48 40 f9   ldr x0, [x0, #144]
-
-.global main,foo,dat
-.text
-main:
-    adrp x0, :got:dat
-    ldr x0, [x0, :got_lo12:dat]
-.data
-dat:
-    .word 42




More information about the llvm-commits mailing list