Commit | Line | Data |
---|---|---|
4a71579b PC |
1 | .disasm // only disassemble |
2 | .code | |
3 | prolog | |
4 | allocai 32 $buf | |
5 | arg $c | |
6 | arg $uc | |
7 | arg $s | |
8 | arg $us | |
9 | arg $i | |
10 | #if __WORDSIZE == 64 | |
11 | arg $ui | |
12 | arg $l | |
13 | #endif | |
14 | getarg_c %r0 $c | |
15 | getarg_uc %r0 $uc | |
16 | getarg_s %r0 $s | |
17 | getarg_us %r0 $us | |
18 | getarg_i %r0 $i | |
19 | #if __WORDSIZE == 64 | |
20 | getarg_ui %r0 $ui | |
21 | getarg_l %r0 $l | |
22 | #endif | |
23 | addr %r0 %r1 %r2 | |
24 | addi %r0 %r1 2 | |
25 | addcr %r0 %r1 %r2 | |
26 | addci %r0 %r1 2 | |
27 | addxr %r0 %r1 %r2 | |
28 | addxi %r0 %r1 2 | |
29 | subr %r0 %r1 %r2 | |
30 | subi %r0 %r1 2 | |
31 | subcr %r0 %r1 %r2 | |
32 | subci %r0 %r1 2 | |
33 | subxr %r0 %r1 %r2 | |
34 | subxi %r0 %r1 2 | |
35 | mulr %r0 %r1 %r2 | |
36 | muli %r0 %r1 2 | |
37 | qmulr %r0 %r1 %r2 %v0 | |
38 | qmuli %r0 %r1 %r2 3 | |
39 | qmulr_u %r0 %r1 %r2 %v0 | |
40 | qmuli_u %r0 %r1 %r2 3 | |
41 | divr %r0 %r1 %r2 | |
42 | divi %r0 %r1 2 | |
43 | divr_u %r0 %r1 %r2 | |
44 | divi_u %r0 %r1 2 | |
45 | qdivr %r0 %r1 %r2 %v0 | |
46 | qdivi %r0 %r1 %r2 3 | |
47 | qdivr_u %r0 %r1 %r2 %v0 | |
48 | qdivi_u %r0 %r1 %r2 3 | |
49 | remr %r0 %r1 %r2 | |
50 | remi %r0 %r1 2 | |
51 | remr_u %r0 %r1 %r2 | |
52 | remi_u %r0 %r1 2 | |
53 | andr %r0 %r1 %r2 | |
54 | andi %r0 %r1 2 | |
55 | orr %r0 %r1 %r2 | |
56 | ori %r0 %r1 2 | |
57 | xorr %r0 %r1 %r2 | |
58 | xori %r0 %r1 2 | |
59 | lshr %r0 %r1 %r2 | |
60 | lshi %r0 %r1 2 | |
61 | rshr %r0 %r1 %r2 | |
62 | rshi %r0 %r1 2 | |
63 | rshr_u %r0 %r1 %r2 | |
64 | rshi_u %r0 %r1 2 | |
65 | negr %r0 %r1 | |
66 | comr %r0 %r1 | |
67 | ltr %r0 %r1 %r2 | |
68 | lti %r0 %r1 2 | |
69 | ltr_u %r0 %r1 %r2 | |
70 | lti_u %r0 %r1 2 | |
71 | ler %r0 %r1 %r2 | |
72 | lei %r0 %r1 2 | |
73 | ler_u %r0 %r1 %r2 | |
74 | lei_u %r0 %r1 2 | |
75 | eqr %r0 %r1 %r2 | |
76 | eqi %r0 %r1 2 | |
77 | ger %r0 %r1 %r2 | |
78 | gei %r0 %r1 2 | |
79 | ger_u %r0 %r1 %r2 | |
80 | gei_u %r0 %r1 2 | |
81 | gtr %r0 %r1 %r2 | |
82 | gti %r0 %r1 2 | |
83 | gtr_u %r0 %r1 %r2 | |
84 | gti_u %r0 %r1 2 | |
85 | ner %r0 %r1 %r2 | |
86 | nei %r0 %r1 2 | |
87 | movr %r0 %r1 | |
88 | movi %r0 1 | |
89 | extr_c %r0 %r1 | |
90 | extr_uc %r0 %r1 | |
91 | extr_s %r0 %r1 | |
92 | extr_us %r0 %r1 | |
93 | #if __WORDSIZE == 64 | |
94 | extr_i %r0 %r1 | |
95 | extr_ui %r0 %r1 | |
96 | #endif | |
97 | htonr %r0 %r1 | |
98 | ntohr %r0 %r1 | |
99 | ldr_c %r0 %r1 | |
100 | ldi_c %r0 0x80000000 | |
101 | ldr_uc %r0 %r1 | |
102 | ldi_uc %r0 0x80000000 | |
103 | ldr_s %r0 %r1 | |
104 | ldi_s %r0 0x80000000 | |
105 | ldr_us %r0 %r1 | |
106 | ldi_us %r0 0x80000000 | |
107 | ldr_i %r0 %r1 | |
108 | ldi_i %r0 0x80000000 | |
109 | #if __WORDSIZE == 64 | |
110 | ldr_ui %r0 %r1 | |
111 | ldi_ui %r0 0x80000000 | |
112 | ldr_l %r0 %r1 | |
113 | ldi_l %r0 0x80000000 | |
114 | #endif | |
115 | ldxr_c %r0 %r1 %r2 | |
116 | ldxi_c %r0 %r1 1 | |
117 | ldxr_uc %r0 %r1 %r2 | |
118 | ldxi_uc %r0 %r1 1 | |
119 | ldxr_s %r0 %r1 %r2 | |
120 | ldxi_s %r0 %r1 2 | |
121 | ldxr_us %r0 %r1 %r2 | |
122 | ldxi_us %r0 %r1 2 | |
123 | ldxr_i %r0 %r1 %r2 | |
124 | ldxi_i %r0 %r1 4 | |
125 | #if __WORDSIZE == 64 | |
126 | ldxr_ui %r0 %r1 %r2 | |
127 | ldxi_ui %r0 %r1 4 | |
128 | ldxr_l %r0 %r1 %r2 | |
129 | ldxi_l %r0 %r1 8 | |
130 | #endif | |
131 | str_c %r1 %r0 | |
132 | sti_c 0x80000000 %r1 | |
133 | str_s %r1 %r0 | |
134 | sti_s 0x80000000 %r1 | |
135 | str_i %r1 %r0 | |
136 | sti_i 0x80000000 %r1 | |
137 | #if __WORDSIZE == 64 | |
138 | str_l %r1 %r0 | |
139 | sti_l 0x80000000 %r1 | |
140 | #endif | |
141 | stxr_c %r2 %r1 %r0 | |
142 | stxi_c 1 %r1 %r0 | |
143 | stxr_s %r2 %r1 %r0 | |
144 | stxi_s 2 %r1 %r0 | |
145 | stxr_i %r2 %r1 %r0 | |
146 | stxi_i 4 %r1 %r0 | |
147 | #if __WORDSIZE == 64 | |
148 | stxr_l %r2 %r1 %r0 | |
149 | stxi_l 8 %r1 %r0 | |
150 | #endif | |
151 | cond: | |
152 | bltr cond %r0 %r1 | |
153 | condi: | |
154 | blti condi %r0 1 | |
155 | condu: | |
156 | bltr_u condu %r0 %r1 | |
157 | condiu: | |
158 | blti_u condiu %r0 1 | |
159 | bler cond %r0 %r1 | |
160 | blei condi %r0 1 | |
161 | bler_u condu %r0 %r1 | |
162 | blei_u condiu %r0 1 | |
163 | bool: | |
164 | beqr bool %r0 %r1 | |
165 | booli: | |
166 | beqi booli %r0 1 | |
167 | bger cond %r0 %r1 | |
168 | bgei condi %r0 1 | |
169 | bger_u condu %r0 %r1 | |
170 | bgei_u condiu %r0 1 | |
171 | bgtr cond %r0 %r1 | |
172 | bgti condi %r0 1 | |
173 | bgtr_u condu %r0 %r1 | |
174 | bgti_u condiu %r0 1 | |
175 | bner bool %r0 %r1 | |
176 | bnei booli %r0 1 | |
177 | mask: | |
178 | bmsr mask %r0 %r1 | |
179 | maski: | |
180 | bmsi maski %r0 1 | |
181 | bmcr mask %r0 %r1 | |
182 | bmci maski %r0 1 | |
183 | as: | |
184 | boaddr as %r0 %r1 | |
185 | asi: | |
186 | boaddi asi %r0 1 | |
187 | asu: | |
188 | boaddr_u as %r0 %r1 | |
189 | boaddi_u asi %r0 1 | |
190 | bxaddr as %r0 %r1 | |
191 | bxaddi asi %r0 1 | |
192 | bxaddr_u as %r0 %r1 | |
193 | bxaddi_u asi %r0 1 | |
194 | bosubr as %r0 %r1 | |
195 | bosubi asi %r0 1 | |
196 | bosubr_u as %r0 %r1 | |
197 | bosubi_u asi %r0 1 | |
198 | bxsubr as %r0 %r1 | |
199 | bxsubi asi %r0 1 | |
200 | bxsubr_u as %r0 %r1 | |
201 | bxsubi_u asi %r0 1 | |
202 | label: | |
203 | jmpr %r0 | |
204 | jmpi label | |
205 | callr %r0 | |
206 | calli label | |
207 | prepare | |
208 | pushargr %r0 | |
209 | finishr %r0 | |
210 | prepare | |
211 | pushargi 1 | |
212 | ellipsis | |
213 | finishi 0x80000000 | |
214 | ret | |
215 | retr %r1 | |
216 | reti 2 | |
217 | retval_c %r1 | |
218 | retval_uc %r1 | |
219 | retval_s %r1 | |
220 | retval_us %r1 | |
221 | retval_i %r1 | |
222 | #if __WORDSIZE == 64 | |
223 | retval_ui %r1 | |
224 | retval_l %r1 | |
225 | #endif | |
226 | arg_f $f | |
227 | getarg_f %f1 $f | |
228 | addr_f %f0 %f1 %f2 | |
229 | addi_f %f0 %f1 0.5 | |
230 | subr_f %f0 %f1 %f2 | |
231 | subi_f %f0 %f1 0.5 | |
232 | mulr_f %f0 %f1 %f2 | |
233 | muli_f %f0 %f1 0.5 | |
234 | divr_f %f0 %f1 %f2 | |
235 | divi_f %f0 %f1 0.5 | |
236 | negr_f %f0 %f1 | |
237 | absr_f %f0 %f1 | |
238 | sqrtr_f %f0 %f1 | |
239 | ltr_f %r0 %f0 %f1 | |
240 | lti_f %r0 %f0 0.5 | |
241 | ler_f %r0 %f0 %f1 | |
242 | lei_f %r0 %f0 0.5 | |
243 | eqr_f %r0 %f0 %f1 | |
244 | eqi_f %r0 %f0 0.5 | |
245 | ger_f %r0 %f0 %f1 | |
246 | gei_f %r0 %f0 0.5 | |
247 | gtr_f %r0 %f0 %f1 | |
248 | gti_f %r0 %f0 0.5 | |
249 | ner_f %r0 %f0 %f1 | |
250 | nei_f %r0 %f0 0.5 | |
251 | unltr_f %r0 %f0 %f1 | |
252 | unlti_f %r0 %f0 0.5 | |
253 | unler_f %r0 %f0 %f1 | |
254 | unlei_f %r0 %f0 0.5 | |
255 | uneqr_f %r0 %f0 %f1 | |
256 | uneqi_f %r0 %f0 0.5 | |
257 | unger_f %r0 %f0 %f1 | |
258 | ungei_f %r0 %f0 0.5 | |
259 | ungtr_f %r0 %f0 %f1 | |
260 | ungti_f %r0 %f0 0.5 | |
261 | ltgtr_f %r0 %f0 %f1 | |
262 | ltgti_f %r0 %f0 0.5 | |
263 | ordr_f %r0 %f0 %f1 | |
264 | ordi_f %r0 %f0 0.5 | |
265 | unordr_f %r0 %f0 %f1 | |
266 | unordi_f %r0 %f0 0.5 | |
267 | truncr_f_i %r0 %f0 | |
268 | #if __WORDSIZE == 64 | |
269 | truncr_f_l %r0 %f0 | |
270 | #endif | |
271 | extr_f %f0 %r0 | |
272 | extr_d_f %f0 %f1 | |
273 | movr_f %f0 %f1 | |
274 | movi_f %f0 1.5 | |
275 | ldr_f %f0 %r0 | |
276 | ldi_f %f0 0x80000000 | |
277 | ldxr_f %f0 %r0 %r1 | |
278 | ldxi_f %f0 %r0 4 | |
279 | str_f %r0 %f0 | |
280 | sti_f 0x80000000 %f0 | |
281 | stxr_f %r1 %r0 %f0 | |
282 | stxi_f 4 %r0 %f0 | |
283 | /* FIXME the bordr_d at the end will cause an assertion on riscv due to | |
284 | * too distant jump (does not fit in a 12 bit signed int) */ | |
285 | ord: | |
286 | bltr_f ord %f0 %f1 | |
287 | ordi: | |
288 | blti_f ordi %f0 0.5 | |
289 | bler_f ord %f0 %f1 | |
290 | blei_f ordi %f0 0.5 | |
291 | beqr_f ord %f0 %f1 | |
292 | beqi_f ordi %f0 0.5 | |
293 | bger_f ord %f0 %f1 | |
294 | bgei_f ordi %f0 0.5 | |
295 | bgtr_f ord %f0 %f1 | |
296 | bgti_f ordi %f0 0.5 | |
297 | bner_f ord %f0 %f1 | |
298 | bnei_f ordi %f0 0.5 | |
299 | unord: | |
300 | bunltr_f unord %f0 %f1 | |
301 | unordi: | |
302 | bunlti_f unordi %f0 0.5 | |
303 | bunler_f unord %f0 %f1 | |
304 | bunlei_f unordi %f0 0.5 | |
305 | buneqr_f unord %f0 %f1 | |
306 | buneqi_f unordi %f0 0.5 | |
307 | bunger_f unord %f0 %f1 | |
308 | bungei_f unordi %f0 0.5 | |
309 | bungtr_f unord %f0 %f1 | |
310 | bungti_f unordi %f0 0.5 | |
311 | bltgtr_f unord %f0 %f1 | |
312 | bltgti_f unordi %f0 0.5 | |
313 | bordr_f unord %f0 %f1 | |
314 | bordi_f unordi %f0 0.5 | |
315 | bunordr_f unord %f0 %f1 | |
316 | bunordi_f unordi %f0 0.5 | |
317 | prepare | |
318 | pushargr_f %f1 | |
319 | pushargi_f 0.5 | |
320 | finishi 0x80000000 | |
321 | retr_f %f1 | |
322 | reti_f 0.5 | |
323 | retval_f %f1 | |
324 | arg_d $f | |
325 | getarg_d %f1 $f | |
326 | addr_d %f0 %f1 %f2 | |
327 | addi_d %f0 %f1 0.5 | |
328 | subr_d %f0 %f1 %f2 | |
329 | subi_d %f0 %f1 0.5 | |
330 | mulr_d %f0 %f1 %f2 | |
331 | muli_d %f0 %f1 0.5 | |
332 | divr_d %f0 %f1 %f2 | |
333 | divi_d %f0 %f1 0.5 | |
334 | negr_d %f0 %f1 | |
335 | absr_d %f0 %f1 | |
336 | sqrtr_d %f0 %f1 | |
337 | ltr_d %r0 %f0 %f1 | |
338 | lti_d %r0 %f0 0.5 | |
339 | ler_d %r0 %f0 %f1 | |
340 | lei_d %r0 %f0 0.5 | |
341 | eqr_d %r0 %f0 %f1 | |
342 | eqi_d %r0 %f0 0.5 | |
343 | ger_d %r0 %f0 %f1 | |
344 | gei_d %r0 %f0 0.5 | |
345 | gtr_d %r0 %f0 %f1 | |
346 | gti_d %r0 %f0 0.5 | |
347 | ner_d %r0 %f0 %f1 | |
348 | nei_d %r0 %f0 0.5 | |
349 | unltr_d %r0 %f0 %f1 | |
350 | unlti_d %r0 %f0 0.5 | |
351 | unler_d %r0 %f0 %f1 | |
352 | unlei_d %r0 %f0 0.5 | |
353 | uneqr_d %r0 %f0 %f1 | |
354 | uneqi_d %r0 %f0 0.5 | |
355 | unger_d %r0 %f0 %f1 | |
356 | ungei_d %r0 %f0 0.5 | |
357 | ungtr_d %r0 %f0 %f1 | |
358 | ungti_d %r0 %f0 0.5 | |
359 | ltgtr_d %r0 %f0 %f1 | |
360 | ltgti_d %r0 %f0 0.5 | |
361 | ordr_d %r0 %f0 %f1 | |
362 | ordi_d %r0 %f0 0.5 | |
363 | unordr_d %r0 %f0 %f1 | |
364 | unordi_d %r0 %f0 0.5 | |
365 | truncr_d_i %r0 %f0 | |
366 | #if __WORDSIZE == 64 | |
367 | truncr_d_l %r0 %f0 | |
368 | #endif | |
369 | extr_d %f0 %r0 | |
370 | extr_f_d %f0 %f1 | |
371 | movr_d %f0 %f1 | |
372 | movi_d %f0 1.5 | |
373 | ldr_d %f0 %r0 | |
374 | ldi_d %f0 0x80000000 | |
375 | ldxr_d %f0 %r0 %r1 | |
376 | ldxi_d %f0 %r0 8 | |
377 | str_d %r0 %f0 | |
378 | sti_d 0x80000000 %f0 | |
379 | stxr_d %r1 %r0 %f0 | |
380 | stxi_d 8 %r0 %f0 | |
381 | bltr_d ord %f0 %f1 | |
382 | blti_d ordi %f0 0.5 | |
383 | bler_d ord %f0 %f1 | |
384 | blei_d ordi %f0 0.5 | |
385 | beqr_d ord %f0 %f1 | |
386 | beqi_d ordi %f0 0.5 | |
387 | bger_d ord %f0 %f1 | |
388 | bgei_d ordi %f0 0.5 | |
389 | bgtr_d ord %f0 %f1 | |
390 | bgti_d ordi %f0 0.5 | |
391 | bner_d ord %f0 %f1 | |
392 | bnei_d ordi %f0 0.5 | |
393 | bunltr_d unord %f0 %f1 | |
394 | bunlti_d unordi %f0 0.5 | |
395 | bunler_d unord %f0 %f1 | |
396 | bunlei_d unordi %f0 0.5 | |
397 | buneqr_d unord %f0 %f1 | |
398 | buneqi_d unordi %f0 0.5 | |
399 | bunger_d unord %f0 %f1 | |
400 | bungei_d unordi %f0 0.5 | |
401 | bungtr_d unord %f0 %f1 | |
402 | bungti_d unordi %f0 0.5 | |
403 | bltgtr_d unord %f0 %f1 | |
404 | bltgti_d unordi %f0 0.5 | |
405 | bordr_d unord %f0 %f1 | |
406 | bordi_d unordi %f0 0.5 | |
407 | bunordr_d unord %f0 %f1 | |
408 | bunordi_d unordi %f0 0.5 | |
409 | prepare | |
410 | pushargr_d %f1 | |
411 | pushargi_d 0.5 | |
412 | finishi 0x80000000 | |
413 | retr_d %f1 | |
414 | reti_d 0.5 | |
415 | retval_d %f1 |