1#ifdef OPENSSL_FIPSCANISTER 2# include <openssl/fipssyms.h> 3#endif 4 5#if defined(__mips_smartmips) && !defined(_MIPS_ARCH_MIPS32R2) 6#define _MIPS_ARCH_MIPS32R2 7#endif 8 9.text 10 11.set noat 12.set noreorder 13.align 5 14.globl sha1_block_data_order 15.ent sha1_block_data_order 16sha1_block_data_order: 17 .frame $29,16*4,$31 18 .mask 0xc0ff0000,-4 19 .set noreorder 20 sub $29,16*4 21 sw $31,(16-1)*4($29) 22 sw $30,(16-2)*4($29) 23 sw $23,(16-3)*4($29) 24 sw $22,(16-4)*4($29) 25 sw $21,(16-5)*4($29) 26 sw $20,(16-6)*4($29) 27 sw $19,(16-7)*4($29) 28 sw $18,(16-8)*4($29) 29 sw $17,(16-9)*4($29) 30 sw $16,(16-10)*4($29) 31 sll $6,6 32 add $6,$5 33 sw $6,0($29) 34 lw $1,0($4) 35 lw $2,4($4) 36 lw $3,8($4) 37 lw $7,12($4) 38 b .Loop 39 lw $24,16($4) 40.align 4 41.Loop: 42 .set reorder 43 lwl $8,3($5) 44 lui $31,0x5a82 45 lwr $8,0($5) 46 ori $31,0x7999 # K_00_19 47#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 48 wsbh $8,$8 # byte swap(0) 49 rotr $8,$8,16 50#else 51 srl $25,$8,24 # byte swap(0) 52 srl $6,$8,8 53 andi $30,$8,0xFF00 54 sll $8,$8,24 55 andi $6,0xFF00 56 sll $30,$30,8 57 or $8,$25 58 or $6,$30 59 or $8,$6 60#endif 61#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 62 addu $24,$31 # 0 63 xor $25,$3,$7 64 rotr $6,$1,27 65 lwl $9,1*4+3($5) 66 and $25,$2 67 addu $24,$6 68 lwr $9,1*4+0($5) 69 xor $25,$7 70 addu $24,$8 71 rotr $2,$2,2 72 addu $24,$25 73#else 74 lwl $9,1*4+3($5) 75 sll $25,$1,5 # 0 76 addu $24,$31 77 lwr $9,1*4+0($5) 78 srl $6,$1,27 79 addu $24,$25 80 xor $25,$3,$7 81 addu $24,$6 82 sll $30,$2,30 83 and $25,$2 84 srl $2,$2,2 85 xor $25,$7 86 addu $24,$8 87 or $2,$30 88 addu $24,$25 89#endif 90#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 91 wsbh $9,$9 # byte swap(1) 92 rotr $9,$9,16 93#else 94 srl $25,$9,24 # byte swap(1) 95 srl $6,$9,8 96 andi $30,$9,0xFF00 97 sll $9,$9,24 98 andi $6,0xFF00 99 sll $30,$30,8 100 or $9,$25 101 or $6,$30 102 or $9,$6 103#endif 104#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 105 addu $7,$31 # 1 106 xor $25,$2,$3 107 rotr $6,$24,27 108 lwl $10,2*4+3($5) 109 and $25,$1 110 addu $7,$6 111 lwr $10,2*4+0($5) 112 xor $25,$3 113 addu $7,$9 114 rotr $1,$1,2 115 addu $7,$25 116#else 117 lwl $10,2*4+3($5) 118 sll $25,$24,5 # 1 119 addu $7,$31 120 lwr $10,2*4+0($5) 121 srl $6,$24,27 122 addu $7,$25 123 xor $25,$2,$3 124 addu $7,$6 125 sll $30,$1,30 126 and $25,$1 127 srl $1,$1,2 128 xor $25,$3 129 addu $7,$9 130 or $1,$30 131 addu $7,$25 132#endif 133#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 134 wsbh $10,$10 # byte swap(2) 135 rotr $10,$10,16 136#else 137 srl $25,$10,24 # byte swap(2) 138 srl $6,$10,8 139 andi $30,$10,0xFF00 140 sll $10,$10,24 141 andi $6,0xFF00 142 sll $30,$30,8 143 or $10,$25 144 or $6,$30 145 or $10,$6 146#endif 147#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 148 addu $3,$31 # 2 149 xor $25,$1,$2 150 rotr $6,$7,27 151 lwl $11,3*4+3($5) 152 and $25,$24 153 addu $3,$6 154 lwr $11,3*4+0($5) 155 xor $25,$2 156 addu $3,$10 157 rotr $24,$24,2 158 addu $3,$25 159#else 160 lwl $11,3*4+3($5) 161 sll $25,$7,5 # 2 162 addu $3,$31 163 lwr $11,3*4+0($5) 164 srl $6,$7,27 165 addu $3,$25 166 xor $25,$1,$2 167 addu $3,$6 168 sll $30,$24,30 169 and $25,$24 170 srl $24,$24,2 171 xor $25,$2 172 addu $3,$10 173 or $24,$30 174 addu $3,$25 175#endif 176#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 177 wsbh $11,$11 # byte swap(3) 178 rotr $11,$11,16 179#else 180 srl $25,$11,24 # byte swap(3) 181 srl $6,$11,8 182 andi $30,$11,0xFF00 183 sll $11,$11,24 184 andi $6,0xFF00 185 sll $30,$30,8 186 or $11,$25 187 or $6,$30 188 or $11,$6 189#endif 190#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 191 addu $2,$31 # 3 192 xor $25,$24,$1 193 rotr $6,$3,27 194 lwl $12,4*4+3($5) 195 and $25,$7 196 addu $2,$6 197 lwr $12,4*4+0($5) 198 xor $25,$1 199 addu $2,$11 200 rotr $7,$7,2 201 addu $2,$25 202#else 203 lwl $12,4*4+3($5) 204 sll $25,$3,5 # 3 205 addu $2,$31 206 lwr $12,4*4+0($5) 207 srl $6,$3,27 208 addu $2,$25 209 xor $25,$24,$1 210 addu $2,$6 211 sll $30,$7,30 212 and $25,$7 213 srl $7,$7,2 214 xor $25,$1 215 addu $2,$11 216 or $7,$30 217 addu $2,$25 218#endif 219#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 220 wsbh $12,$12 # byte swap(4) 221 rotr $12,$12,16 222#else 223 srl $25,$12,24 # byte swap(4) 224 srl $6,$12,8 225 andi $30,$12,0xFF00 226 sll $12,$12,24 227 andi $6,0xFF00 228 sll $30,$30,8 229 or $12,$25 230 or $6,$30 231 or $12,$6 232#endif 233#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 234 addu $1,$31 # 4 235 xor $25,$7,$24 236 rotr $6,$2,27 237 lwl $13,5*4+3($5) 238 and $25,$3 239 addu $1,$6 240 lwr $13,5*4+0($5) 241 xor $25,$24 242 addu $1,$12 243 rotr $3,$3,2 244 addu $1,$25 245#else 246 lwl $13,5*4+3($5) 247 sll $25,$2,5 # 4 248 addu $1,$31 249 lwr $13,5*4+0($5) 250 srl $6,$2,27 251 addu $1,$25 252 xor $25,$7,$24 253 addu $1,$6 254 sll $30,$3,30 255 and $25,$3 256 srl $3,$3,2 257 xor $25,$24 258 addu $1,$12 259 or $3,$30 260 addu $1,$25 261#endif 262#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 263 wsbh $13,$13 # byte swap(5) 264 rotr $13,$13,16 265#else 266 srl $25,$13,24 # byte swap(5) 267 srl $6,$13,8 268 andi $30,$13,0xFF00 269 sll $13,$13,24 270 andi $6,0xFF00 271 sll $30,$30,8 272 or $13,$25 273 or $6,$30 274 or $13,$6 275#endif 276#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 277 addu $24,$31 # 5 278 xor $25,$3,$7 279 rotr $6,$1,27 280 lwl $14,6*4+3($5) 281 and $25,$2 282 addu $24,$6 283 lwr $14,6*4+0($5) 284 xor $25,$7 285 addu $24,$13 286 rotr $2,$2,2 287 addu $24,$25 288#else 289 lwl $14,6*4+3($5) 290 sll $25,$1,5 # 5 291 addu $24,$31 292 lwr $14,6*4+0($5) 293 srl $6,$1,27 294 addu $24,$25 295 xor $25,$3,$7 296 addu $24,$6 297 sll $30,$2,30 298 and $25,$2 299 srl $2,$2,2 300 xor $25,$7 301 addu $24,$13 302 or $2,$30 303 addu $24,$25 304#endif 305#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 306 wsbh $14,$14 # byte swap(6) 307 rotr $14,$14,16 308#else 309 srl $25,$14,24 # byte swap(6) 310 srl $6,$14,8 311 andi $30,$14,0xFF00 312 sll $14,$14,24 313 andi $6,0xFF00 314 sll $30,$30,8 315 or $14,$25 316 or $6,$30 317 or $14,$6 318#endif 319#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 320 addu $7,$31 # 6 321 xor $25,$2,$3 322 rotr $6,$24,27 323 lwl $15,7*4+3($5) 324 and $25,$1 325 addu $7,$6 326 lwr $15,7*4+0($5) 327 xor $25,$3 328 addu $7,$14 329 rotr $1,$1,2 330 addu $7,$25 331#else 332 lwl $15,7*4+3($5) 333 sll $25,$24,5 # 6 334 addu $7,$31 335 lwr $15,7*4+0($5) 336 srl $6,$24,27 337 addu $7,$25 338 xor $25,$2,$3 339 addu $7,$6 340 sll $30,$1,30 341 and $25,$1 342 srl $1,$1,2 343 xor $25,$3 344 addu $7,$14 345 or $1,$30 346 addu $7,$25 347#endif 348#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 349 wsbh $15,$15 # byte swap(7) 350 rotr $15,$15,16 351#else 352 srl $25,$15,24 # byte swap(7) 353 srl $6,$15,8 354 andi $30,$15,0xFF00 355 sll $15,$15,24 356 andi $6,0xFF00 357 sll $30,$30,8 358 or $15,$25 359 or $6,$30 360 or $15,$6 361#endif 362#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 363 addu $3,$31 # 7 364 xor $25,$1,$2 365 rotr $6,$7,27 366 lwl $16,8*4+3($5) 367 and $25,$24 368 addu $3,$6 369 lwr $16,8*4+0($5) 370 xor $25,$2 371 addu $3,$15 372 rotr $24,$24,2 373 addu $3,$25 374#else 375 lwl $16,8*4+3($5) 376 sll $25,$7,5 # 7 377 addu $3,$31 378 lwr $16,8*4+0($5) 379 srl $6,$7,27 380 addu $3,$25 381 xor $25,$1,$2 382 addu $3,$6 383 sll $30,$24,30 384 and $25,$24 385 srl $24,$24,2 386 xor $25,$2 387 addu $3,$15 388 or $24,$30 389 addu $3,$25 390#endif 391#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 392 wsbh $16,$16 # byte swap(8) 393 rotr $16,$16,16 394#else 395 srl $25,$16,24 # byte swap(8) 396 srl $6,$16,8 397 andi $30,$16,0xFF00 398 sll $16,$16,24 399 andi $6,0xFF00 400 sll $30,$30,8 401 or $16,$25 402 or $6,$30 403 or $16,$6 404#endif 405#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 406 addu $2,$31 # 8 407 xor $25,$24,$1 408 rotr $6,$3,27 409 lwl $17,9*4+3($5) 410 and $25,$7 411 addu $2,$6 412 lwr $17,9*4+0($5) 413 xor $25,$1 414 addu $2,$16 415 rotr $7,$7,2 416 addu $2,$25 417#else 418 lwl $17,9*4+3($5) 419 sll $25,$3,5 # 8 420 addu $2,$31 421 lwr $17,9*4+0($5) 422 srl $6,$3,27 423 addu $2,$25 424 xor $25,$24,$1 425 addu $2,$6 426 sll $30,$7,30 427 and $25,$7 428 srl $7,$7,2 429 xor $25,$1 430 addu $2,$16 431 or $7,$30 432 addu $2,$25 433#endif 434#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 435 wsbh $17,$17 # byte swap(9) 436 rotr $17,$17,16 437#else 438 srl $25,$17,24 # byte swap(9) 439 srl $6,$17,8 440 andi $30,$17,0xFF00 441 sll $17,$17,24 442 andi $6,0xFF00 443 sll $30,$30,8 444 or $17,$25 445 or $6,$30 446 or $17,$6 447#endif 448#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 449 addu $1,$31 # 9 450 xor $25,$7,$24 451 rotr $6,$2,27 452 lwl $18,10*4+3($5) 453 and $25,$3 454 addu $1,$6 455 lwr $18,10*4+0($5) 456 xor $25,$24 457 addu $1,$17 458 rotr $3,$3,2 459 addu $1,$25 460#else 461 lwl $18,10*4+3($5) 462 sll $25,$2,5 # 9 463 addu $1,$31 464 lwr $18,10*4+0($5) 465 srl $6,$2,27 466 addu $1,$25 467 xor $25,$7,$24 468 addu $1,$6 469 sll $30,$3,30 470 and $25,$3 471 srl $3,$3,2 472 xor $25,$24 473 addu $1,$17 474 or $3,$30 475 addu $1,$25 476#endif 477#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 478 wsbh $18,$18 # byte swap(10) 479 rotr $18,$18,16 480#else 481 srl $25,$18,24 # byte swap(10) 482 srl $6,$18,8 483 andi $30,$18,0xFF00 484 sll $18,$18,24 485 andi $6,0xFF00 486 sll $30,$30,8 487 or $18,$25 488 or $6,$30 489 or $18,$6 490#endif 491#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 492 addu $24,$31 # 10 493 xor $25,$3,$7 494 rotr $6,$1,27 495 lwl $19,11*4+3($5) 496 and $25,$2 497 addu $24,$6 498 lwr $19,11*4+0($5) 499 xor $25,$7 500 addu $24,$18 501 rotr $2,$2,2 502 addu $24,$25 503#else 504 lwl $19,11*4+3($5) 505 sll $25,$1,5 # 10 506 addu $24,$31 507 lwr $19,11*4+0($5) 508 srl $6,$1,27 509 addu $24,$25 510 xor $25,$3,$7 511 addu $24,$6 512 sll $30,$2,30 513 and $25,$2 514 srl $2,$2,2 515 xor $25,$7 516 addu $24,$18 517 or $2,$30 518 addu $24,$25 519#endif 520#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 521 wsbh $19,$19 # byte swap(11) 522 rotr $19,$19,16 523#else 524 srl $25,$19,24 # byte swap(11) 525 srl $6,$19,8 526 andi $30,$19,0xFF00 527 sll $19,$19,24 528 andi $6,0xFF00 529 sll $30,$30,8 530 or $19,$25 531 or $6,$30 532 or $19,$6 533#endif 534#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 535 addu $7,$31 # 11 536 xor $25,$2,$3 537 rotr $6,$24,27 538 lwl $20,12*4+3($5) 539 and $25,$1 540 addu $7,$6 541 lwr $20,12*4+0($5) 542 xor $25,$3 543 addu $7,$19 544 rotr $1,$1,2 545 addu $7,$25 546#else 547 lwl $20,12*4+3($5) 548 sll $25,$24,5 # 11 549 addu $7,$31 550 lwr $20,12*4+0($5) 551 srl $6,$24,27 552 addu $7,$25 553 xor $25,$2,$3 554 addu $7,$6 555 sll $30,$1,30 556 and $25,$1 557 srl $1,$1,2 558 xor $25,$3 559 addu $7,$19 560 or $1,$30 561 addu $7,$25 562#endif 563#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 564 wsbh $20,$20 # byte swap(12) 565 rotr $20,$20,16 566#else 567 srl $25,$20,24 # byte swap(12) 568 srl $6,$20,8 569 andi $30,$20,0xFF00 570 sll $20,$20,24 571 andi $6,0xFF00 572 sll $30,$30,8 573 or $20,$25 574 or $6,$30 575 or $20,$6 576#endif 577#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 578 addu $3,$31 # 12 579 xor $25,$1,$2 580 rotr $6,$7,27 581 lwl $21,13*4+3($5) 582 and $25,$24 583 addu $3,$6 584 lwr $21,13*4+0($5) 585 xor $25,$2 586 addu $3,$20 587 rotr $24,$24,2 588 addu $3,$25 589#else 590 lwl $21,13*4+3($5) 591 sll $25,$7,5 # 12 592 addu $3,$31 593 lwr $21,13*4+0($5) 594 srl $6,$7,27 595 addu $3,$25 596 xor $25,$1,$2 597 addu $3,$6 598 sll $30,$24,30 599 and $25,$24 600 srl $24,$24,2 601 xor $25,$2 602 addu $3,$20 603 or $24,$30 604 addu $3,$25 605#endif 606#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 607 wsbh $21,$21 # byte swap(13) 608 rotr $21,$21,16 609#else 610 srl $25,$21,24 # byte swap(13) 611 srl $6,$21,8 612 andi $30,$21,0xFF00 613 sll $21,$21,24 614 andi $6,0xFF00 615 sll $30,$30,8 616 or $21,$25 617 or $6,$30 618 or $21,$6 619#endif 620#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 621 addu $2,$31 # 13 622 xor $25,$24,$1 623 rotr $6,$3,27 624 lwl $22,14*4+3($5) 625 and $25,$7 626 addu $2,$6 627 lwr $22,14*4+0($5) 628 xor $25,$1 629 addu $2,$21 630 rotr $7,$7,2 631 addu $2,$25 632#else 633 lwl $22,14*4+3($5) 634 sll $25,$3,5 # 13 635 addu $2,$31 636 lwr $22,14*4+0($5) 637 srl $6,$3,27 638 addu $2,$25 639 xor $25,$24,$1 640 addu $2,$6 641 sll $30,$7,30 642 and $25,$7 643 srl $7,$7,2 644 xor $25,$1 645 addu $2,$21 646 or $7,$30 647 addu $2,$25 648#endif 649#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 650 wsbh $22,$22 # byte swap(14) 651 rotr $22,$22,16 652#else 653 srl $25,$22,24 # byte swap(14) 654 srl $6,$22,8 655 andi $30,$22,0xFF00 656 sll $22,$22,24 657 andi $6,0xFF00 658 sll $30,$30,8 659 or $22,$25 660 or $6,$30 661 or $22,$6 662#endif 663#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 664 addu $1,$31 # 14 665 xor $25,$7,$24 666 rotr $6,$2,27 667 lwl $23,15*4+3($5) 668 and $25,$3 669 addu $1,$6 670 lwr $23,15*4+0($5) 671 xor $25,$24 672 addu $1,$22 673 rotr $3,$3,2 674 addu $1,$25 675#else 676 lwl $23,15*4+3($5) 677 sll $25,$2,5 # 14 678 addu $1,$31 679 lwr $23,15*4+0($5) 680 srl $6,$2,27 681 addu $1,$25 682 xor $25,$7,$24 683 addu $1,$6 684 sll $30,$3,30 685 and $25,$3 686 srl $3,$3,2 687 xor $25,$24 688 addu $1,$22 689 or $3,$30 690 addu $1,$25 691#endif 692#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 693 wsbh $23,$23 # byte swap(15) 694 rotr $23,$23,16 695#else 696 srl $25,$23,24 # byte swap(15) 697 srl $6,$23,8 698 andi $30,$23,0xFF00 699 sll $23,$23,24 700 andi $6,0xFF00 701 sll $30,$30,8 702 or $23,$25 703 or $23,$6 704 or $23,$30 705#endif 706#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 707 addu $24,$31 # 15 708 xor $8,$10 709 xor $25,$3,$7 710 rotr $6,$1,27 711 xor $8,$16 712 and $25,$2 713 addu $24,$6 714 xor $8,$21 715 xor $25,$7 716 addu $24,$23 717 rotr $8,$8,31 718 rotr $2,$2,2 719 addu $24,$25 720#else 721 xor $8,$10 722 sll $25,$1,5 # 15 723 addu $24,$31 724 srl $6,$1,27 725 addu $24,$25 726 xor $8,$16 727 xor $25,$3,$7 728 addu $24,$6 729 xor $8,$21 730 sll $30,$2,30 731 and $25,$2 732 srl $6,$8,31 733 addu $8,$8 734 srl $2,$2,2 735 xor $25,$7 736 or $8,$6 737 addu $24,$23 738 or $2,$30 739 addu $24,$25 740#endif 741#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 742 addu $7,$31 # 16 743 xor $9,$11 744 xor $25,$2,$3 745 rotr $6,$24,27 746 xor $9,$17 747 and $25,$1 748 addu $7,$6 749 xor $9,$22 750 xor $25,$3 751 addu $7,$8 752 rotr $9,$9,31 753 rotr $1,$1,2 754 addu $7,$25 755#else 756 xor $9,$11 757 sll $25,$24,5 # 16 758 addu $7,$31 759 srl $6,$24,27 760 addu $7,$25 761 xor $9,$17 762 xor $25,$2,$3 763 addu $7,$6 764 xor $9,$22 765 sll $30,$1,30 766 and $25,$1 767 srl $6,$9,31 768 addu $9,$9 769 srl $1,$1,2 770 xor $25,$3 771 or $9,$6 772 addu $7,$8 773 or $1,$30 774 addu $7,$25 775#endif 776#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 777 addu $3,$31 # 17 778 xor $10,$12 779 xor $25,$1,$2 780 rotr $6,$7,27 781 xor $10,$18 782 and $25,$24 783 addu $3,$6 784 xor $10,$23 785 xor $25,$2 786 addu $3,$9 787 rotr $10,$10,31 788 rotr $24,$24,2 789 addu $3,$25 790#else 791 xor $10,$12 792 sll $25,$7,5 # 17 793 addu $3,$31 794 srl $6,$7,27 795 addu $3,$25 796 xor $10,$18 797 xor $25,$1,$2 798 addu $3,$6 799 xor $10,$23 800 sll $30,$24,30 801 and $25,$24 802 srl $6,$10,31 803 addu $10,$10 804 srl $24,$24,2 805 xor $25,$2 806 or $10,$6 807 addu $3,$9 808 or $24,$30 809 addu $3,$25 810#endif 811#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 812 addu $2,$31 # 18 813 xor $11,$13 814 xor $25,$24,$1 815 rotr $6,$3,27 816 xor $11,$19 817 and $25,$7 818 addu $2,$6 819 xor $11,$8 820 xor $25,$1 821 addu $2,$10 822 rotr $11,$11,31 823 rotr $7,$7,2 824 addu $2,$25 825#else 826 xor $11,$13 827 sll $25,$3,5 # 18 828 addu $2,$31 829 srl $6,$3,27 830 addu $2,$25 831 xor $11,$19 832 xor $25,$24,$1 833 addu $2,$6 834 xor $11,$8 835 sll $30,$7,30 836 and $25,$7 837 srl $6,$11,31 838 addu $11,$11 839 srl $7,$7,2 840 xor $25,$1 841 or $11,$6 842 addu $2,$10 843 or $7,$30 844 addu $2,$25 845#endif 846#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 847 addu $1,$31 # 19 848 xor $12,$14 849 xor $25,$7,$24 850 rotr $6,$2,27 851 xor $12,$20 852 and $25,$3 853 addu $1,$6 854 xor $12,$9 855 xor $25,$24 856 addu $1,$11 857 rotr $12,$12,31 858 rotr $3,$3,2 859 addu $1,$25 860#else 861 xor $12,$14 862 sll $25,$2,5 # 19 863 addu $1,$31 864 srl $6,$2,27 865 addu $1,$25 866 xor $12,$20 867 xor $25,$7,$24 868 addu $1,$6 869 xor $12,$9 870 sll $30,$3,30 871 and $25,$3 872 srl $6,$12,31 873 addu $12,$12 874 srl $3,$3,2 875 xor $25,$24 876 or $12,$6 877 addu $1,$11 878 or $3,$30 879 addu $1,$25 880#endif 881 lui $31,0x6ed9 882 ori $31,0xeba1 # K_20_39 883#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 884 xor $13,$15 885 addu $24,$31 # 20 886 rotr $6,$1,27 887 xor $13,$21 888 xor $25,$3,$7 889 addu $24,$6 890 xor $13,$10 891 xor $25,$2 892 addu $24,$12 893 rotr $13,$13,31 894 rotr $2,$2,2 895 addu $24,$25 896#else 897 xor $13,$15 898 sll $25,$1,5 # 20 899 addu $24,$31 900 srl $6,$1,27 901 addu $24,$25 902 xor $13,$21 903 xor $25,$3,$7 904 addu $24,$6 905 xor $13,$10 906 sll $30,$2,30 907 xor $25,$2 908 srl $6,$13,31 909 addu $13,$13 910 srl $2,$2,2 911 addu $24,$12 912 or $13,$6 913 or $2,$30 914 addu $24,$25 915#endif 916#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 917 xor $14,$16 918 addu $7,$31 # 21 919 rotr $6,$24,27 920 xor $14,$22 921 xor $25,$2,$3 922 addu $7,$6 923 xor $14,$11 924 xor $25,$1 925 addu $7,$13 926 rotr $14,$14,31 927 rotr $1,$1,2 928 addu $7,$25 929#else 930 xor $14,$16 931 sll $25,$24,5 # 21 932 addu $7,$31 933 srl $6,$24,27 934 addu $7,$25 935 xor $14,$22 936 xor $25,$2,$3 937 addu $7,$6 938 xor $14,$11 939 sll $30,$1,30 940 xor $25,$1 941 srl $6,$14,31 942 addu $14,$14 943 srl $1,$1,2 944 addu $7,$13 945 or $14,$6 946 or $1,$30 947 addu $7,$25 948#endif 949#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 950 xor $15,$17 951 addu $3,$31 # 22 952 rotr $6,$7,27 953 xor $15,$23 954 xor $25,$1,$2 955 addu $3,$6 956 xor $15,$12 957 xor $25,$24 958 addu $3,$14 959 rotr $15,$15,31 960 rotr $24,$24,2 961 addu $3,$25 962#else 963 xor $15,$17 964 sll $25,$7,5 # 22 965 addu $3,$31 966 srl $6,$7,27 967 addu $3,$25 968 xor $15,$23 969 xor $25,$1,$2 970 addu $3,$6 971 xor $15,$12 972 sll $30,$24,30 973 xor $25,$24 974 srl $6,$15,31 975 addu $15,$15 976 srl $24,$24,2 977 addu $3,$14 978 or $15,$6 979 or $24,$30 980 addu $3,$25 981#endif 982#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 983 xor $16,$18 984 addu $2,$31 # 23 985 rotr $6,$3,27 986 xor $16,$8 987 xor $25,$24,$1 988 addu $2,$6 989 xor $16,$13 990 xor $25,$7 991 addu $2,$15 992 rotr $16,$16,31 993 rotr $7,$7,2 994 addu $2,$25 995#else 996 xor $16,$18 997 sll $25,$3,5 # 23 998 addu $2,$31 999 srl $6,$3,27 1000 addu $2,$25 1001 xor $16,$8 1002 xor $25,$24,$1 1003 addu $2,$6 1004 xor $16,$13 1005 sll $30,$7,30 1006 xor $25,$7 1007 srl $6,$16,31 1008 addu $16,$16 1009 srl $7,$7,2 1010 addu $2,$15 1011 or $16,$6 1012 or $7,$30 1013 addu $2,$25 1014#endif 1015#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1016 xor $17,$19 1017 addu $1,$31 # 24 1018 rotr $6,$2,27 1019 xor $17,$9 1020 xor $25,$7,$24 1021 addu $1,$6 1022 xor $17,$14 1023 xor $25,$3 1024 addu $1,$16 1025 rotr $17,$17,31 1026 rotr $3,$3,2 1027 addu $1,$25 1028#else 1029 xor $17,$19 1030 sll $25,$2,5 # 24 1031 addu $1,$31 1032 srl $6,$2,27 1033 addu $1,$25 1034 xor $17,$9 1035 xor $25,$7,$24 1036 addu $1,$6 1037 xor $17,$14 1038 sll $30,$3,30 1039 xor $25,$3 1040 srl $6,$17,31 1041 addu $17,$17 1042 srl $3,$3,2 1043 addu $1,$16 1044 or $17,$6 1045 or $3,$30 1046 addu $1,$25 1047#endif 1048#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1049 xor $18,$20 1050 addu $24,$31 # 25 1051 rotr $6,$1,27 1052 xor $18,$10 1053 xor $25,$3,$7 1054 addu $24,$6 1055 xor $18,$15 1056 xor $25,$2 1057 addu $24,$17 1058 rotr $18,$18,31 1059 rotr $2,$2,2 1060 addu $24,$25 1061#else 1062 xor $18,$20 1063 sll $25,$1,5 # 25 1064 addu $24,$31 1065 srl $6,$1,27 1066 addu $24,$25 1067 xor $18,$10 1068 xor $25,$3,$7 1069 addu $24,$6 1070 xor $18,$15 1071 sll $30,$2,30 1072 xor $25,$2 1073 srl $6,$18,31 1074 addu $18,$18 1075 srl $2,$2,2 1076 addu $24,$17 1077 or $18,$6 1078 or $2,$30 1079 addu $24,$25 1080#endif 1081#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1082 xor $19,$21 1083 addu $7,$31 # 26 1084 rotr $6,$24,27 1085 xor $19,$11 1086 xor $25,$2,$3 1087 addu $7,$6 1088 xor $19,$16 1089 xor $25,$1 1090 addu $7,$18 1091 rotr $19,$19,31 1092 rotr $1,$1,2 1093 addu $7,$25 1094#else 1095 xor $19,$21 1096 sll $25,$24,5 # 26 1097 addu $7,$31 1098 srl $6,$24,27 1099 addu $7,$25 1100 xor $19,$11 1101 xor $25,$2,$3 1102 addu $7,$6 1103 xor $19,$16 1104 sll $30,$1,30 1105 xor $25,$1 1106 srl $6,$19,31 1107 addu $19,$19 1108 srl $1,$1,2 1109 addu $7,$18 1110 or $19,$6 1111 or $1,$30 1112 addu $7,$25 1113#endif 1114#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1115 xor $20,$22 1116 addu $3,$31 # 27 1117 rotr $6,$7,27 1118 xor $20,$12 1119 xor $25,$1,$2 1120 addu $3,$6 1121 xor $20,$17 1122 xor $25,$24 1123 addu $3,$19 1124 rotr $20,$20,31 1125 rotr $24,$24,2 1126 addu $3,$25 1127#else 1128 xor $20,$22 1129 sll $25,$7,5 # 27 1130 addu $3,$31 1131 srl $6,$7,27 1132 addu $3,$25 1133 xor $20,$12 1134 xor $25,$1,$2 1135 addu $3,$6 1136 xor $20,$17 1137 sll $30,$24,30 1138 xor $25,$24 1139 srl $6,$20,31 1140 addu $20,$20 1141 srl $24,$24,2 1142 addu $3,$19 1143 or $20,$6 1144 or $24,$30 1145 addu $3,$25 1146#endif 1147#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1148 xor $21,$23 1149 addu $2,$31 # 28 1150 rotr $6,$3,27 1151 xor $21,$13 1152 xor $25,$24,$1 1153 addu $2,$6 1154 xor $21,$18 1155 xor $25,$7 1156 addu $2,$20 1157 rotr $21,$21,31 1158 rotr $7,$7,2 1159 addu $2,$25 1160#else 1161 xor $21,$23 1162 sll $25,$3,5 # 28 1163 addu $2,$31 1164 srl $6,$3,27 1165 addu $2,$25 1166 xor $21,$13 1167 xor $25,$24,$1 1168 addu $2,$6 1169 xor $21,$18 1170 sll $30,$7,30 1171 xor $25,$7 1172 srl $6,$21,31 1173 addu $21,$21 1174 srl $7,$7,2 1175 addu $2,$20 1176 or $21,$6 1177 or $7,$30 1178 addu $2,$25 1179#endif 1180#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1181 xor $22,$8 1182 addu $1,$31 # 29 1183 rotr $6,$2,27 1184 xor $22,$14 1185 xor $25,$7,$24 1186 addu $1,$6 1187 xor $22,$19 1188 xor $25,$3 1189 addu $1,$21 1190 rotr $22,$22,31 1191 rotr $3,$3,2 1192 addu $1,$25 1193#else 1194 xor $22,$8 1195 sll $25,$2,5 # 29 1196 addu $1,$31 1197 srl $6,$2,27 1198 addu $1,$25 1199 xor $22,$14 1200 xor $25,$7,$24 1201 addu $1,$6 1202 xor $22,$19 1203 sll $30,$3,30 1204 xor $25,$3 1205 srl $6,$22,31 1206 addu $22,$22 1207 srl $3,$3,2 1208 addu $1,$21 1209 or $22,$6 1210 or $3,$30 1211 addu $1,$25 1212#endif 1213#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1214 xor $23,$9 1215 addu $24,$31 # 30 1216 rotr $6,$1,27 1217 xor $23,$15 1218 xor $25,$3,$7 1219 addu $24,$6 1220 xor $23,$20 1221 xor $25,$2 1222 addu $24,$22 1223 rotr $23,$23,31 1224 rotr $2,$2,2 1225 addu $24,$25 1226#else 1227 xor $23,$9 1228 sll $25,$1,5 # 30 1229 addu $24,$31 1230 srl $6,$1,27 1231 addu $24,$25 1232 xor $23,$15 1233 xor $25,$3,$7 1234 addu $24,$6 1235 xor $23,$20 1236 sll $30,$2,30 1237 xor $25,$2 1238 srl $6,$23,31 1239 addu $23,$23 1240 srl $2,$2,2 1241 addu $24,$22 1242 or $23,$6 1243 or $2,$30 1244 addu $24,$25 1245#endif 1246#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1247 xor $8,$10 1248 addu $7,$31 # 31 1249 rotr $6,$24,27 1250 xor $8,$16 1251 xor $25,$2,$3 1252 addu $7,$6 1253 xor $8,$21 1254 xor $25,$1 1255 addu $7,$23 1256 rotr $8,$8,31 1257 rotr $1,$1,2 1258 addu $7,$25 1259#else 1260 xor $8,$10 1261 sll $25,$24,5 # 31 1262 addu $7,$31 1263 srl $6,$24,27 1264 addu $7,$25 1265 xor $8,$16 1266 xor $25,$2,$3 1267 addu $7,$6 1268 xor $8,$21 1269 sll $30,$1,30 1270 xor $25,$1 1271 srl $6,$8,31 1272 addu $8,$8 1273 srl $1,$1,2 1274 addu $7,$23 1275 or $8,$6 1276 or $1,$30 1277 addu $7,$25 1278#endif 1279#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1280 xor $9,$11 1281 addu $3,$31 # 32 1282 rotr $6,$7,27 1283 xor $9,$17 1284 xor $25,$1,$2 1285 addu $3,$6 1286 xor $9,$22 1287 xor $25,$24 1288 addu $3,$8 1289 rotr $9,$9,31 1290 rotr $24,$24,2 1291 addu $3,$25 1292#else 1293 xor $9,$11 1294 sll $25,$7,5 # 32 1295 addu $3,$31 1296 srl $6,$7,27 1297 addu $3,$25 1298 xor $9,$17 1299 xor $25,$1,$2 1300 addu $3,$6 1301 xor $9,$22 1302 sll $30,$24,30 1303 xor $25,$24 1304 srl $6,$9,31 1305 addu $9,$9 1306 srl $24,$24,2 1307 addu $3,$8 1308 or $9,$6 1309 or $24,$30 1310 addu $3,$25 1311#endif 1312#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1313 xor $10,$12 1314 addu $2,$31 # 33 1315 rotr $6,$3,27 1316 xor $10,$18 1317 xor $25,$24,$1 1318 addu $2,$6 1319 xor $10,$23 1320 xor $25,$7 1321 addu $2,$9 1322 rotr $10,$10,31 1323 rotr $7,$7,2 1324 addu $2,$25 1325#else 1326 xor $10,$12 1327 sll $25,$3,5 # 33 1328 addu $2,$31 1329 srl $6,$3,27 1330 addu $2,$25 1331 xor $10,$18 1332 xor $25,$24,$1 1333 addu $2,$6 1334 xor $10,$23 1335 sll $30,$7,30 1336 xor $25,$7 1337 srl $6,$10,31 1338 addu $10,$10 1339 srl $7,$7,2 1340 addu $2,$9 1341 or $10,$6 1342 or $7,$30 1343 addu $2,$25 1344#endif 1345#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1346 xor $11,$13 1347 addu $1,$31 # 34 1348 rotr $6,$2,27 1349 xor $11,$19 1350 xor $25,$7,$24 1351 addu $1,$6 1352 xor $11,$8 1353 xor $25,$3 1354 addu $1,$10 1355 rotr $11,$11,31 1356 rotr $3,$3,2 1357 addu $1,$25 1358#else 1359 xor $11,$13 1360 sll $25,$2,5 # 34 1361 addu $1,$31 1362 srl $6,$2,27 1363 addu $1,$25 1364 xor $11,$19 1365 xor $25,$7,$24 1366 addu $1,$6 1367 xor $11,$8 1368 sll $30,$3,30 1369 xor $25,$3 1370 srl $6,$11,31 1371 addu $11,$11 1372 srl $3,$3,2 1373 addu $1,$10 1374 or $11,$6 1375 or $3,$30 1376 addu $1,$25 1377#endif 1378#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1379 xor $12,$14 1380 addu $24,$31 # 35 1381 rotr $6,$1,27 1382 xor $12,$20 1383 xor $25,$3,$7 1384 addu $24,$6 1385 xor $12,$9 1386 xor $25,$2 1387 addu $24,$11 1388 rotr $12,$12,31 1389 rotr $2,$2,2 1390 addu $24,$25 1391#else 1392 xor $12,$14 1393 sll $25,$1,5 # 35 1394 addu $24,$31 1395 srl $6,$1,27 1396 addu $24,$25 1397 xor $12,$20 1398 xor $25,$3,$7 1399 addu $24,$6 1400 xor $12,$9 1401 sll $30,$2,30 1402 xor $25,$2 1403 srl $6,$12,31 1404 addu $12,$12 1405 srl $2,$2,2 1406 addu $24,$11 1407 or $12,$6 1408 or $2,$30 1409 addu $24,$25 1410#endif 1411#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1412 xor $13,$15 1413 addu $7,$31 # 36 1414 rotr $6,$24,27 1415 xor $13,$21 1416 xor $25,$2,$3 1417 addu $7,$6 1418 xor $13,$10 1419 xor $25,$1 1420 addu $7,$12 1421 rotr $13,$13,31 1422 rotr $1,$1,2 1423 addu $7,$25 1424#else 1425 xor $13,$15 1426 sll $25,$24,5 # 36 1427 addu $7,$31 1428 srl $6,$24,27 1429 addu $7,$25 1430 xor $13,$21 1431 xor $25,$2,$3 1432 addu $7,$6 1433 xor $13,$10 1434 sll $30,$1,30 1435 xor $25,$1 1436 srl $6,$13,31 1437 addu $13,$13 1438 srl $1,$1,2 1439 addu $7,$12 1440 or $13,$6 1441 or $1,$30 1442 addu $7,$25 1443#endif 1444#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1445 xor $14,$16 1446 addu $3,$31 # 37 1447 rotr $6,$7,27 1448 xor $14,$22 1449 xor $25,$1,$2 1450 addu $3,$6 1451 xor $14,$11 1452 xor $25,$24 1453 addu $3,$13 1454 rotr $14,$14,31 1455 rotr $24,$24,2 1456 addu $3,$25 1457#else 1458 xor $14,$16 1459 sll $25,$7,5 # 37 1460 addu $3,$31 1461 srl $6,$7,27 1462 addu $3,$25 1463 xor $14,$22 1464 xor $25,$1,$2 1465 addu $3,$6 1466 xor $14,$11 1467 sll $30,$24,30 1468 xor $25,$24 1469 srl $6,$14,31 1470 addu $14,$14 1471 srl $24,$24,2 1472 addu $3,$13 1473 or $14,$6 1474 or $24,$30 1475 addu $3,$25 1476#endif 1477#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1478 xor $15,$17 1479 addu $2,$31 # 38 1480 rotr $6,$3,27 1481 xor $15,$23 1482 xor $25,$24,$1 1483 addu $2,$6 1484 xor $15,$12 1485 xor $25,$7 1486 addu $2,$14 1487 rotr $15,$15,31 1488 rotr $7,$7,2 1489 addu $2,$25 1490#else 1491 xor $15,$17 1492 sll $25,$3,5 # 38 1493 addu $2,$31 1494 srl $6,$3,27 1495 addu $2,$25 1496 xor $15,$23 1497 xor $25,$24,$1 1498 addu $2,$6 1499 xor $15,$12 1500 sll $30,$7,30 1501 xor $25,$7 1502 srl $6,$15,31 1503 addu $15,$15 1504 srl $7,$7,2 1505 addu $2,$14 1506 or $15,$6 1507 or $7,$30 1508 addu $2,$25 1509#endif 1510#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1511 xor $16,$18 1512 addu $1,$31 # 39 1513 rotr $6,$2,27 1514 xor $16,$8 1515 xor $25,$7,$24 1516 addu $1,$6 1517 xor $16,$13 1518 xor $25,$3 1519 addu $1,$15 1520 rotr $16,$16,31 1521 rotr $3,$3,2 1522 addu $1,$25 1523#else 1524 xor $16,$18 1525 sll $25,$2,5 # 39 1526 addu $1,$31 1527 srl $6,$2,27 1528 addu $1,$25 1529 xor $16,$8 1530 xor $25,$7,$24 1531 addu $1,$6 1532 xor $16,$13 1533 sll $30,$3,30 1534 xor $25,$3 1535 srl $6,$16,31 1536 addu $16,$16 1537 srl $3,$3,2 1538 addu $1,$15 1539 or $16,$6 1540 or $3,$30 1541 addu $1,$25 1542#endif 1543 lui $31,0x8f1b 1544 ori $31,0xbcdc # K_40_59 1545#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1546 addu $24,$31 # 40 1547 and $25,$3,$7 1548 xor $17,$19 1549 rotr $6,$1,27 1550 addu $24,$25 1551 xor $17,$9 1552 xor $25,$3,$7 1553 addu $24,$6 1554 xor $17,$14 1555 and $25,$2 1556 addu $24,$16 1557 rotr $17,$17,31 1558 rotr $2,$2,2 1559 addu $24,$25 1560#else 1561 xor $17,$19 1562 sll $25,$1,5 # 40 1563 addu $24,$31 1564 srl $6,$1,27 1565 addu $24,$25 1566 xor $17,$9 1567 and $25,$3,$7 1568 addu $24,$6 1569 xor $17,$14 1570 sll $30,$2,30 1571 addu $24,$25 1572 srl $6,$17,31 1573 xor $25,$3,$7 1574 addu $17,$17 1575 and $25,$2 1576 srl $2,$2,2 1577 or $17,$6 1578 addu $24,$16 1579 or $2,$30 1580 addu $24,$25 1581#endif 1582#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1583 addu $7,$31 # 41 1584 and $25,$2,$3 1585 xor $18,$20 1586 rotr $6,$24,27 1587 addu $7,$25 1588 xor $18,$10 1589 xor $25,$2,$3 1590 addu $7,$6 1591 xor $18,$15 1592 and $25,$1 1593 addu $7,$17 1594 rotr $18,$18,31 1595 rotr $1,$1,2 1596 addu $7,$25 1597#else 1598 xor $18,$20 1599 sll $25,$24,5 # 41 1600 addu $7,$31 1601 srl $6,$24,27 1602 addu $7,$25 1603 xor $18,$10 1604 and $25,$2,$3 1605 addu $7,$6 1606 xor $18,$15 1607 sll $30,$1,30 1608 addu $7,$25 1609 srl $6,$18,31 1610 xor $25,$2,$3 1611 addu $18,$18 1612 and $25,$1 1613 srl $1,$1,2 1614 or $18,$6 1615 addu $7,$17 1616 or $1,$30 1617 addu $7,$25 1618#endif 1619#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1620 addu $3,$31 # 42 1621 and $25,$1,$2 1622 xor $19,$21 1623 rotr $6,$7,27 1624 addu $3,$25 1625 xor $19,$11 1626 xor $25,$1,$2 1627 addu $3,$6 1628 xor $19,$16 1629 and $25,$24 1630 addu $3,$18 1631 rotr $19,$19,31 1632 rotr $24,$24,2 1633 addu $3,$25 1634#else 1635 xor $19,$21 1636 sll $25,$7,5 # 42 1637 addu $3,$31 1638 srl $6,$7,27 1639 addu $3,$25 1640 xor $19,$11 1641 and $25,$1,$2 1642 addu $3,$6 1643 xor $19,$16 1644 sll $30,$24,30 1645 addu $3,$25 1646 srl $6,$19,31 1647 xor $25,$1,$2 1648 addu $19,$19 1649 and $25,$24 1650 srl $24,$24,2 1651 or $19,$6 1652 addu $3,$18 1653 or $24,$30 1654 addu $3,$25 1655#endif 1656#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1657 addu $2,$31 # 43 1658 and $25,$24,$1 1659 xor $20,$22 1660 rotr $6,$3,27 1661 addu $2,$25 1662 xor $20,$12 1663 xor $25,$24,$1 1664 addu $2,$6 1665 xor $20,$17 1666 and $25,$7 1667 addu $2,$19 1668 rotr $20,$20,31 1669 rotr $7,$7,2 1670 addu $2,$25 1671#else 1672 xor $20,$22 1673 sll $25,$3,5 # 43 1674 addu $2,$31 1675 srl $6,$3,27 1676 addu $2,$25 1677 xor $20,$12 1678 and $25,$24,$1 1679 addu $2,$6 1680 xor $20,$17 1681 sll $30,$7,30 1682 addu $2,$25 1683 srl $6,$20,31 1684 xor $25,$24,$1 1685 addu $20,$20 1686 and $25,$7 1687 srl $7,$7,2 1688 or $20,$6 1689 addu $2,$19 1690 or $7,$30 1691 addu $2,$25 1692#endif 1693#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1694 addu $1,$31 # 44 1695 and $25,$7,$24 1696 xor $21,$23 1697 rotr $6,$2,27 1698 addu $1,$25 1699 xor $21,$13 1700 xor $25,$7,$24 1701 addu $1,$6 1702 xor $21,$18 1703 and $25,$3 1704 addu $1,$20 1705 rotr $21,$21,31 1706 rotr $3,$3,2 1707 addu $1,$25 1708#else 1709 xor $21,$23 1710 sll $25,$2,5 # 44 1711 addu $1,$31 1712 srl $6,$2,27 1713 addu $1,$25 1714 xor $21,$13 1715 and $25,$7,$24 1716 addu $1,$6 1717 xor $21,$18 1718 sll $30,$3,30 1719 addu $1,$25 1720 srl $6,$21,31 1721 xor $25,$7,$24 1722 addu $21,$21 1723 and $25,$3 1724 srl $3,$3,2 1725 or $21,$6 1726 addu $1,$20 1727 or $3,$30 1728 addu $1,$25 1729#endif 1730#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1731 addu $24,$31 # 45 1732 and $25,$3,$7 1733 xor $22,$8 1734 rotr $6,$1,27 1735 addu $24,$25 1736 xor $22,$14 1737 xor $25,$3,$7 1738 addu $24,$6 1739 xor $22,$19 1740 and $25,$2 1741 addu $24,$21 1742 rotr $22,$22,31 1743 rotr $2,$2,2 1744 addu $24,$25 1745#else 1746 xor $22,$8 1747 sll $25,$1,5 # 45 1748 addu $24,$31 1749 srl $6,$1,27 1750 addu $24,$25 1751 xor $22,$14 1752 and $25,$3,$7 1753 addu $24,$6 1754 xor $22,$19 1755 sll $30,$2,30 1756 addu $24,$25 1757 srl $6,$22,31 1758 xor $25,$3,$7 1759 addu $22,$22 1760 and $25,$2 1761 srl $2,$2,2 1762 or $22,$6 1763 addu $24,$21 1764 or $2,$30 1765 addu $24,$25 1766#endif 1767#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1768 addu $7,$31 # 46 1769 and $25,$2,$3 1770 xor $23,$9 1771 rotr $6,$24,27 1772 addu $7,$25 1773 xor $23,$15 1774 xor $25,$2,$3 1775 addu $7,$6 1776 xor $23,$20 1777 and $25,$1 1778 addu $7,$22 1779 rotr $23,$23,31 1780 rotr $1,$1,2 1781 addu $7,$25 1782#else 1783 xor $23,$9 1784 sll $25,$24,5 # 46 1785 addu $7,$31 1786 srl $6,$24,27 1787 addu $7,$25 1788 xor $23,$15 1789 and $25,$2,$3 1790 addu $7,$6 1791 xor $23,$20 1792 sll $30,$1,30 1793 addu $7,$25 1794 srl $6,$23,31 1795 xor $25,$2,$3 1796 addu $23,$23 1797 and $25,$1 1798 srl $1,$1,2 1799 or $23,$6 1800 addu $7,$22 1801 or $1,$30 1802 addu $7,$25 1803#endif 1804#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1805 addu $3,$31 # 47 1806 and $25,$1,$2 1807 xor $8,$10 1808 rotr $6,$7,27 1809 addu $3,$25 1810 xor $8,$16 1811 xor $25,$1,$2 1812 addu $3,$6 1813 xor $8,$21 1814 and $25,$24 1815 addu $3,$23 1816 rotr $8,$8,31 1817 rotr $24,$24,2 1818 addu $3,$25 1819#else 1820 xor $8,$10 1821 sll $25,$7,5 # 47 1822 addu $3,$31 1823 srl $6,$7,27 1824 addu $3,$25 1825 xor $8,$16 1826 and $25,$1,$2 1827 addu $3,$6 1828 xor $8,$21 1829 sll $30,$24,30 1830 addu $3,$25 1831 srl $6,$8,31 1832 xor $25,$1,$2 1833 addu $8,$8 1834 and $25,$24 1835 srl $24,$24,2 1836 or $8,$6 1837 addu $3,$23 1838 or $24,$30 1839 addu $3,$25 1840#endif 1841#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1842 addu $2,$31 # 48 1843 and $25,$24,$1 1844 xor $9,$11 1845 rotr $6,$3,27 1846 addu $2,$25 1847 xor $9,$17 1848 xor $25,$24,$1 1849 addu $2,$6 1850 xor $9,$22 1851 and $25,$7 1852 addu $2,$8 1853 rotr $9,$9,31 1854 rotr $7,$7,2 1855 addu $2,$25 1856#else 1857 xor $9,$11 1858 sll $25,$3,5 # 48 1859 addu $2,$31 1860 srl $6,$3,27 1861 addu $2,$25 1862 xor $9,$17 1863 and $25,$24,$1 1864 addu $2,$6 1865 xor $9,$22 1866 sll $30,$7,30 1867 addu $2,$25 1868 srl $6,$9,31 1869 xor $25,$24,$1 1870 addu $9,$9 1871 and $25,$7 1872 srl $7,$7,2 1873 or $9,$6 1874 addu $2,$8 1875 or $7,$30 1876 addu $2,$25 1877#endif 1878#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1879 addu $1,$31 # 49 1880 and $25,$7,$24 1881 xor $10,$12 1882 rotr $6,$2,27 1883 addu $1,$25 1884 xor $10,$18 1885 xor $25,$7,$24 1886 addu $1,$6 1887 xor $10,$23 1888 and $25,$3 1889 addu $1,$9 1890 rotr $10,$10,31 1891 rotr $3,$3,2 1892 addu $1,$25 1893#else 1894 xor $10,$12 1895 sll $25,$2,5 # 49 1896 addu $1,$31 1897 srl $6,$2,27 1898 addu $1,$25 1899 xor $10,$18 1900 and $25,$7,$24 1901 addu $1,$6 1902 xor $10,$23 1903 sll $30,$3,30 1904 addu $1,$25 1905 srl $6,$10,31 1906 xor $25,$7,$24 1907 addu $10,$10 1908 and $25,$3 1909 srl $3,$3,2 1910 or $10,$6 1911 addu $1,$9 1912 or $3,$30 1913 addu $1,$25 1914#endif 1915#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1916 addu $24,$31 # 50 1917 and $25,$3,$7 1918 xor $11,$13 1919 rotr $6,$1,27 1920 addu $24,$25 1921 xor $11,$19 1922 xor $25,$3,$7 1923 addu $24,$6 1924 xor $11,$8 1925 and $25,$2 1926 addu $24,$10 1927 rotr $11,$11,31 1928 rotr $2,$2,2 1929 addu $24,$25 1930#else 1931 xor $11,$13 1932 sll $25,$1,5 # 50 1933 addu $24,$31 1934 srl $6,$1,27 1935 addu $24,$25 1936 xor $11,$19 1937 and $25,$3,$7 1938 addu $24,$6 1939 xor $11,$8 1940 sll $30,$2,30 1941 addu $24,$25 1942 srl $6,$11,31 1943 xor $25,$3,$7 1944 addu $11,$11 1945 and $25,$2 1946 srl $2,$2,2 1947 or $11,$6 1948 addu $24,$10 1949 or $2,$30 1950 addu $24,$25 1951#endif 1952#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1953 addu $7,$31 # 51 1954 and $25,$2,$3 1955 xor $12,$14 1956 rotr $6,$24,27 1957 addu $7,$25 1958 xor $12,$20 1959 xor $25,$2,$3 1960 addu $7,$6 1961 xor $12,$9 1962 and $25,$1 1963 addu $7,$11 1964 rotr $12,$12,31 1965 rotr $1,$1,2 1966 addu $7,$25 1967#else 1968 xor $12,$14 1969 sll $25,$24,5 # 51 1970 addu $7,$31 1971 srl $6,$24,27 1972 addu $7,$25 1973 xor $12,$20 1974 and $25,$2,$3 1975 addu $7,$6 1976 xor $12,$9 1977 sll $30,$1,30 1978 addu $7,$25 1979 srl $6,$12,31 1980 xor $25,$2,$3 1981 addu $12,$12 1982 and $25,$1 1983 srl $1,$1,2 1984 or $12,$6 1985 addu $7,$11 1986 or $1,$30 1987 addu $7,$25 1988#endif 1989#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 1990 addu $3,$31 # 52 1991 and $25,$1,$2 1992 xor $13,$15 1993 rotr $6,$7,27 1994 addu $3,$25 1995 xor $13,$21 1996 xor $25,$1,$2 1997 addu $3,$6 1998 xor $13,$10 1999 and $25,$24 2000 addu $3,$12 2001 rotr $13,$13,31 2002 rotr $24,$24,2 2003 addu $3,$25 2004#else 2005 xor $13,$15 2006 sll $25,$7,5 # 52 2007 addu $3,$31 2008 srl $6,$7,27 2009 addu $3,$25 2010 xor $13,$21 2011 and $25,$1,$2 2012 addu $3,$6 2013 xor $13,$10 2014 sll $30,$24,30 2015 addu $3,$25 2016 srl $6,$13,31 2017 xor $25,$1,$2 2018 addu $13,$13 2019 and $25,$24 2020 srl $24,$24,2 2021 or $13,$6 2022 addu $3,$12 2023 or $24,$30 2024 addu $3,$25 2025#endif 2026#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2027 addu $2,$31 # 53 2028 and $25,$24,$1 2029 xor $14,$16 2030 rotr $6,$3,27 2031 addu $2,$25 2032 xor $14,$22 2033 xor $25,$24,$1 2034 addu $2,$6 2035 xor $14,$11 2036 and $25,$7 2037 addu $2,$13 2038 rotr $14,$14,31 2039 rotr $7,$7,2 2040 addu $2,$25 2041#else 2042 xor $14,$16 2043 sll $25,$3,5 # 53 2044 addu $2,$31 2045 srl $6,$3,27 2046 addu $2,$25 2047 xor $14,$22 2048 and $25,$24,$1 2049 addu $2,$6 2050 xor $14,$11 2051 sll $30,$7,30 2052 addu $2,$25 2053 srl $6,$14,31 2054 xor $25,$24,$1 2055 addu $14,$14 2056 and $25,$7 2057 srl $7,$7,2 2058 or $14,$6 2059 addu $2,$13 2060 or $7,$30 2061 addu $2,$25 2062#endif 2063#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2064 addu $1,$31 # 54 2065 and $25,$7,$24 2066 xor $15,$17 2067 rotr $6,$2,27 2068 addu $1,$25 2069 xor $15,$23 2070 xor $25,$7,$24 2071 addu $1,$6 2072 xor $15,$12 2073 and $25,$3 2074 addu $1,$14 2075 rotr $15,$15,31 2076 rotr $3,$3,2 2077 addu $1,$25 2078#else 2079 xor $15,$17 2080 sll $25,$2,5 # 54 2081 addu $1,$31 2082 srl $6,$2,27 2083 addu $1,$25 2084 xor $15,$23 2085 and $25,$7,$24 2086 addu $1,$6 2087 xor $15,$12 2088 sll $30,$3,30 2089 addu $1,$25 2090 srl $6,$15,31 2091 xor $25,$7,$24 2092 addu $15,$15 2093 and $25,$3 2094 srl $3,$3,2 2095 or $15,$6 2096 addu $1,$14 2097 or $3,$30 2098 addu $1,$25 2099#endif 2100#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2101 addu $24,$31 # 55 2102 and $25,$3,$7 2103 xor $16,$18 2104 rotr $6,$1,27 2105 addu $24,$25 2106 xor $16,$8 2107 xor $25,$3,$7 2108 addu $24,$6 2109 xor $16,$13 2110 and $25,$2 2111 addu $24,$15 2112 rotr $16,$16,31 2113 rotr $2,$2,2 2114 addu $24,$25 2115#else 2116 xor $16,$18 2117 sll $25,$1,5 # 55 2118 addu $24,$31 2119 srl $6,$1,27 2120 addu $24,$25 2121 xor $16,$8 2122 and $25,$3,$7 2123 addu $24,$6 2124 xor $16,$13 2125 sll $30,$2,30 2126 addu $24,$25 2127 srl $6,$16,31 2128 xor $25,$3,$7 2129 addu $16,$16 2130 and $25,$2 2131 srl $2,$2,2 2132 or $16,$6 2133 addu $24,$15 2134 or $2,$30 2135 addu $24,$25 2136#endif 2137#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2138 addu $7,$31 # 56 2139 and $25,$2,$3 2140 xor $17,$19 2141 rotr $6,$24,27 2142 addu $7,$25 2143 xor $17,$9 2144 xor $25,$2,$3 2145 addu $7,$6 2146 xor $17,$14 2147 and $25,$1 2148 addu $7,$16 2149 rotr $17,$17,31 2150 rotr $1,$1,2 2151 addu $7,$25 2152#else 2153 xor $17,$19 2154 sll $25,$24,5 # 56 2155 addu $7,$31 2156 srl $6,$24,27 2157 addu $7,$25 2158 xor $17,$9 2159 and $25,$2,$3 2160 addu $7,$6 2161 xor $17,$14 2162 sll $30,$1,30 2163 addu $7,$25 2164 srl $6,$17,31 2165 xor $25,$2,$3 2166 addu $17,$17 2167 and $25,$1 2168 srl $1,$1,2 2169 or $17,$6 2170 addu $7,$16 2171 or $1,$30 2172 addu $7,$25 2173#endif 2174#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2175 addu $3,$31 # 57 2176 and $25,$1,$2 2177 xor $18,$20 2178 rotr $6,$7,27 2179 addu $3,$25 2180 xor $18,$10 2181 xor $25,$1,$2 2182 addu $3,$6 2183 xor $18,$15 2184 and $25,$24 2185 addu $3,$17 2186 rotr $18,$18,31 2187 rotr $24,$24,2 2188 addu $3,$25 2189#else 2190 xor $18,$20 2191 sll $25,$7,5 # 57 2192 addu $3,$31 2193 srl $6,$7,27 2194 addu $3,$25 2195 xor $18,$10 2196 and $25,$1,$2 2197 addu $3,$6 2198 xor $18,$15 2199 sll $30,$24,30 2200 addu $3,$25 2201 srl $6,$18,31 2202 xor $25,$1,$2 2203 addu $18,$18 2204 and $25,$24 2205 srl $24,$24,2 2206 or $18,$6 2207 addu $3,$17 2208 or $24,$30 2209 addu $3,$25 2210#endif 2211#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2212 addu $2,$31 # 58 2213 and $25,$24,$1 2214 xor $19,$21 2215 rotr $6,$3,27 2216 addu $2,$25 2217 xor $19,$11 2218 xor $25,$24,$1 2219 addu $2,$6 2220 xor $19,$16 2221 and $25,$7 2222 addu $2,$18 2223 rotr $19,$19,31 2224 rotr $7,$7,2 2225 addu $2,$25 2226#else 2227 xor $19,$21 2228 sll $25,$3,5 # 58 2229 addu $2,$31 2230 srl $6,$3,27 2231 addu $2,$25 2232 xor $19,$11 2233 and $25,$24,$1 2234 addu $2,$6 2235 xor $19,$16 2236 sll $30,$7,30 2237 addu $2,$25 2238 srl $6,$19,31 2239 xor $25,$24,$1 2240 addu $19,$19 2241 and $25,$7 2242 srl $7,$7,2 2243 or $19,$6 2244 addu $2,$18 2245 or $7,$30 2246 addu $2,$25 2247#endif 2248#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2249 addu $1,$31 # 59 2250 and $25,$7,$24 2251 xor $20,$22 2252 rotr $6,$2,27 2253 addu $1,$25 2254 xor $20,$12 2255 xor $25,$7,$24 2256 addu $1,$6 2257 xor $20,$17 2258 and $25,$3 2259 addu $1,$19 2260 rotr $20,$20,31 2261 rotr $3,$3,2 2262 addu $1,$25 2263#else 2264 xor $20,$22 2265 sll $25,$2,5 # 59 2266 addu $1,$31 2267 srl $6,$2,27 2268 addu $1,$25 2269 xor $20,$12 2270 and $25,$7,$24 2271 addu $1,$6 2272 xor $20,$17 2273 sll $30,$3,30 2274 addu $1,$25 2275 srl $6,$20,31 2276 xor $25,$7,$24 2277 addu $20,$20 2278 and $25,$3 2279 srl $3,$3,2 2280 or $20,$6 2281 addu $1,$19 2282 or $3,$30 2283 addu $1,$25 2284#endif 2285 lui $31,0xca62 2286 ori $31,0xc1d6 # K_60_79 2287#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2288 xor $21,$23 2289 addu $24,$31 # 60 2290 rotr $6,$1,27 2291 xor $21,$13 2292 xor $25,$3,$7 2293 addu $24,$6 2294 xor $21,$18 2295 xor $25,$2 2296 addu $24,$20 2297 rotr $21,$21,31 2298 rotr $2,$2,2 2299 addu $24,$25 2300#else 2301 xor $21,$23 2302 sll $25,$1,5 # 60 2303 addu $24,$31 2304 srl $6,$1,27 2305 addu $24,$25 2306 xor $21,$13 2307 xor $25,$3,$7 2308 addu $24,$6 2309 xor $21,$18 2310 sll $30,$2,30 2311 xor $25,$2 2312 srl $6,$21,31 2313 addu $21,$21 2314 srl $2,$2,2 2315 addu $24,$20 2316 or $21,$6 2317 or $2,$30 2318 addu $24,$25 2319#endif 2320#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2321 xor $22,$8 2322 addu $7,$31 # 61 2323 rotr $6,$24,27 2324 xor $22,$14 2325 xor $25,$2,$3 2326 addu $7,$6 2327 xor $22,$19 2328 xor $25,$1 2329 addu $7,$21 2330 rotr $22,$22,31 2331 rotr $1,$1,2 2332 addu $7,$25 2333#else 2334 xor $22,$8 2335 sll $25,$24,5 # 61 2336 addu $7,$31 2337 srl $6,$24,27 2338 addu $7,$25 2339 xor $22,$14 2340 xor $25,$2,$3 2341 addu $7,$6 2342 xor $22,$19 2343 sll $30,$1,30 2344 xor $25,$1 2345 srl $6,$22,31 2346 addu $22,$22 2347 srl $1,$1,2 2348 addu $7,$21 2349 or $22,$6 2350 or $1,$30 2351 addu $7,$25 2352#endif 2353#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2354 xor $23,$9 2355 addu $3,$31 # 62 2356 rotr $6,$7,27 2357 xor $23,$15 2358 xor $25,$1,$2 2359 addu $3,$6 2360 xor $23,$20 2361 xor $25,$24 2362 addu $3,$22 2363 rotr $23,$23,31 2364 rotr $24,$24,2 2365 addu $3,$25 2366#else 2367 xor $23,$9 2368 sll $25,$7,5 # 62 2369 addu $3,$31 2370 srl $6,$7,27 2371 addu $3,$25 2372 xor $23,$15 2373 xor $25,$1,$2 2374 addu $3,$6 2375 xor $23,$20 2376 sll $30,$24,30 2377 xor $25,$24 2378 srl $6,$23,31 2379 addu $23,$23 2380 srl $24,$24,2 2381 addu $3,$22 2382 or $23,$6 2383 or $24,$30 2384 addu $3,$25 2385#endif 2386#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2387 xor $8,$10 2388 addu $2,$31 # 63 2389 rotr $6,$3,27 2390 xor $8,$16 2391 xor $25,$24,$1 2392 addu $2,$6 2393 xor $8,$21 2394 xor $25,$7 2395 addu $2,$23 2396 rotr $8,$8,31 2397 rotr $7,$7,2 2398 addu $2,$25 2399#else 2400 xor $8,$10 2401 sll $25,$3,5 # 63 2402 addu $2,$31 2403 srl $6,$3,27 2404 addu $2,$25 2405 xor $8,$16 2406 xor $25,$24,$1 2407 addu $2,$6 2408 xor $8,$21 2409 sll $30,$7,30 2410 xor $25,$7 2411 srl $6,$8,31 2412 addu $8,$8 2413 srl $7,$7,2 2414 addu $2,$23 2415 or $8,$6 2416 or $7,$30 2417 addu $2,$25 2418#endif 2419#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2420 xor $9,$11 2421 addu $1,$31 # 64 2422 rotr $6,$2,27 2423 xor $9,$17 2424 xor $25,$7,$24 2425 addu $1,$6 2426 xor $9,$22 2427 xor $25,$3 2428 addu $1,$8 2429 rotr $9,$9,31 2430 rotr $3,$3,2 2431 addu $1,$25 2432#else 2433 xor $9,$11 2434 sll $25,$2,5 # 64 2435 addu $1,$31 2436 srl $6,$2,27 2437 addu $1,$25 2438 xor $9,$17 2439 xor $25,$7,$24 2440 addu $1,$6 2441 xor $9,$22 2442 sll $30,$3,30 2443 xor $25,$3 2444 srl $6,$9,31 2445 addu $9,$9 2446 srl $3,$3,2 2447 addu $1,$8 2448 or $9,$6 2449 or $3,$30 2450 addu $1,$25 2451#endif 2452#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2453 xor $10,$12 2454 addu $24,$31 # 65 2455 rotr $6,$1,27 2456 xor $10,$18 2457 xor $25,$3,$7 2458 addu $24,$6 2459 xor $10,$23 2460 xor $25,$2 2461 addu $24,$9 2462 rotr $10,$10,31 2463 rotr $2,$2,2 2464 addu $24,$25 2465#else 2466 xor $10,$12 2467 sll $25,$1,5 # 65 2468 addu $24,$31 2469 srl $6,$1,27 2470 addu $24,$25 2471 xor $10,$18 2472 xor $25,$3,$7 2473 addu $24,$6 2474 xor $10,$23 2475 sll $30,$2,30 2476 xor $25,$2 2477 srl $6,$10,31 2478 addu $10,$10 2479 srl $2,$2,2 2480 addu $24,$9 2481 or $10,$6 2482 or $2,$30 2483 addu $24,$25 2484#endif 2485#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2486 xor $11,$13 2487 addu $7,$31 # 66 2488 rotr $6,$24,27 2489 xor $11,$19 2490 xor $25,$2,$3 2491 addu $7,$6 2492 xor $11,$8 2493 xor $25,$1 2494 addu $7,$10 2495 rotr $11,$11,31 2496 rotr $1,$1,2 2497 addu $7,$25 2498#else 2499 xor $11,$13 2500 sll $25,$24,5 # 66 2501 addu $7,$31 2502 srl $6,$24,27 2503 addu $7,$25 2504 xor $11,$19 2505 xor $25,$2,$3 2506 addu $7,$6 2507 xor $11,$8 2508 sll $30,$1,30 2509 xor $25,$1 2510 srl $6,$11,31 2511 addu $11,$11 2512 srl $1,$1,2 2513 addu $7,$10 2514 or $11,$6 2515 or $1,$30 2516 addu $7,$25 2517#endif 2518#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2519 xor $12,$14 2520 addu $3,$31 # 67 2521 rotr $6,$7,27 2522 xor $12,$20 2523 xor $25,$1,$2 2524 addu $3,$6 2525 xor $12,$9 2526 xor $25,$24 2527 addu $3,$11 2528 rotr $12,$12,31 2529 rotr $24,$24,2 2530 addu $3,$25 2531#else 2532 xor $12,$14 2533 sll $25,$7,5 # 67 2534 addu $3,$31 2535 srl $6,$7,27 2536 addu $3,$25 2537 xor $12,$20 2538 xor $25,$1,$2 2539 addu $3,$6 2540 xor $12,$9 2541 sll $30,$24,30 2542 xor $25,$24 2543 srl $6,$12,31 2544 addu $12,$12 2545 srl $24,$24,2 2546 addu $3,$11 2547 or $12,$6 2548 or $24,$30 2549 addu $3,$25 2550#endif 2551#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2552 xor $13,$15 2553 addu $2,$31 # 68 2554 rotr $6,$3,27 2555 xor $13,$21 2556 xor $25,$24,$1 2557 addu $2,$6 2558 xor $13,$10 2559 xor $25,$7 2560 addu $2,$12 2561 rotr $13,$13,31 2562 rotr $7,$7,2 2563 addu $2,$25 2564#else 2565 xor $13,$15 2566 sll $25,$3,5 # 68 2567 addu $2,$31 2568 srl $6,$3,27 2569 addu $2,$25 2570 xor $13,$21 2571 xor $25,$24,$1 2572 addu $2,$6 2573 xor $13,$10 2574 sll $30,$7,30 2575 xor $25,$7 2576 srl $6,$13,31 2577 addu $13,$13 2578 srl $7,$7,2 2579 addu $2,$12 2580 or $13,$6 2581 or $7,$30 2582 addu $2,$25 2583#endif 2584#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2585 xor $14,$16 2586 addu $1,$31 # 69 2587 rotr $6,$2,27 2588 xor $14,$22 2589 xor $25,$7,$24 2590 addu $1,$6 2591 xor $14,$11 2592 xor $25,$3 2593 addu $1,$13 2594 rotr $14,$14,31 2595 rotr $3,$3,2 2596 addu $1,$25 2597#else 2598 xor $14,$16 2599 sll $25,$2,5 # 69 2600 addu $1,$31 2601 srl $6,$2,27 2602 addu $1,$25 2603 xor $14,$22 2604 xor $25,$7,$24 2605 addu $1,$6 2606 xor $14,$11 2607 sll $30,$3,30 2608 xor $25,$3 2609 srl $6,$14,31 2610 addu $14,$14 2611 srl $3,$3,2 2612 addu $1,$13 2613 or $14,$6 2614 or $3,$30 2615 addu $1,$25 2616#endif 2617#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2618 xor $15,$17 2619 addu $24,$31 # 70 2620 rotr $6,$1,27 2621 xor $15,$23 2622 xor $25,$3,$7 2623 addu $24,$6 2624 xor $15,$12 2625 xor $25,$2 2626 addu $24,$14 2627 rotr $15,$15,31 2628 rotr $2,$2,2 2629 addu $24,$25 2630#else 2631 xor $15,$17 2632 sll $25,$1,5 # 70 2633 addu $24,$31 2634 srl $6,$1,27 2635 addu $24,$25 2636 xor $15,$23 2637 xor $25,$3,$7 2638 addu $24,$6 2639 xor $15,$12 2640 sll $30,$2,30 2641 xor $25,$2 2642 srl $6,$15,31 2643 addu $15,$15 2644 srl $2,$2,2 2645 addu $24,$14 2646 or $15,$6 2647 or $2,$30 2648 addu $24,$25 2649#endif 2650#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2651 xor $16,$18 2652 addu $7,$31 # 71 2653 rotr $6,$24,27 2654 xor $16,$8 2655 xor $25,$2,$3 2656 addu $7,$6 2657 xor $16,$13 2658 xor $25,$1 2659 addu $7,$15 2660 rotr $16,$16,31 2661 rotr $1,$1,2 2662 addu $7,$25 2663#else 2664 xor $16,$18 2665 sll $25,$24,5 # 71 2666 addu $7,$31 2667 srl $6,$24,27 2668 addu $7,$25 2669 xor $16,$8 2670 xor $25,$2,$3 2671 addu $7,$6 2672 xor $16,$13 2673 sll $30,$1,30 2674 xor $25,$1 2675 srl $6,$16,31 2676 addu $16,$16 2677 srl $1,$1,2 2678 addu $7,$15 2679 or $16,$6 2680 or $1,$30 2681 addu $7,$25 2682#endif 2683#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2684 xor $17,$19 2685 addu $3,$31 # 72 2686 rotr $6,$7,27 2687 xor $17,$9 2688 xor $25,$1,$2 2689 addu $3,$6 2690 xor $17,$14 2691 xor $25,$24 2692 addu $3,$16 2693 rotr $17,$17,31 2694 rotr $24,$24,2 2695 addu $3,$25 2696#else 2697 xor $17,$19 2698 sll $25,$7,5 # 72 2699 addu $3,$31 2700 srl $6,$7,27 2701 addu $3,$25 2702 xor $17,$9 2703 xor $25,$1,$2 2704 addu $3,$6 2705 xor $17,$14 2706 sll $30,$24,30 2707 xor $25,$24 2708 srl $6,$17,31 2709 addu $17,$17 2710 srl $24,$24,2 2711 addu $3,$16 2712 or $17,$6 2713 or $24,$30 2714 addu $3,$25 2715#endif 2716#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2717 xor $18,$20 2718 addu $2,$31 # 73 2719 rotr $6,$3,27 2720 xor $18,$10 2721 xor $25,$24,$1 2722 addu $2,$6 2723 xor $18,$15 2724 xor $25,$7 2725 addu $2,$17 2726 rotr $18,$18,31 2727 rotr $7,$7,2 2728 addu $2,$25 2729#else 2730 xor $18,$20 2731 sll $25,$3,5 # 73 2732 addu $2,$31 2733 srl $6,$3,27 2734 addu $2,$25 2735 xor $18,$10 2736 xor $25,$24,$1 2737 addu $2,$6 2738 xor $18,$15 2739 sll $30,$7,30 2740 xor $25,$7 2741 srl $6,$18,31 2742 addu $18,$18 2743 srl $7,$7,2 2744 addu $2,$17 2745 or $18,$6 2746 or $7,$30 2747 addu $2,$25 2748#endif 2749#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2750 xor $19,$21 2751 addu $1,$31 # 74 2752 rotr $6,$2,27 2753 xor $19,$11 2754 xor $25,$7,$24 2755 addu $1,$6 2756 xor $19,$16 2757 xor $25,$3 2758 addu $1,$18 2759 rotr $19,$19,31 2760 rotr $3,$3,2 2761 addu $1,$25 2762#else 2763 xor $19,$21 2764 sll $25,$2,5 # 74 2765 addu $1,$31 2766 srl $6,$2,27 2767 addu $1,$25 2768 xor $19,$11 2769 xor $25,$7,$24 2770 addu $1,$6 2771 xor $19,$16 2772 sll $30,$3,30 2773 xor $25,$3 2774 srl $6,$19,31 2775 addu $19,$19 2776 srl $3,$3,2 2777 addu $1,$18 2778 or $19,$6 2779 or $3,$30 2780 addu $1,$25 2781#endif 2782#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2783 xor $20,$22 2784 addu $24,$31 # 75 2785 rotr $6,$1,27 2786 xor $20,$12 2787 xor $25,$3,$7 2788 addu $24,$6 2789 xor $20,$17 2790 xor $25,$2 2791 addu $24,$19 2792 rotr $20,$20,31 2793 rotr $2,$2,2 2794 addu $24,$25 2795#else 2796 xor $20,$22 2797 sll $25,$1,5 # 75 2798 addu $24,$31 2799 srl $6,$1,27 2800 addu $24,$25 2801 xor $20,$12 2802 xor $25,$3,$7 2803 addu $24,$6 2804 xor $20,$17 2805 sll $30,$2,30 2806 xor $25,$2 2807 srl $6,$20,31 2808 addu $20,$20 2809 srl $2,$2,2 2810 addu $24,$19 2811 or $20,$6 2812 or $2,$30 2813 addu $24,$25 2814#endif 2815#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2816 xor $21,$23 2817 addu $7,$31 # 76 2818 rotr $6,$24,27 2819 xor $21,$13 2820 xor $25,$2,$3 2821 addu $7,$6 2822 xor $21,$18 2823 xor $25,$1 2824 addu $7,$20 2825 rotr $21,$21,31 2826 rotr $1,$1,2 2827 addu $7,$25 2828#else 2829 xor $21,$23 2830 sll $25,$24,5 # 76 2831 addu $7,$31 2832 srl $6,$24,27 2833 addu $7,$25 2834 xor $21,$13 2835 xor $25,$2,$3 2836 addu $7,$6 2837 xor $21,$18 2838 sll $30,$1,30 2839 xor $25,$1 2840 srl $6,$21,31 2841 addu $21,$21 2842 srl $1,$1,2 2843 addu $7,$20 2844 or $21,$6 2845 or $1,$30 2846 addu $7,$25 2847#endif 2848#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2849 xor $22,$8 2850 addu $3,$31 # 77 2851 rotr $6,$7,27 2852 xor $22,$14 2853 xor $25,$1,$2 2854 addu $3,$6 2855 xor $22,$19 2856 xor $25,$24 2857 addu $3,$21 2858 rotr $22,$22,31 2859 rotr $24,$24,2 2860 addu $3,$25 2861#else 2862 xor $22,$8 2863 sll $25,$7,5 # 77 2864 addu $3,$31 2865 srl $6,$7,27 2866 addu $3,$25 2867 xor $22,$14 2868 xor $25,$1,$2 2869 addu $3,$6 2870 xor $22,$19 2871 sll $30,$24,30 2872 xor $25,$24 2873 srl $6,$22,31 2874 addu $22,$22 2875 srl $24,$24,2 2876 addu $3,$21 2877 or $22,$6 2878 or $24,$30 2879 addu $3,$25 2880#endif 2881#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2882 xor $23,$9 2883 addu $2,$31 # 78 2884 rotr $6,$3,27 2885 xor $23,$15 2886 xor $25,$24,$1 2887 addu $2,$6 2888 xor $23,$20 2889 xor $25,$7 2890 addu $2,$22 2891 rotr $23,$23,31 2892 rotr $7,$7,2 2893 addu $2,$25 2894#else 2895 xor $23,$9 2896 sll $25,$3,5 # 78 2897 addu $2,$31 2898 srl $6,$3,27 2899 addu $2,$25 2900 xor $23,$15 2901 xor $25,$24,$1 2902 addu $2,$6 2903 xor $23,$20 2904 sll $30,$7,30 2905 xor $25,$7 2906 srl $6,$23,31 2907 addu $23,$23 2908 srl $7,$7,2 2909 addu $2,$22 2910 or $23,$6 2911 or $7,$30 2912 addu $2,$25 2913#endif 2914#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2) 2915 lw $8,0($4) 2916 addu $1,$31 # 79 2917 lw $9,4($4) 2918 rotr $6,$2,27 2919 lw $10,8($4) 2920 xor $25,$7,$24 2921 addu $1,$6 2922 lw $11,12($4) 2923 xor $25,$3 2924 addu $1,$23 2925 lw $12,16($4) 2926 rotr $3,$3,2 2927 addu $1,$25 2928#else 2929 lw $8,0($4) 2930 sll $25,$2,5 # 79 2931 addu $1,$31 2932 lw $9,4($4) 2933 srl $6,$2,27 2934 addu $1,$25 2935 lw $10,8($4) 2936 xor $25,$7,$24 2937 addu $1,$6 2938 lw $11,12($4) 2939 sll $30,$3,30 2940 xor $25,$3 2941 lw $12,16($4) 2942 srl $3,$3,2 2943 addu $1,$23 2944 or $3,$30 2945 addu $1,$25 2946#endif 2947 add $5,64 2948 lw $6,0($29) 2949 2950 addu $1,$8 2951 addu $2,$9 2952 sw $1,0($4) 2953 addu $3,$10 2954 addu $7,$11 2955 sw $2,4($4) 2956 addu $24,$12 2957 sw $3,8($4) 2958 sw $7,12($4) 2959 sw $24,16($4) 2960 .set noreorder 2961 bne $5,$6,.Loop 2962 nop 2963 2964 .set noreorder 2965 lw $31,(16-1)*4($29) 2966 lw $30,(16-2)*4($29) 2967 lw $23,(16-3)*4($29) 2968 lw $22,(16-4)*4($29) 2969 lw $21,(16-5)*4($29) 2970 lw $20,(16-6)*4($29) 2971 lw $19,(16-7)*4($29) 2972 lw $18,(16-8)*4($29) 2973 lw $17,(16-9)*4($29) 2974 lw $16,(16-10)*4($29) 2975 jr $31 2976 add $29,16*4 2977.end sha1_block_data_order 2978.rdata 2979.asciiz "SHA1 for MIPS, CRYPTOGAMS by <appro@openssl.org>" 2980