|
1 | 1 | ! Testing Sparc TLS relocations emission |
2 | 2 | ! (for now a couple local ones). |
3 | 3 | ! |
4 | | -! RUN: llvm-mc %s -triple=sparc -show-encoding | FileCheck %s --check-prefix=ASM |
5 | | -! RUN: llvm-mc %s -triple=sparcv9 -show-encoding | FileCheck %s --check-prefix=ASM |
| 4 | +! RUN: llvm-mc %s -triple=sparc | FileCheck %s --check-prefix=ASM |
| 5 | +! RUN: llvm-mc %s -triple=sparcv9 | FileCheck %s --check-prefix=ASM |
6 | 6 | ! RUN: llvm-mc %s -triple=sparc -filetype=obj | llvm-readobj -r - | FileCheck %s --check-prefix=REL |
7 | 7 | ! RUN: llvm-mc %s -triple=sparcv9 -filetype=obj | llvm-readobj -r - | FileCheck %s --check-prefix=REL |
8 | 8 | ! RUN: llvm-mc %s -triple=sparc -filetype=obj | llvm-objdump -r -d - | FileCheck %s --check-prefix=OBJDUMP |
|
30 | 30 |
|
31 | 31 | ! OBJDUMP: {{[0-9,a-f]+}}: 31 00 00 00 sethi 0x0, %i0 |
32 | 32 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_HIX22 Local |
33 | | -! ASM: sethi %tle_hix22(Local), %i0 ! encoding: [0x31,0x00,0x00,0x00] |
| 33 | +! ASM: sethi %tle_hix22(Local), %i0 |
34 | 34 | sethi %tle_hix22(Local), %i0 |
35 | 35 |
|
36 | 36 | ! OBJDUMP: {{[0-9,a-f]+}}: b0 1e 20 00 xor %i0, 0x0, %i0 |
37 | 37 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_LOX10 Local |
38 | | -! ASM: xor %i0, %tle_lox10(Local), %i0 ! encoding: [0xb0,0x1e,0x20,0x00] |
| 38 | +! ASM: xor %i0, %tle_lox10(Local), %i0 |
39 | 39 | xor %i0, %tle_lox10(Local), %i0 |
40 | 40 |
|
41 | 41 |
|
|
45 | 45 |
|
46 | 46 | ! OBJDUMP: {{[0-9,a-f]+}}: 33 00 00 00 sethi 0x0, %i1 |
47 | 47 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_HIX22 Local |
48 | | -! ASM: sethi %tldo_hix22(Local), %i1 ! encoding: [0x33,0b00AAAAAA,A,A] |
| 48 | +! ASM: sethi %tldo_hix22(Local), %i1 |
49 | 49 | sethi %tldo_hix22(Local), %i1 |
50 | 50 |
|
51 | 51 | ! OBJDUMP: {{[0-9,a-f]+}}: 35 00 00 00 sethi 0x0, %i2 |
52 | 52 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_HI22 Local |
53 | | -! ASM: sethi %tldm_hi22(Local), %i2 ! encoding: [0x35,0b00AAAAAA,A,A] |
| 53 | +! ASM: sethi %tldm_hi22(Local), %i2 |
54 | 54 | sethi %tldm_hi22(Local), %i2 |
55 | 55 |
|
56 | 56 | ! OBJDUMP: {{[0-9,a-f]+}}: b4 06 a0 00 add %i2, 0x0, %i2 |
57 | 57 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_LO10 Local |
58 | | -! ASM: add %i2, %tldm_lo10(Local), %i2 ! encoding: [0xb4,0x06,0b101000AA,A] |
| 58 | +! ASM: add %i2, %tldm_lo10(Local), %i2 |
59 | 59 | add %i2, %tldm_lo10(Local), %i2 |
60 | 60 |
|
61 | 61 | ! OBJDUMP: {{[0-9,a-f]+}}: 90 06 00 1a add %i0, %i2, %o0 |
62 | 62 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_ADD Local |
63 | | -! ASM: add %i0, %i2, %o0, %tldm_add(Local) ! encoding: [0x90,0x06,0x00,0x1a] |
| 63 | +! ASM: add %i0, %i2, %o0, %tldm_add(Local) |
64 | 64 | add %i0, %i2, %o0, %tldm_add(Local) |
65 | 65 |
|
66 | 66 | ! OBJDUMP: {{[0-9,a-f]+}}: b0 1e 60 00 xor %i1, 0x0, %i0 |
67 | 67 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_LOX10 Local |
68 | | -! ASM: xor %i1, %tldo_lox10(Local), %i0 ! encoding: [0xb0,0x1e,0b011000AA,A] |
| 68 | +! ASM: xor %i1, %tldo_lox10(Local), %i0 |
69 | 69 | xor %i1, %tldo_lox10(Local), %i0 |
70 | 70 |
|
71 | 71 | ! OBJDUMP: {{[0-9,a-f]+}}: 40 00 00 00 call 0 |
72 | 72 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_CALL Local |
73 | | -! ASM: call __tls_get_addr, %tldm_call(Local) ! encoding: [0x40,0x00,0x00,0x00] |
| 73 | +! ASM: call __tls_get_addr, %tldm_call(Local) |
74 | 74 | call __tls_get_addr, %tldm_call(Local) |
75 | 75 | nop |
76 | 76 |
|
77 | 77 | ! OBJDUMP: {{[0-9,a-f]+}}: 90 02 00 18 add %o0, %i0, %o0 |
78 | 78 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_ADD Local |
79 | | -! ASM: add %o0, %i0, %o0, %tldo_add(Local) ! encoding: [0x90,0x02,0x00,0x18] |
| 79 | +! ASM: add %o0, %i0, %o0, %tldo_add(Local) |
80 | 80 | add %o0, %i0, %o0, %tldo_add(Local) |
81 | 81 |
|
82 | 82 | ! Next two sequences are for extern symbols. |
|
85 | 85 |
|
86 | 86 | ! OBJDUMP: {{[0-9,a-f]+}}: 33 00 00 00 sethi 0x0, %i1 |
87 | 87 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_IE_HI22 Extern |
88 | | -! ASM: sethi %tie_hi22(Extern), %i1 ! encoding: [0x33,0b00AAAAAA,A,A] |
| 88 | +! ASM: sethi %tie_hi22(Extern), %i1 |
89 | 89 | sethi %tie_hi22(Extern), %i1 |
90 | 90 |
|
91 | 91 | ! OBJDUMP: {{[0-9,a-f]+}}: b2 06 60 00 add %i1, 0x0, %i1 |
92 | 92 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_IE_LO10 Extern |
93 | | -! ASM: add %i1, %tie_lo10(Extern), %i1 ! encoding: [0xb2,0x06,0b011000AA,A] |
| 93 | +! ASM: add %i1, %tie_lo10(Extern), %i1 |
94 | 94 | add %i1, %tie_lo10(Extern), %i1 |
95 | 95 |
|
96 | 96 | ! OBJDUMP: {{[0-9,a-f]+}}: f0 06 00 19 ld [%i0+%i1], %i0 |
97 | 97 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_IE_LD Extern |
98 | | -! ASM: ld [%i0+%i1], %i0, %tie_ld(Extern) ! encoding: [0xf0,0x06,0x00,0x19] |
| 98 | +! ASM: ld [%i0+%i1], %i0, %tie_ld(Extern) |
99 | 99 | ld [%i0+%i1], %i0, %tie_ld(Extern) |
100 | 100 |
|
101 | 101 | ! OBJDUMP: {{[0-9,a-f]+}}: f0 5e 00 19 ldx [%i0+%i1], %i0 |
102 | 102 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_IE_LDX Extern |
103 | | -! ASM: ldx [%i0+%i1], %i0, %tie_ldx(Extern) ! encoding: [0xf0,0x5e,0x00,0x19] |
| 103 | +! ASM: ldx [%i0+%i1], %i0, %tie_ldx(Extern) |
104 | 104 | ldx [%i0+%i1], %i0, %tie_ldx(Extern) |
105 | 105 |
|
106 | 106 | ! OBJDUMP: {{[0-9,a-f]+}}: 90 01 c0 18 add %g7, %i0, %o0 |
107 | 107 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_IE_ADD Extern |
108 | | -! ASM: add %g7, %i0, %o0, %tie_add(Extern) ! encoding: [0x90,0x01,0xc0,0x18] |
| 108 | +! ASM: add %g7, %i0, %o0, %tie_add(Extern) |
109 | 109 | add %g7, %i0, %o0, %tie_add(Extern) |
110 | 110 |
|
111 | 111 | ! General Dynamic model |
112 | 112 | ! GD_HI22/GD_LO10/GD_ADD/GD_CALL |
113 | 113 |
|
114 | 114 | ! OBJDUMP: {{[0-9,a-f]+}}: 33 00 00 00 sethi 0x0, %i1 |
115 | 115 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_GD_HI22 Extern |
116 | | -! ASM: sethi %tgd_hi22(Extern), %i1 ! encoding: [0x33,0b00AAAAAA,A,A] |
| 116 | +! ASM: sethi %tgd_hi22(Extern), %i1 |
117 | 117 | sethi %tgd_hi22(Extern), %i1 |
118 | 118 |
|
119 | 119 | ! OBJDUMP: {{[0-9,a-f]+}}: b2 06 60 00 add %i1, 0x0, %i1 |
120 | 120 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_GD_LO10 Extern |
121 | | -! ASM: add %i1, %tgd_lo10(Extern), %i1 ! encoding: [0xb2,0x06,0b011000AA,A] |
| 121 | +! ASM: add %i1, %tgd_lo10(Extern), %i1 |
122 | 122 | add %i1, %tgd_lo10(Extern), %i1 |
123 | 123 |
|
124 | 124 | ! OBJDUMP: {{[0-9,a-f]+}}: 90 06 00 19 add %i0, %i1, %o0 |
125 | 125 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_GD_ADD Extern |
126 | | -! ASM: add %i0, %i1, %o0, %tgd_add(Extern) ! encoding: [0x90,0x06,0x00,0x19] |
| 126 | +! ASM: add %i0, %i1, %o0, %tgd_add(Extern) |
127 | 127 | add %i0, %i1, %o0, %tgd_add(Extern) |
128 | 128 |
|
129 | 129 | ! OBJDUMP: {{[0-9,a-f]+}}: 40 00 00 00 call 0 |
130 | 130 | ! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_GD_CALL Extern |
131 | | -! ASM: call __tls_get_addr, %tgd_call(Extern) ! encoding: [0x40,0x00,0x00,0x00] |
| 131 | +! ASM: call __tls_get_addr, %tgd_call(Extern) |
132 | 132 | call __tls_get_addr, %tgd_call(Extern) |
133 | 133 |
|
134 | 134 | .type Local,@object |
|
0 commit comments