|
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