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