| 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 |