1 #if defined(__x86_64__) 2 .text 3 .p2align 4 4 5 .globl _md5_block_asm_data_order 6 .private_extern _md5_block_asm_data_order 7 8 _md5_block_asm_data_order: 9 pushq %rbp 10 pushq %rbx 11 pushq %r12 12 pushq %r14 13 pushq %r15 14 L$prologue: 15 16 17 18 19 movq %rdi,%rbp 20 shlq $6,%rdx 21 leaq (%rsi,%rdx,1),%rdi 22 movl 0(%rbp),%eax 23 movl 4(%rbp),%ebx 24 movl 8(%rbp),%ecx 25 movl 12(%rbp),%edx 26 27 28 29 30 31 32 33 cmpq %rdi,%rsi 34 je L$end 35 36 37 L$loop: 38 movl %eax,%r8d 39 movl %ebx,%r9d 40 movl %ecx,%r14d 41 movl %edx,%r15d 42 movl 0(%rsi),%r10d 43 movl %edx,%r11d 44 xorl %ecx,%r11d 45 leal -680876936(%rax,%r10,1),%eax 46 andl %ebx,%r11d 47 xorl %edx,%r11d 48 movl 4(%rsi),%r10d 49 addl %r11d,%eax 50 roll $7,%eax 51 movl %ecx,%r11d 52 addl %ebx,%eax 53 xorl %ebx,%r11d 54 leal -389564586(%rdx,%r10,1),%edx 55 andl %eax,%r11d 56 xorl %ecx,%r11d 57 movl 8(%rsi),%r10d 58 addl %r11d,%edx 59 roll $12,%edx 60 movl %ebx,%r11d 61 addl %eax,%edx 62 xorl %eax,%r11d 63 leal 606105819(%rcx,%r10,1),%ecx 64 andl %edx,%r11d 65 xorl %ebx,%r11d 66 movl 12(%rsi),%r10d 67 addl %r11d,%ecx 68 roll $17,%ecx 69 movl %eax,%r11d 70 addl %edx,%ecx 71 xorl %edx,%r11d 72 leal -1044525330(%rbx,%r10,1),%ebx 73 andl %ecx,%r11d 74 xorl %eax,%r11d 75 movl 16(%rsi),%r10d 76 addl %r11d,%ebx 77 roll $22,%ebx 78 movl %edx,%r11d 79 addl %ecx,%ebx 80 xorl %ecx,%r11d 81 leal -176418897(%rax,%r10,1),%eax 82 andl %ebx,%r11d 83 xorl %edx,%r11d 84 movl 20(%rsi),%r10d 85 addl %r11d,%eax 86 roll $7,%eax 87 movl %ecx,%r11d 88 addl %ebx,%eax 89 xorl %ebx,%r11d 90 leal 1200080426(%rdx,%r10,1),%edx 91 andl %eax,%r11d 92 xorl %ecx,%r11d 93 movl 24(%rsi),%r10d 94 addl %r11d,%edx 95 roll $12,%edx 96 movl %ebx,%r11d 97 addl %eax,%edx 98 xorl %eax,%r11d 99 leal -1473231341(%rcx,%r10,1),%ecx 100 andl %edx,%r11d 101 xorl %ebx,%r11d 102 movl 28(%rsi),%r10d 103 addl %r11d,%ecx 104 roll $17,%ecx 105 movl %eax,%r11d 106 addl %edx,%ecx 107 xorl %edx,%r11d 108 leal -45705983(%rbx,%r10,1),%ebx 109 andl %ecx,%r11d 110 xorl %eax,%r11d 111 movl 32(%rsi),%r10d 112 addl %r11d,%ebx 113 roll $22,%ebx 114 movl %edx,%r11d 115 addl %ecx,%ebx 116 xorl %ecx,%r11d 117 leal 1770035416(%rax,%r10,1),%eax 118 andl %ebx,%r11d 119 xorl %edx,%r11d 120 movl 36(%rsi),%r10d 121 addl %r11d,%eax 122 roll $7,%eax 123 movl %ecx,%r11d 124 addl %ebx,%eax 125 xorl %ebx,%r11d 126 leal -1958414417(%rdx,%r10,1),%edx 127 andl %eax,%r11d 128 xorl %ecx,%r11d 129 movl 40(%rsi),%r10d 130 addl %r11d,%edx 131 roll $12,%edx 132 movl %ebx,%r11d 133 addl %eax,%edx 134 xorl %eax,%r11d 135 leal -42063(%rcx,%r10,1),%ecx 136 andl %edx,%r11d 137 xorl %ebx,%r11d 138 movl 44(%rsi),%r10d 139 addl %r11d,%ecx 140 roll $17,%ecx 141 movl %eax,%r11d 142 addl %edx,%ecx 143 xorl %edx,%r11d 144 leal -1990404162(%rbx,%r10,1),%ebx 145 andl %ecx,%r11d 146 xorl %eax,%r11d 147 movl 48(%rsi),%r10d 148 addl %r11d,%ebx 149 roll $22,%ebx 150 movl %edx,%r11d 151 addl %ecx,%ebx 152 xorl %ecx,%r11d 153 leal 1804603682(%rax,%r10,1),%eax 154 andl %ebx,%r11d 155 xorl %edx,%r11d 156 movl 52(%rsi),%r10d 157 addl %r11d,%eax 158 roll $7,%eax 159 movl %ecx,%r11d 160 addl %ebx,%eax 161 xorl %ebx,%r11d 162 leal -40341101(%rdx,%r10,1),%edx 163 andl %eax,%r11d 164 xorl %ecx,%r11d 165 movl 56(%rsi),%r10d 166 addl %r11d,%edx 167 roll $12,%edx 168 movl %ebx,%r11d 169 addl %eax,%edx 170 xorl %eax,%r11d 171 leal -1502002290(%rcx,%r10,1),%ecx 172 andl %edx,%r11d 173 xorl %ebx,%r11d 174 movl 60(%rsi),%r10d 175 addl %r11d,%ecx 176 roll $17,%ecx 177 movl %eax,%r11d 178 addl %edx,%ecx 179 xorl %edx,%r11d 180 leal 1236535329(%rbx,%r10,1),%ebx 181 andl %ecx,%r11d 182 xorl %eax,%r11d 183 movl 0(%rsi),%r10d 184 addl %r11d,%ebx 185 roll $22,%ebx 186 movl %edx,%r11d 187 addl %ecx,%ebx 188 movl 4(%rsi),%r10d 189 movl %edx,%r11d 190 movl %edx,%r12d 191 notl %r11d 192 leal -165796510(%rax,%r10,1),%eax 193 andl %ebx,%r12d 194 andl %ecx,%r11d 195 movl 24(%rsi),%r10d 196 orl %r11d,%r12d 197 movl %ecx,%r11d 198 addl %r12d,%eax 199 movl %ecx,%r12d 200 roll $5,%eax 201 addl %ebx,%eax 202 notl %r11d 203 leal -1069501632(%rdx,%r10,1),%edx 204 andl %eax,%r12d 205 andl %ebx,%r11d 206 movl 44(%rsi),%r10d 207 orl %r11d,%r12d 208 movl %ebx,%r11d 209 addl %r12d,%edx 210 movl %ebx,%r12d 211 roll $9,%edx 212 addl %eax,%edx 213 notl %r11d 214 leal 643717713(%rcx,%r10,1),%ecx 215 andl %edx,%r12d 216 andl %eax,%r11d 217 movl 0(%rsi),%r10d 218 orl %r11d,%r12d 219 movl %eax,%r11d 220 addl %r12d,%ecx 221 movl %eax,%r12d 222 roll $14,%ecx 223 addl %edx,%ecx 224 notl %r11d 225 leal -373897302(%rbx,%r10,1),%ebx 226 andl %ecx,%r12d 227 andl %edx,%r11d 228 movl 20(%rsi),%r10d 229 orl %r11d,%r12d 230 movl %edx,%r11d 231 addl %r12d,%ebx 232 movl %edx,%r12d 233 roll $20,%ebx 234 addl %ecx,%ebx 235 notl %r11d 236 leal -701558691(%rax,%r10,1),%eax 237 andl %ebx,%r12d 238 andl %ecx,%r11d 239 movl 40(%rsi),%r10d 240 orl %r11d,%r12d 241 movl %ecx,%r11d 242 addl %r12d,%eax 243 movl %ecx,%r12d 244 roll $5,%eax 245 addl %ebx,%eax 246 notl %r11d 247 leal 38016083(%rdx,%r10,1),%edx 248 andl %eax,%r12d 249 andl %ebx,%r11d 250 movl 60(%rsi),%r10d 251 orl %r11d,%r12d 252 movl %ebx,%r11d 253 addl %r12d,%edx 254 movl %ebx,%r12d 255 roll $9,%edx 256 addl %eax,%edx 257 notl %r11d 258 leal -660478335(%rcx,%r10,1),%ecx 259 andl %edx,%r12d 260 andl %eax,%r11d 261 movl 16(%rsi),%r10d 262 orl %r11d,%r12d 263 movl %eax,%r11d 264 addl %r12d,%ecx 265 movl %eax,%r12d 266 roll $14,%ecx 267 addl %edx,%ecx 268 notl %r11d 269 leal -405537848(%rbx,%r10,1),%ebx 270 andl %ecx,%r12d 271 andl %edx,%r11d 272 movl 36(%rsi),%r10d 273 orl %r11d,%r12d 274 movl %edx,%r11d 275 addl %r12d,%ebx 276 movl %edx,%r12d 277 roll $20,%ebx 278 addl %ecx,%ebx 279 notl %r11d 280 leal 568446438(%rax,%r10,1),%eax 281 andl %ebx,%r12d 282 andl %ecx,%r11d 283 movl 56(%rsi),%r10d 284 orl %r11d,%r12d 285 movl %ecx,%r11d 286 addl %r12d,%eax 287 movl %ecx,%r12d 288 roll $5,%eax 289 addl %ebx,%eax 290 notl %r11d 291 leal -1019803690(%rdx,%r10,1),%edx 292 andl %eax,%r12d 293 andl %ebx,%r11d 294 movl 12(%rsi),%r10d 295 orl %r11d,%r12d 296 movl %ebx,%r11d 297 addl %r12d,%edx 298 movl %ebx,%r12d 299 roll $9,%edx 300 addl %eax,%edx 301 notl %r11d 302 leal -187363961(%rcx,%r10,1),%ecx 303 andl %edx,%r12d 304 andl %eax,%r11d 305 movl 32(%rsi),%r10d 306 orl %r11d,%r12d 307 movl %eax,%r11d 308 addl %r12d,%ecx 309 movl %eax,%r12d 310 roll $14,%ecx 311 addl %edx,%ecx 312 notl %r11d 313 leal 1163531501(%rbx,%r10,1),%ebx 314 andl %ecx,%r12d 315 andl %edx,%r11d 316 movl 52(%rsi),%r10d 317 orl %r11d,%r12d 318 movl %edx,%r11d 319 addl %r12d,%ebx 320 movl %edx,%r12d 321 roll $20,%ebx 322 addl %ecx,%ebx 323 notl %r11d 324 leal -1444681467(%rax,%r10,1),%eax 325 andl %ebx,%r12d 326 andl %ecx,%r11d 327 movl 8(%rsi),%r10d 328 orl %r11d,%r12d 329 movl %ecx,%r11d 330 addl %r12d,%eax 331 movl %ecx,%r12d 332 roll $5,%eax 333 addl %ebx,%eax 334 notl %r11d 335 leal -51403784(%rdx,%r10,1),%edx 336 andl %eax,%r12d 337 andl %ebx,%r11d 338 movl 28(%rsi),%r10d 339 orl %r11d,%r12d 340 movl %ebx,%r11d 341 addl %r12d,%edx 342 movl %ebx,%r12d 343 roll $9,%edx 344 addl %eax,%edx 345 notl %r11d 346 leal 1735328473(%rcx,%r10,1),%ecx 347 andl %edx,%r12d 348 andl %eax,%r11d 349 movl 48(%rsi),%r10d 350 orl %r11d,%r12d 351 movl %eax,%r11d 352 addl %r12d,%ecx 353 movl %eax,%r12d 354 roll $14,%ecx 355 addl %edx,%ecx 356 notl %r11d 357 leal -1926607734(%rbx,%r10,1),%ebx 358 andl %ecx,%r12d 359 andl %edx,%r11d 360 movl 0(%rsi),%r10d 361 orl %r11d,%r12d 362 movl %edx,%r11d 363 addl %r12d,%ebx 364 movl %edx,%r12d 365 roll $20,%ebx 366 addl %ecx,%ebx 367 movl 20(%rsi),%r10d 368 movl %ecx,%r11d 369 leal -378558(%rax,%r10,1),%eax 370 movl 32(%rsi),%r10d 371 xorl %edx,%r11d 372 xorl %ebx,%r11d 373 addl %r11d,%eax 374 roll $4,%eax 375 movl %ebx,%r11d 376 addl %ebx,%eax 377 leal -2022574463(%rdx,%r10,1),%edx 378 movl 44(%rsi),%r10d 379 xorl %ecx,%r11d 380 xorl %eax,%r11d 381 addl %r11d,%edx 382 roll $11,%edx 383 movl %eax,%r11d 384 addl %eax,%edx 385 leal 1839030562(%rcx,%r10,1),%ecx 386 movl 56(%rsi),%r10d 387 xorl %ebx,%r11d 388 xorl %edx,%r11d 389 addl %r11d,%ecx 390 roll $16,%ecx 391 movl %edx,%r11d 392 addl %edx,%ecx 393 leal -35309556(%rbx,%r10,1),%ebx 394 movl 4(%rsi),%r10d 395 xorl %eax,%r11d 396 xorl %ecx,%r11d 397 addl %r11d,%ebx 398 roll $23,%ebx 399 movl %ecx,%r11d 400 addl %ecx,%ebx 401 leal -1530992060(%rax,%r10,1),%eax 402 movl 16(%rsi),%r10d 403 xorl %edx,%r11d 404 xorl %ebx,%r11d 405 addl %r11d,%eax 406 roll $4,%eax 407 movl %ebx,%r11d 408 addl %ebx,%eax 409 leal 1272893353(%rdx,%r10,1),%edx 410 movl 28(%rsi),%r10d 411 xorl %ecx,%r11d 412 xorl %eax,%r11d 413 addl %r11d,%edx 414 roll $11,%edx 415 movl %eax,%r11d 416 addl %eax,%edx 417 leal -155497632(%rcx,%r10,1),%ecx 418 movl 40(%rsi),%r10d 419 xorl %ebx,%r11d 420 xorl %edx,%r11d 421 addl %r11d,%ecx 422 roll $16,%ecx 423 movl %edx,%r11d 424 addl %edx,%ecx 425 leal -1094730640(%rbx,%r10,1),%ebx 426 movl 52(%rsi),%r10d 427 xorl %eax,%r11d 428 xorl %ecx,%r11d 429 addl %r11d,%ebx 430 roll $23,%ebx 431 movl %ecx,%r11d 432 addl %ecx,%ebx 433 leal 681279174(%rax,%r10,1),%eax 434 movl 0(%rsi),%r10d 435 xorl %edx,%r11d 436 xorl %ebx,%r11d 437 addl %r11d,%eax 438 roll $4,%eax 439 movl %ebx,%r11d 440 addl %ebx,%eax 441 leal -358537222(%rdx,%r10,1),%edx 442 movl 12(%rsi),%r10d 443 xorl %ecx,%r11d 444 xorl %eax,%r11d 445 addl %r11d,%edx 446 roll $11,%edx 447 movl %eax,%r11d 448 addl %eax,%edx 449 leal -722521979(%rcx,%r10,1),%ecx 450 movl 24(%rsi),%r10d 451 xorl %ebx,%r11d 452 xorl %edx,%r11d 453 addl %r11d,%ecx 454 roll $16,%ecx 455 movl %edx,%r11d 456 addl %edx,%ecx 457 leal 76029189(%rbx,%r10,1),%ebx 458 movl 36(%rsi),%r10d 459 xorl %eax,%r11d 460 xorl %ecx,%r11d 461 addl %r11d,%ebx 462 roll $23,%ebx 463 movl %ecx,%r11d 464 addl %ecx,%ebx 465 leal -640364487(%rax,%r10,1),%eax 466 movl 48(%rsi),%r10d 467 xorl %edx,%r11d 468 xorl %ebx,%r11d 469 addl %r11d,%eax 470 roll $4,%eax 471 movl %ebx,%r11d 472 addl %ebx,%eax 473 leal -421815835(%rdx,%r10,1),%edx 474 movl 60(%rsi),%r10d 475 xorl %ecx,%r11d 476 xorl %eax,%r11d 477 addl %r11d,%edx 478 roll $11,%edx 479 movl %eax,%r11d 480 addl %eax,%edx 481 leal 530742520(%rcx,%r10,1),%ecx 482 movl 8(%rsi),%r10d 483 xorl %ebx,%r11d 484 xorl %edx,%r11d 485 addl %r11d,%ecx 486 roll $16,%ecx 487 movl %edx,%r11d 488 addl %edx,%ecx 489 leal -995338651(%rbx,%r10,1),%ebx 490 movl 0(%rsi),%r10d 491 xorl %eax,%r11d 492 xorl %ecx,%r11d 493 addl %r11d,%ebx 494 roll $23,%ebx 495 movl %ecx,%r11d 496 addl %ecx,%ebx 497 movl 0(%rsi),%r10d 498 movl $4294967295,%r11d 499 xorl %edx,%r11d 500 leal -198630844(%rax,%r10,1),%eax 501 orl %ebx,%r11d 502 xorl %ecx,%r11d 503 addl %r11d,%eax 504 movl 28(%rsi),%r10d 505 movl $4294967295,%r11d 506 roll $6,%eax 507 xorl %ecx,%r11d 508 addl %ebx,%eax 509 leal 1126891415(%rdx,%r10,1),%edx 510 orl %eax,%r11d 511 xorl %ebx,%r11d 512 addl %r11d,%edx 513 movl 56(%rsi),%r10d 514 movl $4294967295,%r11d 515 roll $10,%edx 516 xorl %ebx,%r11d 517 addl %eax,%edx 518 leal -1416354905(%rcx,%r10,1),%ecx 519 orl %edx,%r11d 520 xorl %eax,%r11d 521 addl %r11d,%ecx 522 movl 20(%rsi),%r10d 523 movl $4294967295,%r11d 524 roll $15,%ecx 525 xorl %eax,%r11d 526 addl %edx,%ecx 527 leal -57434055(%rbx,%r10,1),%ebx 528 orl %ecx,%r11d 529 xorl %edx,%r11d 530 addl %r11d,%ebx 531 movl 48(%rsi),%r10d 532 movl $4294967295,%r11d 533 roll $21,%ebx 534 xorl %edx,%r11d 535 addl %ecx,%ebx 536 leal 1700485571(%rax,%r10,1),%eax 537 orl %ebx,%r11d 538 xorl %ecx,%r11d 539 addl %r11d,%eax 540 movl 12(%rsi),%r10d 541 movl $4294967295,%r11d 542 roll $6,%eax 543 xorl %ecx,%r11d 544 addl %ebx,%eax 545 leal -1894986606(%rdx,%r10,1),%edx 546 orl %eax,%r11d 547 xorl %ebx,%r11d 548 addl %r11d,%edx 549 movl 40(%rsi),%r10d 550 movl $4294967295,%r11d 551 roll $10,%edx 552 xorl %ebx,%r11d 553 addl %eax,%edx 554 leal -1051523(%rcx,%r10,1),%ecx 555 orl %edx,%r11d 556 xorl %eax,%r11d 557 addl %r11d,%ecx 558 movl 4(%rsi),%r10d 559 movl $4294967295,%r11d 560 roll $15,%ecx 561 xorl %eax,%r11d 562 addl %edx,%ecx 563 leal -2054922799(%rbx,%r10,1),%ebx 564 orl %ecx,%r11d 565 xorl %edx,%r11d 566 addl %r11d,%ebx 567 movl 32(%rsi),%r10d 568 movl $4294967295,%r11d 569 roll $21,%ebx 570 xorl %edx,%r11d 571 addl %ecx,%ebx 572 leal 1873313359(%rax,%r10,1),%eax 573 orl %ebx,%r11d 574 xorl %ecx,%r11d 575 addl %r11d,%eax 576 movl 60(%rsi),%r10d 577 movl $4294967295,%r11d 578 roll $6,%eax 579 xorl %ecx,%r11d 580 addl %ebx,%eax 581 leal -30611744(%rdx,%r10,1),%edx 582 orl %eax,%r11d 583 xorl %ebx,%r11d 584 addl %r11d,%edx 585 movl 24(%rsi),%r10d 586 movl $4294967295,%r11d 587 roll $10,%edx 588 xorl %ebx,%r11d 589 addl %eax,%edx 590 leal -1560198380(%rcx,%r10,1),%ecx 591 orl %edx,%r11d 592 xorl %eax,%r11d 593 addl %r11d,%ecx 594 movl 52(%rsi),%r10d 595 movl $4294967295,%r11d 596 roll $15,%ecx 597 xorl %eax,%r11d 598 addl %edx,%ecx 599 leal 1309151649(%rbx,%r10,1),%ebx 600 orl %ecx,%r11d 601 xorl %edx,%r11d 602 addl %r11d,%ebx 603 movl 16(%rsi),%r10d 604 movl $4294967295,%r11d 605 roll $21,%ebx 606 xorl %edx,%r11d 607 addl %ecx,%ebx 608 leal -145523070(%rax,%r10,1),%eax 609 orl %ebx,%r11d 610 xorl %ecx,%r11d 611 addl %r11d,%eax 612 movl 44(%rsi),%r10d 613 movl $4294967295,%r11d 614 roll $6,%eax 615 xorl %ecx,%r11d 616 addl %ebx,%eax 617 leal -1120210379(%rdx,%r10,1),%edx 618 orl %eax,%r11d 619 xorl %ebx,%r11d 620 addl %r11d,%edx 621 movl 8(%rsi),%r10d 622 movl $4294967295,%r11d 623 roll $10,%edx 624 xorl %ebx,%r11d 625 addl %eax,%edx 626 leal 718787259(%rcx,%r10,1),%ecx 627 orl %edx,%r11d 628 xorl %eax,%r11d 629 addl %r11d,%ecx 630 movl 36(%rsi),%r10d 631 movl $4294967295,%r11d 632 roll $15,%ecx 633 xorl %eax,%r11d 634 addl %edx,%ecx 635 leal -343485551(%rbx,%r10,1),%ebx 636 orl %ecx,%r11d 637 xorl %edx,%r11d 638 addl %r11d,%ebx 639 movl 0(%rsi),%r10d 640 movl $4294967295,%r11d 641 roll $21,%ebx 642 xorl %edx,%r11d 643 addl %ecx,%ebx 644 645 addl %r8d,%eax 646 addl %r9d,%ebx 647 addl %r14d,%ecx 648 addl %r15d,%edx 649 650 651 addq $64,%rsi 652 cmpq %rdi,%rsi 653 jb L$loop 654 655 656 L$end: 657 movl %eax,0(%rbp) 658 movl %ebx,4(%rbp) 659 movl %ecx,8(%rbp) 660 movl %edx,12(%rbp) 661 662 movq (%rsp),%r15 663 movq 8(%rsp),%r14 664 movq 16(%rsp),%r12 665 movq 24(%rsp),%rbx 666 movq 32(%rsp),%rbp 667 addq $40,%rsp 668 L$epilogue: 669 .byte 0xf3,0xc3 670 671 #endif 672