md5block_amd64.s (10477B)
1 // Code generated by command: go run gen.go -out ../md5block_amd64.s -stubs ../md5block_amd64.go -pkg=md5simd. DO NOT EDIT. 2 3 // +build !appengine 4 // +build !noasm 5 // +build gc 6 7 // func blockScalar(dig *[4]uint32, p []byte) 8 TEXT ·blockScalar(SB), $0-32 9 MOVQ p_len+16(FP), AX 10 MOVQ dig+0(FP), CX 11 MOVQ p_base+8(FP), DX 12 SHRQ $0x06, AX 13 SHLQ $0x06, AX 14 LEAQ (DX)(AX*1), AX 15 CMPQ DX, AX 16 JEQ end 17 MOVL (CX), BX 18 MOVL 4(CX), BP 19 MOVL 8(CX), SI 20 MOVL 12(CX), CX 21 MOVL $0xffffffff, DI 22 23 loop: 24 MOVL (DX), R8 25 MOVL CX, R9 26 MOVL BX, R10 27 MOVL BP, R11 28 MOVL SI, R12 29 MOVL CX, R13 30 31 // ROUND1 32 XORL SI, R9 33 ADDL $0xd76aa478, BX 34 ADDL R8, BX 35 ANDL BP, R9 36 XORL CX, R9 37 MOVL 4(DX), R8 38 ADDL R9, BX 39 ROLL $0x07, BX 40 MOVL SI, R9 41 ADDL BP, BX 42 XORL BP, R9 43 ADDL $0xe8c7b756, CX 44 ADDL R8, CX 45 ANDL BX, R9 46 XORL SI, R9 47 MOVL 8(DX), R8 48 ADDL R9, CX 49 ROLL $0x0c, CX 50 MOVL BP, R9 51 ADDL BX, CX 52 XORL BX, R9 53 ADDL $0x242070db, SI 54 ADDL R8, SI 55 ANDL CX, R9 56 XORL BP, R9 57 MOVL 12(DX), R8 58 ADDL R9, SI 59 ROLL $0x11, SI 60 MOVL BX, R9 61 ADDL CX, SI 62 XORL CX, R9 63 ADDL $0xc1bdceee, BP 64 ADDL R8, BP 65 ANDL SI, R9 66 XORL BX, R9 67 MOVL 16(DX), R8 68 ADDL R9, BP 69 ROLL $0x16, BP 70 MOVL CX, R9 71 ADDL SI, BP 72 XORL SI, R9 73 ADDL $0xf57c0faf, BX 74 ADDL R8, BX 75 ANDL BP, R9 76 XORL CX, R9 77 MOVL 20(DX), R8 78 ADDL R9, BX 79 ROLL $0x07, BX 80 MOVL SI, R9 81 ADDL BP, BX 82 XORL BP, R9 83 ADDL $0x4787c62a, CX 84 ADDL R8, CX 85 ANDL BX, R9 86 XORL SI, R9 87 MOVL 24(DX), R8 88 ADDL R9, CX 89 ROLL $0x0c, CX 90 MOVL BP, R9 91 ADDL BX, CX 92 XORL BX, R9 93 ADDL $0xa8304613, SI 94 ADDL R8, SI 95 ANDL CX, R9 96 XORL BP, R9 97 MOVL 28(DX), R8 98 ADDL R9, SI 99 ROLL $0x11, SI 100 MOVL BX, R9 101 ADDL CX, SI 102 XORL CX, R9 103 ADDL $0xfd469501, BP 104 ADDL R8, BP 105 ANDL SI, R9 106 XORL BX, R9 107 MOVL 32(DX), R8 108 ADDL R9, BP 109 ROLL $0x16, BP 110 MOVL CX, R9 111 ADDL SI, BP 112 XORL SI, R9 113 ADDL $0x698098d8, BX 114 ADDL R8, BX 115 ANDL BP, R9 116 XORL CX, R9 117 MOVL 36(DX), R8 118 ADDL R9, BX 119 ROLL $0x07, BX 120 MOVL SI, R9 121 ADDL BP, BX 122 XORL BP, R9 123 ADDL $0x8b44f7af, CX 124 ADDL R8, CX 125 ANDL BX, R9 126 XORL SI, R9 127 MOVL 40(DX), R8 128 ADDL R9, CX 129 ROLL $0x0c, CX 130 MOVL BP, R9 131 ADDL BX, CX 132 XORL BX, R9 133 ADDL $0xffff5bb1, SI 134 ADDL R8, SI 135 ANDL CX, R9 136 XORL BP, R9 137 MOVL 44(DX), R8 138 ADDL R9, SI 139 ROLL $0x11, SI 140 MOVL BX, R9 141 ADDL CX, SI 142 XORL CX, R9 143 ADDL $0x895cd7be, BP 144 ADDL R8, BP 145 ANDL SI, R9 146 XORL BX, R9 147 MOVL 48(DX), R8 148 ADDL R9, BP 149 ROLL $0x16, BP 150 MOVL CX, R9 151 ADDL SI, BP 152 XORL SI, R9 153 ADDL $0x6b901122, BX 154 ADDL R8, BX 155 ANDL BP, R9 156 XORL CX, R9 157 MOVL 52(DX), R8 158 ADDL R9, BX 159 ROLL $0x07, BX 160 MOVL SI, R9 161 ADDL BP, BX 162 XORL BP, R9 163 ADDL $0xfd987193, CX 164 ADDL R8, CX 165 ANDL BX, R9 166 XORL SI, R9 167 MOVL 56(DX), R8 168 ADDL R9, CX 169 ROLL $0x0c, CX 170 MOVL BP, R9 171 ADDL BX, CX 172 XORL BX, R9 173 ADDL $0xa679438e, SI 174 ADDL R8, SI 175 ANDL CX, R9 176 XORL BP, R9 177 MOVL 60(DX), R8 178 ADDL R9, SI 179 ROLL $0x11, SI 180 MOVL BX, R9 181 ADDL CX, SI 182 XORL CX, R9 183 ADDL $0x49b40821, BP 184 ADDL R8, BP 185 ANDL SI, R9 186 XORL BX, R9 187 MOVL 4(DX), R8 188 ADDL R9, BP 189 ROLL $0x16, BP 190 MOVL CX, R9 191 ADDL SI, BP 192 193 // ROUND2 194 MOVL CX, R9 195 MOVL CX, R14 196 XORL DI, R9 197 ADDL $0xf61e2562, BX 198 ADDL R8, BX 199 ANDL BP, R14 200 ANDL SI, R9 201 MOVL 24(DX), R8 202 ORL R9, R14 203 MOVL SI, R9 204 ADDL R14, BX 205 MOVL SI, R14 206 ROLL $0x05, BX 207 ADDL BP, BX 208 XORL DI, R9 209 ADDL $0xc040b340, CX 210 ADDL R8, CX 211 ANDL BX, R14 212 ANDL BP, R9 213 MOVL 44(DX), R8 214 ORL R9, R14 215 MOVL BP, R9 216 ADDL R14, CX 217 MOVL BP, R14 218 ROLL $0x09, CX 219 ADDL BX, CX 220 XORL DI, R9 221 ADDL $0x265e5a51, SI 222 ADDL R8, SI 223 ANDL CX, R14 224 ANDL BX, R9 225 MOVL (DX), R8 226 ORL R9, R14 227 MOVL BX, R9 228 ADDL R14, SI 229 MOVL BX, R14 230 ROLL $0x0e, SI 231 ADDL CX, SI 232 XORL DI, R9 233 ADDL $0xe9b6c7aa, BP 234 ADDL R8, BP 235 ANDL SI, R14 236 ANDL CX, R9 237 MOVL 20(DX), R8 238 ORL R9, R14 239 MOVL CX, R9 240 ADDL R14, BP 241 MOVL CX, R14 242 ROLL $0x14, BP 243 ADDL SI, BP 244 XORL DI, R9 245 ADDL $0xd62f105d, BX 246 ADDL R8, BX 247 ANDL BP, R14 248 ANDL SI, R9 249 MOVL 40(DX), R8 250 ORL R9, R14 251 MOVL SI, R9 252 ADDL R14, BX 253 MOVL SI, R14 254 ROLL $0x05, BX 255 ADDL BP, BX 256 XORL DI, R9 257 ADDL $0x02441453, CX 258 ADDL R8, CX 259 ANDL BX, R14 260 ANDL BP, R9 261 MOVL 60(DX), R8 262 ORL R9, R14 263 MOVL BP, R9 264 ADDL R14, CX 265 MOVL BP, R14 266 ROLL $0x09, CX 267 ADDL BX, CX 268 XORL DI, R9 269 ADDL $0xd8a1e681, SI 270 ADDL R8, SI 271 ANDL CX, R14 272 ANDL BX, R9 273 MOVL 16(DX), R8 274 ORL R9, R14 275 MOVL BX, R9 276 ADDL R14, SI 277 MOVL BX, R14 278 ROLL $0x0e, SI 279 ADDL CX, SI 280 XORL DI, R9 281 ADDL $0xe7d3fbc8, BP 282 ADDL R8, BP 283 ANDL SI, R14 284 ANDL CX, R9 285 MOVL 36(DX), R8 286 ORL R9, R14 287 MOVL CX, R9 288 ADDL R14, BP 289 MOVL CX, R14 290 ROLL $0x14, BP 291 ADDL SI, BP 292 XORL DI, R9 293 ADDL $0x21e1cde6, BX 294 ADDL R8, BX 295 ANDL BP, R14 296 ANDL SI, R9 297 MOVL 56(DX), R8 298 ORL R9, R14 299 MOVL SI, R9 300 ADDL R14, BX 301 MOVL SI, R14 302 ROLL $0x05, BX 303 ADDL BP, BX 304 XORL DI, R9 305 ADDL $0xc33707d6, CX 306 ADDL R8, CX 307 ANDL BX, R14 308 ANDL BP, R9 309 MOVL 12(DX), R8 310 ORL R9, R14 311 MOVL BP, R9 312 ADDL R14, CX 313 MOVL BP, R14 314 ROLL $0x09, CX 315 ADDL BX, CX 316 XORL DI, R9 317 ADDL $0xf4d50d87, SI 318 ADDL R8, SI 319 ANDL CX, R14 320 ANDL BX, R9 321 MOVL 32(DX), R8 322 ORL R9, R14 323 MOVL BX, R9 324 ADDL R14, SI 325 MOVL BX, R14 326 ROLL $0x0e, SI 327 ADDL CX, SI 328 XORL DI, R9 329 ADDL $0x455a14ed, BP 330 ADDL R8, BP 331 ANDL SI, R14 332 ANDL CX, R9 333 MOVL 52(DX), R8 334 ORL R9, R14 335 MOVL CX, R9 336 ADDL R14, BP 337 MOVL CX, R14 338 ROLL $0x14, BP 339 ADDL SI, BP 340 XORL DI, R9 341 ADDL $0xa9e3e905, BX 342 ADDL R8, BX 343 ANDL BP, R14 344 ANDL SI, R9 345 MOVL 8(DX), R8 346 ORL R9, R14 347 MOVL SI, R9 348 ADDL R14, BX 349 MOVL SI, R14 350 ROLL $0x05, BX 351 ADDL BP, BX 352 XORL DI, R9 353 ADDL $0xfcefa3f8, CX 354 ADDL R8, CX 355 ANDL BX, R14 356 ANDL BP, R9 357 MOVL 28(DX), R8 358 ORL R9, R14 359 MOVL BP, R9 360 ADDL R14, CX 361 MOVL BP, R14 362 ROLL $0x09, CX 363 ADDL BX, CX 364 XORL DI, R9 365 ADDL $0x676f02d9, SI 366 ADDL R8, SI 367 ANDL CX, R14 368 ANDL BX, R9 369 MOVL 48(DX), R8 370 ORL R9, R14 371 MOVL BX, R9 372 ADDL R14, SI 373 MOVL BX, R14 374 ROLL $0x0e, SI 375 ADDL CX, SI 376 XORL DI, R9 377 ADDL $0x8d2a4c8a, BP 378 ADDL R8, BP 379 ANDL SI, R14 380 ANDL CX, R9 381 MOVL 20(DX), R8 382 ORL R9, R14 383 MOVL CX, R9 384 ADDL R14, BP 385 MOVL CX, R14 386 ROLL $0x14, BP 387 ADDL SI, BP 388 389 // ROUND3 390 MOVL SI, R9 391 ADDL $0xfffa3942, BX 392 ADDL R8, BX 393 MOVL 32(DX), R8 394 XORL CX, R9 395 XORL BP, R9 396 ADDL R9, BX 397 ROLL $0x04, BX 398 MOVL BP, R9 399 ADDL BP, BX 400 ADDL $0x8771f681, CX 401 ADDL R8, CX 402 MOVL 44(DX), R8 403 XORL SI, R9 404 XORL BX, R9 405 ADDL R9, CX 406 ROLL $0x0b, CX 407 MOVL BX, R9 408 ADDL BX, CX 409 ADDL $0x6d9d6122, SI 410 ADDL R8, SI 411 MOVL 56(DX), R8 412 XORL BP, R9 413 XORL CX, R9 414 ADDL R9, SI 415 ROLL $0x10, SI 416 MOVL CX, R9 417 ADDL CX, SI 418 ADDL $0xfde5380c, BP 419 ADDL R8, BP 420 MOVL 4(DX), R8 421 XORL BX, R9 422 XORL SI, R9 423 ADDL R9, BP 424 ROLL $0x17, BP 425 MOVL SI, R9 426 ADDL SI, BP 427 ADDL $0xa4beea44, BX 428 ADDL R8, BX 429 MOVL 16(DX), R8 430 XORL CX, R9 431 XORL BP, R9 432 ADDL R9, BX 433 ROLL $0x04, BX 434 MOVL BP, R9 435 ADDL BP, BX 436 ADDL $0x4bdecfa9, CX 437 ADDL R8, CX 438 MOVL 28(DX), R8 439 XORL SI, R9 440 XORL BX, R9 441 ADDL R9, CX 442 ROLL $0x0b, CX 443 MOVL BX, R9 444 ADDL BX, CX 445 ADDL $0xf6bb4b60, SI 446 ADDL R8, SI 447 MOVL 40(DX), R8 448 XORL BP, R9 449 XORL CX, R9 450 ADDL R9, SI 451 ROLL $0x10, SI 452 MOVL CX, R9 453 ADDL CX, SI 454 ADDL $0xbebfbc70, BP 455 ADDL R8, BP 456 MOVL 52(DX), R8 457 XORL BX, R9 458 XORL SI, R9 459 ADDL R9, BP 460 ROLL $0x17, BP 461 MOVL SI, R9 462 ADDL SI, BP 463 ADDL $0x289b7ec6, BX 464 ADDL R8, BX 465 MOVL (DX), R8 466 XORL CX, R9 467 XORL BP, R9 468 ADDL R9, BX 469 ROLL $0x04, BX 470 MOVL BP, R9 471 ADDL BP, BX 472 ADDL $0xeaa127fa, CX 473 ADDL R8, CX 474 MOVL 12(DX), R8 475 XORL SI, R9 476 XORL BX, R9 477 ADDL R9, CX 478 ROLL $0x0b, CX 479 MOVL BX, R9 480 ADDL BX, CX 481 ADDL $0xd4ef3085, SI 482 ADDL R8, SI 483 MOVL 24(DX), R8 484 XORL BP, R9 485 XORL CX, R9 486 ADDL R9, SI 487 ROLL $0x10, SI 488 MOVL CX, R9 489 ADDL CX, SI 490 ADDL $0x04881d05, BP 491 ADDL R8, BP 492 MOVL 36(DX), R8 493 XORL BX, R9 494 XORL SI, R9 495 ADDL R9, BP 496 ROLL $0x17, BP 497 MOVL SI, R9 498 ADDL SI, BP 499 ADDL $0xd9d4d039, BX 500 ADDL R8, BX 501 MOVL 48(DX), R8 502 XORL CX, R9 503 XORL BP, R9 504 ADDL R9, BX 505 ROLL $0x04, BX 506 MOVL BP, R9 507 ADDL BP, BX 508 ADDL $0xe6db99e5, CX 509 ADDL R8, CX 510 MOVL 60(DX), R8 511 XORL SI, R9 512 XORL BX, R9 513 ADDL R9, CX 514 ROLL $0x0b, CX 515 MOVL BX, R9 516 ADDL BX, CX 517 ADDL $0x1fa27cf8, SI 518 ADDL R8, SI 519 MOVL 8(DX), R8 520 XORL BP, R9 521 XORL CX, R9 522 ADDL R9, SI 523 ROLL $0x10, SI 524 MOVL CX, R9 525 ADDL CX, SI 526 ADDL $0xc4ac5665, BP 527 ADDL R8, BP 528 MOVL (DX), R8 529 XORL BX, R9 530 XORL SI, R9 531 ADDL R9, BP 532 ROLL $0x17, BP 533 MOVL SI, R9 534 ADDL SI, BP 535 536 // ROUND4 537 MOVL DI, R9 538 XORL CX, R9 539 ADDL $0xf4292244, BX 540 ADDL R8, BX 541 ORL BP, R9 542 XORL SI, R9 543 ADDL R9, BX 544 MOVL 28(DX), R8 545 MOVL DI, R9 546 ROLL $0x06, BX 547 XORL SI, R9 548 ADDL BP, BX 549 ADDL $0x432aff97, CX 550 ADDL R8, CX 551 ORL BX, R9 552 XORL BP, R9 553 ADDL R9, CX 554 MOVL 56(DX), R8 555 MOVL DI, R9 556 ROLL $0x0a, CX 557 XORL BP, R9 558 ADDL BX, CX 559 ADDL $0xab9423a7, SI 560 ADDL R8, SI 561 ORL CX, R9 562 XORL BX, R9 563 ADDL R9, SI 564 MOVL 20(DX), R8 565 MOVL DI, R9 566 ROLL $0x0f, SI 567 XORL BX, R9 568 ADDL CX, SI 569 ADDL $0xfc93a039, BP 570 ADDL R8, BP 571 ORL SI, R9 572 XORL CX, R9 573 ADDL R9, BP 574 MOVL 48(DX), R8 575 MOVL DI, R9 576 ROLL $0x15, BP 577 XORL CX, R9 578 ADDL SI, BP 579 ADDL $0x655b59c3, BX 580 ADDL R8, BX 581 ORL BP, R9 582 XORL SI, R9 583 ADDL R9, BX 584 MOVL 12(DX), R8 585 MOVL DI, R9 586 ROLL $0x06, BX 587 XORL SI, R9 588 ADDL BP, BX 589 ADDL $0x8f0ccc92, CX 590 ADDL R8, CX 591 ORL BX, R9 592 XORL BP, R9 593 ADDL R9, CX 594 MOVL 40(DX), R8 595 MOVL DI, R9 596 ROLL $0x0a, CX 597 XORL BP, R9 598 ADDL BX, CX 599 ADDL $0xffeff47d, SI 600 ADDL R8, SI 601 ORL CX, R9 602 XORL BX, R9 603 ADDL R9, SI 604 MOVL 4(DX), R8 605 MOVL DI, R9 606 ROLL $0x0f, SI 607 XORL BX, R9 608 ADDL CX, SI 609 ADDL $0x85845dd1, BP 610 ADDL R8, BP 611 ORL SI, R9 612 XORL CX, R9 613 ADDL R9, BP 614 MOVL 32(DX), R8 615 MOVL DI, R9 616 ROLL $0x15, BP 617 XORL CX, R9 618 ADDL SI, BP 619 ADDL $0x6fa87e4f, BX 620 ADDL R8, BX 621 ORL BP, R9 622 XORL SI, R9 623 ADDL R9, BX 624 MOVL 60(DX), R8 625 MOVL DI, R9 626 ROLL $0x06, BX 627 XORL SI, R9 628 ADDL BP, BX 629 ADDL $0xfe2ce6e0, CX 630 ADDL R8, CX 631 ORL BX, R9 632 XORL BP, R9 633 ADDL R9, CX 634 MOVL 24(DX), R8 635 MOVL DI, R9 636 ROLL $0x0a, CX 637 XORL BP, R9 638 ADDL BX, CX 639 ADDL $0xa3014314, SI 640 ADDL R8, SI 641 ORL CX, R9 642 XORL BX, R9 643 ADDL R9, SI 644 MOVL 52(DX), R8 645 MOVL DI, R9 646 ROLL $0x0f, SI 647 XORL BX, R9 648 ADDL CX, SI 649 ADDL $0x4e0811a1, BP 650 ADDL R8, BP 651 ORL SI, R9 652 XORL CX, R9 653 ADDL R9, BP 654 MOVL 16(DX), R8 655 MOVL DI, R9 656 ROLL $0x15, BP 657 XORL CX, R9 658 ADDL SI, BP 659 ADDL $0xf7537e82, BX 660 ADDL R8, BX 661 ORL BP, R9 662 XORL SI, R9 663 ADDL R9, BX 664 MOVL 44(DX), R8 665 MOVL DI, R9 666 ROLL $0x06, BX 667 XORL SI, R9 668 ADDL BP, BX 669 ADDL $0xbd3af235, CX 670 ADDL R8, CX 671 ORL BX, R9 672 XORL BP, R9 673 ADDL R9, CX 674 MOVL 8(DX), R8 675 MOVL DI, R9 676 ROLL $0x0a, CX 677 XORL BP, R9 678 ADDL BX, CX 679 ADDL $0x2ad7d2bb, SI 680 ADDL R8, SI 681 ORL CX, R9 682 XORL BX, R9 683 ADDL R9, SI 684 MOVL 36(DX), R8 685 MOVL DI, R9 686 ROLL $0x0f, SI 687 XORL BX, R9 688 ADDL CX, SI 689 ADDL $0xeb86d391, BP 690 ADDL R8, BP 691 ORL SI, R9 692 XORL CX, R9 693 ADDL R9, BP 694 ROLL $0x15, BP 695 ADDL SI, BP 696 ADDL R10, BX 697 ADDL R11, BP 698 ADDL R12, SI 699 ADDL R13, CX 700 701 // Prepare next loop 702 ADDQ $0x40, DX 703 CMPQ DX, AX 704 JB loop 705 706 // Write output 707 MOVQ dig+0(FP), AX 708 MOVL BX, (AX) 709 MOVL BP, 4(AX) 710 MOVL SI, 8(AX) 711 MOVL CX, 12(AX) 712 713 end: 714 RET