|
1 | 1 |
|
2 | 2 | # RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 --show-encoding %s | FileCheck %s
|
3 | 3 |
|
4 |
| -# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s | \ |
5 |
| -# RUN: llvm-readobj -r - | FileCheck %s -check-prefix=CHECK-REL |
| 4 | +# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s -o %t |
| 5 | +# RUN: llvm-readobj -r %t | FileCheck %s -check-prefix=CHECK-REL |
| 6 | +# RUN: llvm-readelf -s - < %t | FileCheck %s --check-prefix=READELF --implicit-check-not=TLS |
6 | 7 |
|
7 | 8 | # RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s | \
|
8 | 9 | # RUN: llvm-objdump -d - | FileCheck %s -check-prefix=CHECK-DIS
|
|
25 | 26 | .align 16
|
26 | 27 | larl %r14, target@gotent
|
27 | 28 |
|
28 |
| -# CHECK: larl %r14, target@INDNTPOFF # encoding: [0xc0,0xe0,A,A,A,A] |
29 |
| -# CHECK-NEXT: # fixup A - offset: 2, value: target@INDNTPOFF+2, kind: FK_390_PC32DBL |
30 |
| -# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_TLS_IEENT target 0x2 |
| 29 | +# CHECK: larl %r14, s_indntpoff@INDNTPOFF # encoding: [0xc0,0xe0,A,A,A,A] |
| 30 | +# CHECK-NEXT: # fixup A - offset: 2, value: s_indntpoff@INDNTPOFF+2, kind: FK_390_PC32DBL |
| 31 | +# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_TLS_IEENT s_indntpoff 0x2 |
31 | 32 | .align 16
|
32 |
| - larl %r14, target@indntpoff |
| 33 | + larl %r14, s_indntpoff@indntpoff |
33 | 34 |
|
34 | 35 | # CHECK: brasl %r14, target # encoding: [0xc0,0xe5,A,A,A,A]
|
35 | 36 | # CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC32DBL
|
|
43 | 44 | .align 16
|
44 | 45 | brasl %r14, target@plt
|
45 | 46 |
|
46 |
| -# CHECK: brasl %r14, target@PLT:tls_gdcall:sym # encoding: [0xc0,0xe5,A,A,A,A] |
| 47 | +# CHECK: brasl %r14, target@PLT:tls_gdcall:s_gdcall # encoding: [0xc0,0xe5,A,A,A,A] |
47 | 48 | # CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC32DBL
|
48 |
| -# CHECK-NEXT: # fixup B - offset: 0, value: sym@TLSGD, kind: FK_390_TLS_CALL |
| 49 | +# CHECK-NEXT: # fixup B - offset: 0, value: s_gdcall@TLSGD, kind: FK_390_TLS_CALL |
49 | 50 | # CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x2
|
50 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL sym 0x0 |
| 51 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL s_gdcall 0x0 |
51 | 52 | .align 16
|
52 |
| - brasl %r14, target@plt:tls_gdcall:sym |
| 53 | + brasl %r14, target@plt:tls_gdcall:s_gdcall |
53 | 54 |
|
54 |
| -# CHECK: brasl %r14, target@PLT:tls_ldcall:sym # encoding: [0xc0,0xe5,A,A,A,A] |
| 55 | +# CHECK: brasl %r14, target@PLT:tls_ldcall:s_ldcall # encoding: [0xc0,0xe5,A,A,A,A] |
55 | 56 | # CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC32DBL
|
56 |
| -# CHECK-NEXT: # fixup B - offset: 0, value: sym@TLSLDM, kind: FK_390_TLS_CALL |
| 57 | +# CHECK-NEXT: # fixup B - offset: 0, value: s_ldcall@TLSLDM, kind: FK_390_TLS_CALL |
57 | 58 | # CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x2
|
58 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL sym 0x0 |
| 59 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL s_ldcall 0x0 |
59 | 60 | .align 16
|
60 |
| - brasl %r14, target@plt:tls_ldcall:sym |
| 61 | + brasl %r14, target@plt:tls_ldcall:s_ldcall |
61 | 62 |
|
62 | 63 | # CHECK: bras %r14, target # encoding: [0xa7,0xe5,A,A]
|
63 | 64 | # CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC16DBL
|
|
71 | 72 | .align 16
|
72 | 73 | bras %r14, target@plt
|
73 | 74 |
|
74 |
| -# CHECK: bras %r14, target@PLT:tls_gdcall:sym # encoding: [0xa7,0xe5,A,A] |
| 75 | +# CHECK: bras %r14, target@PLT:tls_gdcall:gdcall # encoding: [0xa7,0xe5,A,A] |
75 | 76 | # CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC16DBL
|
76 |
| -# CHECK-NEXT: # fixup B - offset: 0, value: sym@TLSGD, kind: FK_390_TLS_CALL |
| 77 | +# CHECK-NEXT: # fixup B - offset: 0, value: gdcall@TLSGD, kind: FK_390_TLS_CALL |
77 | 78 | # CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x2
|
78 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL sym 0x0 |
| 79 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL gdcall 0x0 |
79 | 80 | .align 16
|
80 |
| - bras %r14, target@plt:tls_gdcall:sym |
| 81 | + bras %r14, target@plt:tls_gdcall:gdcall |
81 | 82 |
|
82 |
| -# CHECK: bras %r14, target@PLT:tls_ldcall:sym # encoding: [0xa7,0xe5,A,A] |
| 83 | +# CHECK: bras %r14, target@PLT:tls_ldcall:ldcall # encoding: [0xa7,0xe5,A,A] |
83 | 84 | # CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC16DBL
|
84 |
| -# CHECK-NEXT: # fixup B - offset: 0, value: sym@TLSLDM, kind: FK_390_TLS_CALL |
| 85 | +# CHECK-NEXT: # fixup B - offset: 0, value: ldcall@TLSLDM, kind: FK_390_TLS_CALL |
85 | 86 | # CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x2
|
86 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL sym 0x0 |
| 87 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL ldcall 0x0 |
87 | 88 | .align 16
|
88 |
| - bras %r14, target@plt:tls_ldcall:sym |
| 89 | + bras %r14, target@plt:tls_ldcall:ldcall |
89 | 90 |
|
90 | 91 |
|
91 | 92 | # Symbolic displacements
|
@@ -420,41 +421,58 @@ local_s32:
|
420 | 421 | .align 16
|
421 | 422 | lgfi %r1,src-.
|
422 | 423 |
|
| 424 | +# CHECK-REL-LABEL: .rela.adjusted |
| 425 | +# CHECK-REL: R_390_GOTENT local |
| 426 | +# CHECK-REL: R_390_PLT32DBL local |
| 427 | +.section .adjusted,"ax" |
| 428 | +local: |
| 429 | +larl %r14, local@got |
| 430 | +brasl %r14, local@plt |
| 431 | + |
423 | 432 | # Data relocs
|
424 | 433 | # llvm-mc does not show any "encoding" string for data, so we just check the relocs
|
425 | 434 |
|
426 |
| -# CHECK-REL: .rela.data |
| 435 | +# CHECK-REL-LABEL: .rela.data |
427 | 436 | .data
|
428 | 437 |
|
429 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE64 target 0x0 |
| 438 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE64 s_ntpoff 0x0 |
430 | 439 | .align 16
|
431 |
| - .quad target@ntpoff |
| 440 | + .quad s_ntpoff@ntpoff |
432 | 441 |
|
433 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO64 target 0x0 |
| 442 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO64 s_dtpoff 0x0 |
434 | 443 | .align 16
|
435 |
| - .quad target@dtpoff |
| 444 | + .quad s_dtpoff@dtpoff |
436 | 445 |
|
437 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM64 target 0x0 |
| 446 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM64 s_tlsldm 0x0 |
438 | 447 | .align 16
|
439 |
| - .quad target@tlsldm |
| 448 | + .quad s_tlsldm@tlsldm |
440 | 449 |
|
441 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD64 target 0x0 |
| 450 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD64 s_tlsgd 0x0 |
442 | 451 | .align 16
|
443 |
| - .quad target@tlsgd |
| 452 | + .quad s_tlsgd@tlsgd |
444 | 453 |
|
445 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE32 target 0x0 |
| 454 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE32 s_ntpoff 0x0 |
446 | 455 | .align 16
|
447 |
| - .long target@ntpoff |
| 456 | + .long s_ntpoff@ntpoff |
448 | 457 |
|
449 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO32 target 0x0 |
| 458 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO32 s_dtpoff 0x0 |
450 | 459 | .align 16
|
451 |
| - .long target@dtpoff |
| 460 | + .long s_dtpoff@dtpoff |
452 | 461 |
|
453 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM32 target 0x0 |
| 462 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM32 s_tlsldm 0x0 |
454 | 463 | .align 16
|
455 |
| - .long target@tlsldm |
| 464 | + .long s_tlsldm@tlsldm |
456 | 465 |
|
457 |
| -# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD32 target 0x0 |
| 466 | +# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD32 s_tlsgd 0x0 |
458 | 467 | .align 16
|
459 |
| - .long target@tlsgd |
460 |
| - |
| 468 | + .long s_tlsgd@tlsgd |
| 469 | + |
| 470 | +# READELF: TLS GLOBAL DEFAULT UND s_indntpoff |
| 471 | +# READELF: TLS GLOBAL DEFAULT UND s_gdcall |
| 472 | +# READELF: TLS GLOBAL DEFAULT UND s_ldcall |
| 473 | +# READELF: TLS GLOBAL DEFAULT UND gdcall |
| 474 | +# READELF: TLS GLOBAL DEFAULT UND ldcall |
| 475 | +# READELF: TLS GLOBAL DEFAULT UND s_ntpoff |
| 476 | +# READELF: TLS GLOBAL DEFAULT UND s_dtpoff |
| 477 | +# READELF: TLS GLOBAL DEFAULT UND s_tlsldm |
| 478 | +# READELF: TLS GLOBAL DEFAULT UND s_tlsgd |
0 commit comments