|
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