1 .file 1 "r3000.c" 2 .set nobopt 3 4 # GNU C 2.3.1 [AL 1.1, MM 28] DECstation running ultrix compiled by GNU C 5 6 # Cc1 defaults: 7 8 # Cc1 arguments (-G value = 8, Cpu = default, ISA = 1): 9 # -mgpopt -quiet -dumpbase -O -o 10 11gcc2_compiled.: 12 .text 13 .align 2 14 .globl p_addc 15 .align 2 16 .globl p_subb 17 .align 2 18 .globl p_rotl 19 .align 2 20 .globl p_setp 21 .align 2 22 .globl p_smula 23 .align 2 24 .globl p_setrecip 25 .align 2 26 .globl p_quo_digit 27 28 .lcomm mshift,8 29 30 .lcomm reciph,8 31 32 .lcomm recipl,8 33 34 .extern global_precision, 2 35 36 .text 37 38 .loc 1 99 39 .ent p_addc 40p_addc: 41 .frame $sp,0,$31 # vars= 0, regs= 0/0, args = 0, extra= 0 42 .mask 0x00000000,0 43 .fmask 0x00000000,0 44 lhu $9,global_precision 45 li $2,-1 # 0xffffffff 46 andi $8,$9,0x0003 47 subu $8,$8,1 48 .set noreorder 49 .set nomacro 50 beq $8,$2,$L3 51 andi $6,$6,0x00ff 52 .set macro 53 .set reorder 54 55 li $10,-1 # 0xffffffff 56$L6: 57 beq $6,$0,$L4 58 lw $3,0($4) 59 lw $2,0($5) 60 #nop 61 addu $7,$3,$2 62 addu $7,$7,1 63 nor $3,$0,$3 64 sltu $2,$2,$3 65 .set noreorder 66 .set nomacro 67 j $L5 68 xori $6,$2,0x0001 69 .set macro 70 .set reorder 71 72$L4: 73 lw $3,0($4) 74 lw $2,0($5) 75 #nop 76 addu $7,$3,$2 77 sltu $6,$7,$3 78$L5: 79 addu $5,$5,4 80 sw $7,0($4) 81 subu $8,$8,1 82 .set noreorder 83 .set nomacro 84 bne $8,$10,$L6 85 addu $4,$4,4 86 .set macro 87 .set reorder 88 89$L3: 90 sll $2,$9,16 91 sra $8,$2,18 92 subu $8,$8,1 93 li $2,-1 # 0xffffffff 94 beq $8,$2,$L8 95 li $9,-1 # 0xffffffff 96$L17: 97 beq $6,$0,$L9 98 lw $3,0($4) 99 lw $2,0($5) 100 #nop 101 addu $7,$3,$2 102 addu $7,$7,1 103 nor $3,$0,$3 104 sltu $2,$2,$3 105 .set noreorder 106 .set nomacro 107 j $L10 108 xori $6,$2,0x0001 109 .set macro 110 .set reorder 111 112$L9: 113 lw $3,0($4) 114 lw $2,0($5) 115 #nop 116 addu $7,$3,$2 117 sltu $6,$7,$3 118$L10: 119 .set noreorder 120 .set nomacro 121 beq $6,$0,$L11 122 sw $7,0($4) 123 .set macro 124 .set reorder 125 126 lw $3,4($4) 127 lw $2,4($5) 128 #nop 129 addu $7,$3,$2 130 addu $7,$7,1 131 nor $3,$0,$3 132 sltu $2,$2,$3 133 .set noreorder 134 .set nomacro 135 j $L12 136 xori $6,$2,0x0001 137 .set macro 138 .set reorder 139 140$L11: 141 lw $3,4($4) 142 lw $2,4($5) 143 #nop 144 addu $7,$3,$2 145 sltu $6,$7,$3 146$L12: 147 .set noreorder 148 .set nomacro 149 beq $6,$0,$L13 150 sw $7,4($4) 151 .set macro 152 .set reorder 153 154 lw $3,8($4) 155 lw $2,8($5) 156 #nop 157 addu $7,$3,$2 158 addu $7,$7,1 159 nor $3,$0,$3 160 sltu $2,$2,$3 161 .set noreorder 162 .set nomacro 163 j $L14 164 xori $6,$2,0x0001 165 .set macro 166 .set reorder 167 168$L13: 169 lw $3,8($4) 170 lw $2,8($5) 171 #nop 172 addu $7,$3,$2 173 sltu $6,$7,$3 174$L14: 175 .set noreorder 176 .set nomacro 177 beq $6,$0,$L15 178 sw $7,8($4) 179 .set macro 180 .set reorder 181 182 lw $3,12($4) 183 lw $2,12($5) 184 #nop 185 addu $7,$3,$2 186 addu $7,$7,1 187 nor $3,$0,$3 188 sltu $2,$2,$3 189 .set noreorder 190 .set nomacro 191 j $L16 192 xori $6,$2,0x0001 193 .set macro 194 .set reorder 195 196$L15: 197 lw $3,12($4) 198 lw $2,12($5) 199 #nop 200 addu $7,$3,$2 201 sltu $6,$7,$3 202$L16: 203 sw $7,12($4) 204 addu $4,$4,16 205 subu $8,$8,1 206 .set noreorder 207 .set nomacro 208 bne $8,$9,$L17 209 addu $5,$5,16 210 .set macro 211 .set reorder 212 213$L8: 214 .set noreorder 215 .set nomacro 216 j $31 217 andi $2,$6,0x00ff 218 .set macro 219 .set reorder 220 221 .end p_addc 222 223 .loc 1 153 224 .ent p_subb 225p_subb: 226 .frame $sp,0,$31 # vars= 0, regs= 0/0, args = 0, extra= 0 227 .mask 0x00000000,0 228 .fmask 0x00000000,0 229 move $8,$4 230 lhu $10,global_precision 231 li $2,-1 # 0xffffffff 232 andi $9,$10,0x0003 233 subu $9,$9,1 234 .set noreorder 235 .set nomacro 236 beq $9,$2,$L20 237 andi $6,$6,0x00ff 238 .set macro 239 .set reorder 240 241 li $11,-1 # 0xffffffff 242$L23: 243 beq $6,$0,$L21 244 lw $4,0($8) 245 lw $3,0($5) 246 #nop 247 subu $2,$4,$3 248 subu $7,$2,$6 249 sltu $3,$3,$4 250 .set noreorder 251 .set nomacro 252 j $L22 253 xori $6,$3,0x0001 254 .set macro 255 .set reorder 256 257$L21: 258 lw $3,0($8) 259 lw $2,0($5) 260 #nop 261 subu $7,$3,$2 262 sltu $6,$3,$2 263$L22: 264 addu $5,$5,4 265 sw $7,0($8) 266 subu $9,$9,1 267 .set noreorder 268 .set nomacro 269 bne $9,$11,$L23 270 addu $8,$8,4 271 .set macro 272 .set reorder 273 274$L20: 275 sll $2,$10,16 276 sra $9,$2,18 277 subu $9,$9,1 278 li $2,-1 # 0xffffffff 279 beq $9,$2,$L25 280 li $10,-1 # 0xffffffff 281$L34: 282 beq $6,$0,$L26 283 lw $4,0($8) 284 lw $3,0($5) 285 #nop 286 subu $2,$4,$3 287 subu $7,$2,$6 288 sltu $3,$3,$4 289 .set noreorder 290 .set nomacro 291 j $L27 292 xori $6,$3,0x0001 293 .set macro 294 .set reorder 295 296$L26: 297 lw $3,0($8) 298 lw $2,0($5) 299 #nop 300 subu $7,$3,$2 301 sltu $6,$3,$2 302$L27: 303 .set noreorder 304 .set nomacro 305 beq $6,$0,$L28 306 sw $7,0($8) 307 .set macro 308 .set reorder 309 310 lw $4,4($8) 311 lw $3,4($5) 312 #nop 313 subu $2,$4,$3 314 subu $7,$2,$6 315 sltu $3,$3,$4 316 .set noreorder 317 .set nomacro 318 j $L29 319 xori $6,$3,0x0001 320 .set macro 321 .set reorder 322 323$L28: 324 lw $3,4($8) 325 lw $2,4($5) 326 #nop 327 subu $7,$3,$2 328 sltu $6,$3,$2 329$L29: 330 .set noreorder 331 .set nomacro 332 beq $6,$0,$L30 333 sw $7,4($8) 334 .set macro 335 .set reorder 336 337 lw $4,8($8) 338 lw $3,8($5) 339 #nop 340 subu $2,$4,$3 341 subu $7,$2,$6 342 sltu $3,$3,$4 343 .set noreorder 344 .set nomacro 345 j $L31 346 xori $6,$3,0x0001 347 .set macro 348 .set reorder 349 350$L30: 351 lw $3,8($8) 352 lw $2,8($5) 353 #nop 354 subu $7,$3,$2 355 sltu $6,$3,$2 356$L31: 357 .set noreorder 358 .set nomacro 359 beq $6,$0,$L32 360 sw $7,8($8) 361 .set macro 362 .set reorder 363 364 lw $4,12($8) 365 lw $3,12($5) 366 #nop 367 subu $2,$4,$3 368 subu $7,$2,$6 369 sltu $3,$3,$4 370 .set noreorder 371 .set nomacro 372 j $L33 373 xori $6,$3,0x0001 374 .set macro 375 .set reorder 376 377$L32: 378 lw $3,12($8) 379 lw $2,12($5) 380 #nop 381 subu $7,$3,$2 382 sltu $6,$3,$2 383$L33: 384 sw $7,12($8) 385 addu $8,$8,16 386 subu $9,$9,1 387 .set noreorder 388 .set nomacro 389 bne $9,$10,$L34 390 addu $5,$5,16 391 .set macro 392 .set reorder 393 394$L25: 395 .set noreorder 396 .set nomacro 397 j $31 398 andi $2,$6,0x00ff 399 .set macro 400 .set reorder 401 402 .end p_subb 403 404 .loc 1 211 405 .ent p_rotl 406p_rotl: 407 .frame $sp,0,$31 # vars= 0, regs= 0/0, args = 0, extra= 0 408 .mask 0x00000000,0 409 .fmask 0x00000000,0 410 move $6,$4 411 lh $4,global_precision 412 li $2,-1 # 0xffffffff 413 andi $7,$4,0x0003 414 subu $7,$7,1 415 .set noreorder 416 .set nomacro 417 beq $7,$2,$L37 418 andi $5,$5,0x00ff 419 .set macro 420 .set reorder 421 422 li $8,-1 # 0xffffffff 423$L38: 424 lw $3,0($6) 425 subu $7,$7,1 426 sll $2,$3,1 427 or $2,$2,$5 428 sw $2,0($6) 429 srl $5,$3,31 430 .set noreorder 431 .set nomacro 432 bne $7,$8,$L38 433 addu $6,$6,4 434 .set macro 435 .set reorder 436 437$L37: 438 sra $7,$4,2 439 subu $7,$7,1 440 li $2,-1 # 0xffffffff 441 beq $7,$2,$L40 442 li $8,-1 # 0xffffffff 443$L41: 444 lw $2,0($6) 445 #nop 446 srl $3,$2,31 447 sll $2,$2,1 448 or $2,$2,$5 449 sw $2,0($6) 450 lw $2,4($6) 451 #nop 452 srl $4,$2,31 453 sll $2,$2,1 454 or $2,$2,$3 455 sw $2,4($6) 456 lw $2,8($6) 457 #nop 458 srl $3,$2,31 459 sll $2,$2,1 460 or $2,$2,$4 461 sw $2,8($6) 462 lw $2,12($6) 463 subu $7,$7,1 464 srl $5,$2,31 465 sll $2,$2,1 466 or $2,$2,$3 467 sw $2,12($6) 468 .set noreorder 469 .set nomacro 470 bne $7,$8,$L41 471 addu $6,$6,16 472 .set macro 473 .set reorder 474 475$L40: 476 .set noreorder 477 .set nomacro 478 j $31 479 andi $2,$5,0x00ff 480 .set macro 481 .set reorder 482 483 .end p_rotl 484 485 .loc 1 244 486 .ent p_setp 487p_setp: 488 .frame $sp,0,$31 # vars= 0, regs= 0/0, args = 0, extra= 0 489 .mask 0x00000000,0 490 .fmask 0x00000000,0 491 j $31 492 .end p_setp 493 494 .loc 1 268 495 .ent p_smula 496p_smula: 497 .frame $sp,8,$31 # vars= 8, regs= 0/0, args = 0, extra= 0 498 .mask 0x00000000,0 499 .fmask 0x00000000,0 500 subu $sp,$sp,8 501 lh $2,global_precision 502 move $11,$4 503 move $10,$5 504 .set noreorder 505 .set nomacro 506 blez $2,$L43 507 move $13,$2 508 .set macro 509 .set reorder 510 511 lw $14,0($10) 512 #APP 513 multu $6, $14 514 mflo $9 515 mfhi $12 516 #NO_APP 517 addu $10,$10,4 518 move $7,$0 519 .set noreorder 520 .set nomacro 521 j $L48 522 move $8,$0 523 .set macro 524 .set reorder 525 526$L47: 527 lw $14,0($10) 528 #APP 529 multu $6, $14 530 mflo $4 531 mfhi $5 532 #NO_APP 533 lw $2,0($11) 534 addu $10,$10,4 535 addu $8,$8,$12 536 addu $7,$7,$2 537 sltu $3,$7,$2 538 addu $7,$7,$9 539 sltu $2,$7,$9 540 addu $3,$3,$2 541 sltu $2,$8,$12 542 addu $8,$8,$3 543 sltu $3,$8,$3 544 sw $7,0($11) 545 addu $11,$11,4 546 move $7,$8 547 addu $8,$2,$3 548 move $9,$4 549 move $12,$5 550$L48: 551 subu $2,$13,1 552 move $13,$2 553 sll $2,$2,16 554 bne $2,$0,$L47 555 lw $2,0($11) 556 #nop 557 addu $7,$7,$2 558 sltu $3,$7,$2 559 addu $7,$7,$9 560 sltu $2,$7,$9 561 addu $3,$3,$2 562 sw $7,0($11) 563 addu $11,$11,4 564 lw $2,0($11) 565 addu $8,$8,$12 566 addu $8,$8,$3 567 addu $2,$8,$2 568 sw $2,0($11) 569$L43: 570 addu $sp,$sp,8 571 j $31 572 .end p_smula 573 574 .loc 1 334 575 .ent p_setrecip 576p_setrecip: 577 .frame $sp,0,$31 # vars= 0, regs= 0/0, args = 0, extra= 0 578 .mask 0x00000000,0 579 .fmask 0x00000000,0 580 sw $4,reciph 581 sw $5,recipl 582 sw $6,mshift 583 j $31 584 .end p_setrecip 585 586 .loc 1 342 587 .ent p_quo_digit 588p_quo_digit: 589 .frame $sp,0,$31 # vars= 0, regs= 0/0, args = 0, extra= 0 590 .mask 0x00000000,0 591 .fmask 0x00000000,0 592 move $9,$4 593 lw $2,-8($9) 594 lw $10,reciph 595 lw $5,-4($9) 596 nor $2,$0,$2 597 #APP 598 multu $2, $10 599 mflo $6 600 mfhi $7 601 #NO_APP 602 nor $5,$0,$5 603 lw $10,recipl 604 #APP 605 multu $5, $10 606 mflo $4 607 mfhi $3 608 #NO_APP 609 addu $3,$3,1 610 lw $2,reciph 611 srl $4,$4,1 612 lw $10,reciph 613 addu $6,$6,$2 614 sltu $2,$6,$2 615 addu $7,$7,$2 616 srl $6,$6,1 617 sll $2,$7,31 618 addu $6,$6,$2 619 srl $7,$7,1 620 sll $2,$3,31 621 addu $4,$4,$2 622 srl $3,$3,1 623 addu $2,$6,$4 624 addu $3,$7,$3 625 sltu $4,$2,$6 626 addu $4,$4,$3 627 addu $2,$2,1 628 sltu $2,$2,1 629 addu $4,$4,$2 630 #APP 631 multu $5, $10 632 mflo $3 633 mfhi $7 634 #NO_APP 635 srl $3,$3,1 636 addu $4,$4,1 637 lw $2,0($9) 638 sltu $5,$4,1 639 lw $10,recipl 640 nor $2,$0,$2 641 #APP 642 multu $2, $10 643 mflo $6 644 mfhi $8 645 #NO_APP 646 sll $2,$7,31 647 addu $3,$3,$2 648 srl $7,$7,1 649 srl $6,$6,1 650 sll $2,$8,31 651 addu $6,$6,$2 652 addu $4,$4,$3 653 sltu $2,$4,$3 654 .set noreorder 655 .set nomacro 656 beq $2,$0,$L51 657 srl $8,$8,1 658 .set macro 659 .set reorder 660 661 addu $5,$5,1 662$L51: 663 addu $4,$4,$6 664 sltu $2,$4,$6 665 .set noreorder 666 .set nomacro 667 beq $2,$0,$L53 668 addu $5,$5,$7 669 .set macro 670 .set reorder 671 672 addu $5,$5,1 673$L53: 674 addu $5,$5,$8 675 lw $2,0($9) 676 srl $4,$4,30 677 lw $10,reciph 678 nor $2,$0,$2 679 #APP 680 multu $2, $10 681 mflo $6 682 mfhi $7 683 #NO_APP 684 sll $7,$7,1 685 srl $2,$6,31 686 addu $7,$7,$2 687 sll $6,$6,1 688 sll $2,$5,2 689 addu $4,$4,$2 690 addu $4,$4,$6 691 sltu $2,$4,$6 692 .set noreorder 693 .set nomacro 694 beq $2,$0,$L55 695 srl $5,$5,30 696 .set macro 697 .set reorder 698 699 addu $5,$5,1 700$L55: 701 lw $3,mshift 702 li $2,0x00000020 # 32 703 .set noreorder 704 .set nomacro 705 beq $3,$2,$L57 706 addu $5,$5,$7 707 .set macro 708 .set reorder 709 710 srl $4,$4,$3 711 subu $2,$2,$3 712 sll $2,$5,$2 713 addu $4,$4,$2 714 .set noreorder 715 .set nomacro 716 j $L58 717 srl $5,$5,$3 718 .set macro 719 .set reorder 720 721$L57: 722 move $4,$5 723 move $5,$0 724$L58: 725 .set noreorder 726 .set nomacro 727 bne $5,$0,$L59 728 li $2,-1 # 0xffffffff 729 .set macro 730 .set reorder 731 732 move $2,$4 733$L59: 734 j $31 735 .end p_quo_digit 736