1# REQUIRES: mips
2# Check handling TLS related relocations and symbols when linking
3# a 64-bit static executable.
4
5# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t
6# RUN: ld.lld -static %t -o %t.exe
7# RUN: llvm-objdump -s -t %t.exe | FileCheck %s
8
9# CHECK: SYMBOL TABLE:
10# CHECK: [[TGA:[0-9a-f]{8}]] g      .text  0000000000000000 __tls_get_addr
11# CHECK:    0000000000000000 g      .tdata 0000000000000000 tls1
12#
13# CHECK:      Contents of section .data:
14# CHECK-NEXT:  {{.*}} [[TGA]] ffffffff ffff8004 ffffffff
15# CHECK-NEXT:  {{.*}} ffff9004
16
17  .text
18  .global __start
19__start:
20  nop
21
22  .global __tls_get_addr
23__tls_get_addr:
24  nop
25
26  .data
27loc:
28  .word __tls_get_addr
29  .dtpreldword tls1+4   # R_MIPS_TLS_DTPREL64
30  .tpreldword tls1+4    # R_MIPS_TLS_TPREL64
31
32 .section .tdata,"awT",%progbits
33 .global tls1
34tls1:
35 .word __tls_get_addr
36 .word 0
37