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