@@ -34,145 +34,150 @@ lla a3, ra
34
34
lla a4 , f1
35
35
36
36
# CHECK: .Lpcrel_hi5:
37
+ # CHECK: auipc a5 , %pcrel_hi(a_symbol+2040 )
38
+ # CHECK: addi a5 , a5 , %pcrel_lo(.Lpcrel_hi5)
39
+ lla a5 , a_symbol + (0xFF << 3 )
40
+
41
+ # CHECK: .Lpcrel_hi6:
37
42
# CHECK-NOPIC: auipc a0 , %pcrel_hi(a_symbol)
38
- # CHECK-NOPIC: addi a0 , a0 , %pcrel_lo(.Lpcrel_hi5 )
43
+ # CHECK-NOPIC: addi a0 , a0 , %pcrel_lo(.Lpcrel_hi6 )
39
44
# CHECK-PIC: auipc a0 , %got_pcrel_hi(a_symbol)
40
- # CHECK-PIC-RV32: lw a0 , %pcrel_lo(.Lpcrel_hi5 )(a0 )
41
- # CHECK-PIC-RV64: ld a0 , %pcrel_lo(.Lpcrel_hi5 )(a0 )
45
+ # CHECK-PIC-RV32: lw a0 , %pcrel_lo(.Lpcrel_hi6 )(a0 )
46
+ # CHECK-PIC-RV64: ld a0 , %pcrel_lo(.Lpcrel_hi6 )(a0 )
42
47
la a0 , a_symbol
43
48
44
- # CHECK: .Lpcrel_hi6 :
49
+ # CHECK: .Lpcrel_hi7 :
45
50
# CHECK-NOPIC: auipc a1 , %pcrel_hi(another_symbol)
46
- # CHECK-NOPIC: addi a1 , a1 , %pcrel_lo(.Lpcrel_hi6 )
51
+ # CHECK-NOPIC: addi a1 , a1 , %pcrel_lo(.Lpcrel_hi7 )
47
52
# CHECK-PIC: auipc a1 , %got_pcrel_hi(another_symbol)
48
- # CHECK-PIC-RV32: lw a1 , %pcrel_lo(.Lpcrel_hi6 )(a1 )
49
- # CHECK-PIC-RV64: ld a1 , %pcrel_lo(.Lpcrel_hi6 )(a1 )
53
+ # CHECK-PIC-RV32: lw a1 , %pcrel_lo(.Lpcrel_hi7 )(a1 )
54
+ # CHECK-PIC-RV64: ld a1 , %pcrel_lo(.Lpcrel_hi7 )(a1 )
50
55
la a1 , another_symbol
51
56
52
57
# Check that we can load the address of symbols that are spelled like a register
53
- # CHECK: .Lpcrel_hi7 :
58
+ # CHECK: .Lpcrel_hi8 :
54
59
# CHECK-NOPIC: auipc a2 , %pcrel_hi(zero)
55
- # CHECK-NOPIC: addi a2 , a2 , %pcrel_lo(.Lpcrel_hi7 )
60
+ # CHECK-NOPIC: addi a2 , a2 , %pcrel_lo(.Lpcrel_hi8 )
56
61
# CHECK-PIC: auipc a2 , %got_pcrel_hi(zero)
57
- # CHECK-PIC-RV32: lw a2 , %pcrel_lo(.Lpcrel_hi7 )(a2 )
58
- # CHECK-PIC-RV64: ld a2 , %pcrel_lo(.Lpcrel_hi7 )(a2 )
62
+ # CHECK-PIC-RV32: lw a2 , %pcrel_lo(.Lpcrel_hi8 )(a2 )
63
+ # CHECK-PIC-RV64: ld a2 , %pcrel_lo(.Lpcrel_hi8 )(a2 )
59
64
la a2 , zero
60
65
61
- # CHECK: .Lpcrel_hi8 :
66
+ # CHECK: .Lpcrel_hi9 :
62
67
# CHECK-NOPIC: auipc a3 , %pcrel_hi(ra)
63
- # CHECK-NOPIC: addi a3 , a3 , %pcrel_lo(.Lpcrel_hi8 )
68
+ # CHECK-NOPIC: addi a3 , a3 , %pcrel_lo(.Lpcrel_hi9 )
64
69
# CHECK-PIC: auipc a3 , %got_pcrel_hi(ra)
65
- # CHECK-PIC-RV32: lw a3 , %pcrel_lo(.Lpcrel_hi8 )(a3 )
66
- # CHECK-PIC-RV64: ld a3 , %pcrel_lo(.Lpcrel_hi8 )(a3 )
70
+ # CHECK-PIC-RV32: lw a3 , %pcrel_lo(.Lpcrel_hi9 )(a3 )
71
+ # CHECK-PIC-RV64: ld a3 , %pcrel_lo(.Lpcrel_hi9 )(a3 )
67
72
la a3 , ra
68
73
69
- # CHECK: .Lpcrel_hi9 :
74
+ # CHECK: .Lpcrel_hi10 :
70
75
# CHECK-NOPIC: auipc a4 , %pcrel_hi(f1)
71
- # CHECK-NOPIC: addi a4 , a4 , %pcrel_lo(.Lpcrel_hi9 )
76
+ # CHECK-NOPIC: addi a4 , a4 , %pcrel_lo(.Lpcrel_hi10 )
72
77
# CHECK-PIC: auipc a4 , %got_pcrel_hi(f1)
73
- # CHECK-PIC-RV32: lw a4 , %pcrel_lo(.Lpcrel_hi9 )(a4 )
74
- # CHECK-PIC-RV64: ld a4 , %pcrel_lo(.Lpcrel_hi9 )(a4 )
78
+ # CHECK-PIC-RV32: lw a4 , %pcrel_lo(.Lpcrel_hi10 )(a4 )
79
+ # CHECK-PIC-RV64: ld a4 , %pcrel_lo(.Lpcrel_hi10 )(a4 )
75
80
la a4 , f1
76
81
77
- # CHECK: .Lpcrel_hi10 :
82
+ # CHECK: .Lpcrel_hi11 :
78
83
# CHECK: auipc a0 , %tls_ie_pcrel_hi(a_symbol)
79
- # CHECK-RV32: lw a0 , %pcrel_lo(.Lpcrel_hi10 )(a0 )
80
- # CHECK-RV64: ld a0 , %pcrel_lo(.Lpcrel_hi10 )(a0 )
84
+ # CHECK-RV32: lw a0 , %pcrel_lo(.Lpcrel_hi11 )(a0 )
85
+ # CHECK-RV64: ld a0 , %pcrel_lo(.Lpcrel_hi11 )(a0 )
81
86
la .tls.ie a0 , a_symbol
82
87
83
- # CHECK: .Lpcrel_hi11 :
88
+ # CHECK: .Lpcrel_hi12 :
84
89
# CHECK: auipc a1 , %tls_ie_pcrel_hi(another_symbol)
85
- # CHECK-RV32: lw a1 , %pcrel_lo(.Lpcrel_hi11 )(a1 )
86
- # CHECK-RV64: ld a1 , %pcrel_lo(.Lpcrel_hi11 )(a1 )
90
+ # CHECK-RV32: lw a1 , %pcrel_lo(.Lpcrel_hi12 )(a1 )
91
+ # CHECK-RV64: ld a1 , %pcrel_lo(.Lpcrel_hi12 )(a1 )
87
92
la .tls.ie a1 , another_symbol
88
93
89
94
# Check that we can load the address of symbols that are spelled like a register
90
- # CHECK: .Lpcrel_hi12 :
95
+ # CHECK: .Lpcrel_hi13 :
91
96
# CHECK: auipc a2 , %tls_ie_pcrel_hi(zero)
92
- # CHECK-RV32: lw a2 , %pcrel_lo(.Lpcrel_hi12 )(a2 )
93
- # CHECK-RV64: ld a2 , %pcrel_lo(.Lpcrel_hi12 )(a2 )
97
+ # CHECK-RV32: lw a2 , %pcrel_lo(.Lpcrel_hi13 )(a2 )
98
+ # CHECK-RV64: ld a2 , %pcrel_lo(.Lpcrel_hi13 )(a2 )
94
99
la .tls.ie a2 , zero
95
100
96
- # CHECK: .Lpcrel_hi13 :
101
+ # CHECK: .Lpcrel_hi14 :
97
102
# CHECK: auipc a3 , %tls_ie_pcrel_hi(ra)
98
- # CHECK-RV32: lw a3 , %pcrel_lo(.Lpcrel_hi13 )(a3 )
99
- # CHECK-RV64: ld a3 , %pcrel_lo(.Lpcrel_hi13 )(a3 )
103
+ # CHECK-RV32: lw a3 , %pcrel_lo(.Lpcrel_hi14 )(a3 )
104
+ # CHECK-RV64: ld a3 , %pcrel_lo(.Lpcrel_hi14 )(a3 )
100
105
la .tls.ie a3 , ra
101
106
102
- # CHECK: .Lpcrel_hi14 :
107
+ # CHECK: .Lpcrel_hi15 :
103
108
# CHECK: auipc a4 , %tls_ie_pcrel_hi(f1)
104
- # CHECK-RV32: lw a4 , %pcrel_lo(.Lpcrel_hi14 )(a4 )
105
- # CHECK-RV64: ld a4 , %pcrel_lo(.Lpcrel_hi14 )(a4 )
109
+ # CHECK-RV32: lw a4 , %pcrel_lo(.Lpcrel_hi15 )(a4 )
110
+ # CHECK-RV64: ld a4 , %pcrel_lo(.Lpcrel_hi15 )(a4 )
106
111
la .tls.ie a4 , f1
107
112
108
- # CHECK: .Lpcrel_hi15 :
113
+ # CHECK: .Lpcrel_hi16 :
109
114
# CHECK: auipc a0 , %tls_gd_pcrel_hi(a_symbol)
110
- # CHECK: addi a0 , a0 , %pcrel_lo(.Lpcrel_hi15 )
115
+ # CHECK: addi a0 , a0 , %pcrel_lo(.Lpcrel_hi16 )
111
116
la .tls.gd a0 , a_symbol
112
117
113
- # CHECK: .Lpcrel_hi16 :
118
+ # CHECK: .Lpcrel_hi17 :
114
119
# CHECK: auipc a1 , %tls_gd_pcrel_hi(another_symbol)
115
- # CHECK: addi a1 , a1 , %pcrel_lo(.Lpcrel_hi16 )
120
+ # CHECK: addi a1 , a1 , %pcrel_lo(.Lpcrel_hi17 )
116
121
la .tls.gd a1 , another_symbol
117
122
118
123
# Check that we can load the address of symbols that are spelled like a register
119
- # CHECK: .Lpcrel_hi17 :
124
+ # CHECK: .Lpcrel_hi18 :
120
125
# CHECK: auipc a2 , %tls_gd_pcrel_hi(zero)
121
- # CHECK: addi a2 , a2 , %pcrel_lo(.Lpcrel_hi17 )
126
+ # CHECK: addi a2 , a2 , %pcrel_lo(.Lpcrel_hi18 )
122
127
la .tls.gd a2 , zero
123
128
124
- # CHECK: .Lpcrel_hi18 :
129
+ # CHECK: .Lpcrel_hi19 :
125
130
# CHECK: auipc a3 , %tls_gd_pcrel_hi(ra)
126
- # CHECK: addi a3 , a3 , %pcrel_lo(.Lpcrel_hi18 )
131
+ # CHECK: addi a3 , a3 , %pcrel_lo(.Lpcrel_hi19 )
127
132
la .tls.gd a3 , ra
128
133
129
- # CHECK: .Lpcrel_hi19 :
134
+ # CHECK: .Lpcrel_hi20 :
130
135
# CHECK: auipc a4 , %tls_gd_pcrel_hi(f1)
131
- # CHECK: addi a4 , a4 , %pcrel_lo(.Lpcrel_hi19 )
136
+ # CHECK: addi a4 , a4 , %pcrel_lo(.Lpcrel_hi20 )
132
137
la .tls.gd a4 , f1
133
138
134
- # CHECK: .Lpcrel_hi20 :
139
+ # CHECK: .Lpcrel_hi21 :
135
140
# CHECK: auipc a0 , %pcrel_hi(a_symbol)
136
- # CHECK: lb a0 , %pcrel_lo(.Lpcrel_hi20 )(a0 )
141
+ # CHECK: lb a0 , %pcrel_lo(.Lpcrel_hi21 )(a0 )
137
142
lb a0 , a_symbol
138
143
139
- # CHECK: .Lpcrel_hi21 :
144
+ # CHECK: .Lpcrel_hi22 :
140
145
# CHECK: auipc a1 , %pcrel_hi(a_symbol)
141
- # CHECK: lh a1 , %pcrel_lo(.Lpcrel_hi21 )(a1 )
146
+ # CHECK: lh a1 , %pcrel_lo(.Lpcrel_hi22 )(a1 )
142
147
lh a1 , a_symbol
143
148
144
- # CHECK: .Lpcrel_hi22 :
149
+ # CHECK: .Lpcrel_hi23 :
145
150
# CHECK: auipc a2 , %pcrel_hi(a_symbol)
146
- # CHECK: lhu a2 , %pcrel_lo(.Lpcrel_hi22 )(a2 )
151
+ # CHECK: lhu a2 , %pcrel_lo(.Lpcrel_hi23 )(a2 )
147
152
lhu a2 , a_symbol
148
153
149
- # CHECK: .Lpcrel_hi23 :
154
+ # CHECK: .Lpcrel_hi24 :
150
155
# CHECK: auipc a3 , %pcrel_hi(a_symbol)
151
- # CHECK: lw a3 , %pcrel_lo(.Lpcrel_hi23 )(a3 )
156
+ # CHECK: lw a3 , %pcrel_lo(.Lpcrel_hi24 )(a3 )
152
157
lw a3 , a_symbol
153
158
154
- # CHECK: .Lpcrel_hi24 :
159
+ # CHECK: .Lpcrel_hi25 :
155
160
# CHECK: auipc a4 , %pcrel_hi(a_symbol)
156
- # CHECK: sb a3 , %pcrel_lo(.Lpcrel_hi24 )(a4 )
161
+ # CHECK: sb a3 , %pcrel_lo(.Lpcrel_hi25 )(a4 )
157
162
sb a3 , a_symbol, a4
158
163
159
- # CHECK: .Lpcrel_hi25 :
164
+ # CHECK: .Lpcrel_hi26 :
160
165
# CHECK: auipc a4 , %pcrel_hi(a_symbol)
161
- # CHECK: sh a3 , %pcrel_lo(.Lpcrel_hi25 )(a4 )
166
+ # CHECK: sh a3 , %pcrel_lo(.Lpcrel_hi26 )(a4 )
162
167
sh a3 , a_symbol, a4
163
168
164
- # CHECK: .Lpcrel_hi26 :
169
+ # CHECK: .Lpcrel_hi27 :
165
170
# CHECK: auipc a4 , %pcrel_hi(a_symbol)
166
- # CHECK: sw a3 , %pcrel_lo(.Lpcrel_hi26 )(a4 )
171
+ # CHECK: sw a3 , %pcrel_lo(.Lpcrel_hi27 )(a4 )
167
172
sw a3 , a_symbol, a4
168
173
169
174
# Check that we can load the address of symbols that are spelled like a register
170
- # CHECK: .Lpcrel_hi27 :
175
+ # CHECK: .Lpcrel_hi28 :
171
176
# CHECK: auipc a2 , %pcrel_hi(zero)
172
- # CHECK: lw a2 , %pcrel_lo(.Lpcrel_hi27 )(a2 )
177
+ # CHECK: lw a2 , %pcrel_lo(.Lpcrel_hi28 )(a2 )
173
178
lw a2 , zero
174
179
175
- # CHECK: .Lpcrel_hi28 :
180
+ # CHECK: .Lpcrel_hi29 :
176
181
# CHECK: auipc a4 , %pcrel_hi(zero)
177
- # CHECK: sw a3 , %pcrel_lo(.Lpcrel_hi28 )(a4 )
182
+ # CHECK: sw a3 , %pcrel_lo(.Lpcrel_hi29 )(a4 )
178
183
sw a3 , zero, a4
0 commit comments