1 #if defined(__i386__) 2 .file "sha512-586.S" 3 .text 4 .globl sha512_block_data_order 5 .hidden sha512_block_data_order 6 .type sha512_block_data_order,@function 7 .align 16 8 sha512_block_data_order: 9 .L_sha512_block_data_order_begin: 10 pushl %ebp 11 pushl %ebx 12 pushl %esi 13 pushl %edi 14 movl 20(%esp),%esi 15 movl 24(%esp),%edi 16 movl 28(%esp),%eax 17 movl %esp,%ebx 18 call .L000pic_point 19 .L000pic_point: 20 popl %ebp 21 leal .L001K512-.L000pic_point(%ebp),%ebp 22 subl $16,%esp 23 andl $-64,%esp 24 shll $7,%eax 25 addl %edi,%eax 26 movl %esi,(%esp) 27 movl %edi,4(%esp) 28 movl %eax,8(%esp) 29 movl %ebx,12(%esp) 30 .align 16 31 .L002loop_x86: 32 movl (%edi),%eax 33 movl 4(%edi),%ebx 34 movl 8(%edi),%ecx 35 movl 12(%edi),%edx 36 bswap %eax 37 bswap %ebx 38 bswap %ecx 39 bswap %edx 40 pushl %eax 41 pushl %ebx 42 pushl %ecx 43 pushl %edx 44 movl 16(%edi),%eax 45 movl 20(%edi),%ebx 46 movl 24(%edi),%ecx 47 movl 28(%edi),%edx 48 bswap %eax 49 bswap %ebx 50 bswap %ecx 51 bswap %edx 52 pushl %eax 53 pushl %ebx 54 pushl %ecx 55 pushl %edx 56 movl 32(%edi),%eax 57 movl 36(%edi),%ebx 58 movl 40(%edi),%ecx 59 movl 44(%edi),%edx 60 bswap %eax 61 bswap %ebx 62 bswap %ecx 63 bswap %edx 64 pushl %eax 65 pushl %ebx 66 pushl %ecx 67 pushl %edx 68 movl 48(%edi),%eax 69 movl 52(%edi),%ebx 70 movl 56(%edi),%ecx 71 movl 60(%edi),%edx 72 bswap %eax 73 bswap %ebx 74 bswap %ecx 75 bswap %edx 76 pushl %eax 77 pushl %ebx 78 pushl %ecx 79 pushl %edx 80 movl 64(%edi),%eax 81 movl 68(%edi),%ebx 82 movl 72(%edi),%ecx 83 movl 76(%edi),%edx 84 bswap %eax 85 bswap %ebx 86 bswap %ecx 87 bswap %edx 88 pushl %eax 89 pushl %ebx 90 pushl %ecx 91 pushl %edx 92 movl 80(%edi),%eax 93 movl 84(%edi),%ebx 94 movl 88(%edi),%ecx 95 movl 92(%edi),%edx 96 bswap %eax 97 bswap %ebx 98 bswap %ecx 99 bswap %edx 100 pushl %eax 101 pushl %ebx 102 pushl %ecx 103 pushl %edx 104 movl 96(%edi),%eax 105 movl 100(%edi),%ebx 106 movl 104(%edi),%ecx 107 movl 108(%edi),%edx 108 bswap %eax 109 bswap %ebx 110 bswap %ecx 111 bswap %edx 112 pushl %eax 113 pushl %ebx 114 pushl %ecx 115 pushl %edx 116 movl 112(%edi),%eax 117 movl 116(%edi),%ebx 118 movl 120(%edi),%ecx 119 movl 124(%edi),%edx 120 bswap %eax 121 bswap %ebx 122 bswap %ecx 123 bswap %edx 124 pushl %eax 125 pushl %ebx 126 pushl %ecx 127 pushl %edx 128 addl $128,%edi 129 subl $72,%esp 130 movl %edi,204(%esp) 131 leal 8(%esp),%edi 132 movl $16,%ecx 133 .long 2784229001 134 .align 16 135 .L00300_15_x86: 136 movl 40(%esp),%ecx 137 movl 44(%esp),%edx 138 movl %ecx,%esi 139 shrl $9,%ecx 140 movl %edx,%edi 141 shrl $9,%edx 142 movl %ecx,%ebx 143 shll $14,%esi 144 movl %edx,%eax 145 shll $14,%edi 146 xorl %esi,%ebx 147 shrl $5,%ecx 148 xorl %edi,%eax 149 shrl $5,%edx 150 xorl %ecx,%eax 151 shll $4,%esi 152 xorl %edx,%ebx 153 shll $4,%edi 154 xorl %esi,%ebx 155 shrl $4,%ecx 156 xorl %edi,%eax 157 shrl $4,%edx 158 xorl %ecx,%eax 159 shll $5,%esi 160 xorl %edx,%ebx 161 shll $5,%edi 162 xorl %esi,%eax 163 xorl %edi,%ebx 164 movl 48(%esp),%ecx 165 movl 52(%esp),%edx 166 movl 56(%esp),%esi 167 movl 60(%esp),%edi 168 addl 64(%esp),%eax 169 adcl 68(%esp),%ebx 170 xorl %esi,%ecx 171 xorl %edi,%edx 172 andl 40(%esp),%ecx 173 andl 44(%esp),%edx 174 addl 192(%esp),%eax 175 adcl 196(%esp),%ebx 176 xorl %esi,%ecx 177 xorl %edi,%edx 178 movl (%ebp),%esi 179 movl 4(%ebp),%edi 180 addl %ecx,%eax 181 adcl %edx,%ebx 182 movl 32(%esp),%ecx 183 movl 36(%esp),%edx 184 addl %esi,%eax 185 adcl %edi,%ebx 186 movl %eax,(%esp) 187 movl %ebx,4(%esp) 188 addl %ecx,%eax 189 adcl %edx,%ebx 190 movl 8(%esp),%ecx 191 movl 12(%esp),%edx 192 movl %eax,32(%esp) 193 movl %ebx,36(%esp) 194 movl %ecx,%esi 195 shrl $2,%ecx 196 movl %edx,%edi 197 shrl $2,%edx 198 movl %ecx,%ebx 199 shll $4,%esi 200 movl %edx,%eax 201 shll $4,%edi 202 xorl %esi,%ebx 203 shrl $5,%ecx 204 xorl %edi,%eax 205 shrl $5,%edx 206 xorl %ecx,%ebx 207 shll $21,%esi 208 xorl %edx,%eax 209 shll $21,%edi 210 xorl %esi,%eax 211 shrl $21,%ecx 212 xorl %edi,%ebx 213 shrl $21,%edx 214 xorl %ecx,%eax 215 shll $5,%esi 216 xorl %edx,%ebx 217 shll $5,%edi 218 xorl %esi,%eax 219 xorl %edi,%ebx 220 movl 8(%esp),%ecx 221 movl 12(%esp),%edx 222 movl 16(%esp),%esi 223 movl 20(%esp),%edi 224 addl (%esp),%eax 225 adcl 4(%esp),%ebx 226 orl %esi,%ecx 227 orl %edi,%edx 228 andl 24(%esp),%ecx 229 andl 28(%esp),%edx 230 andl 8(%esp),%esi 231 andl 12(%esp),%edi 232 orl %esi,%ecx 233 orl %edi,%edx 234 addl %ecx,%eax 235 adcl %edx,%ebx 236 movl %eax,(%esp) 237 movl %ebx,4(%esp) 238 movb (%ebp),%dl 239 subl $8,%esp 240 leal 8(%ebp),%ebp 241 cmpb $148,%dl 242 jne .L00300_15_x86 243 .align 16 244 .L00416_79_x86: 245 movl 312(%esp),%ecx 246 movl 316(%esp),%edx 247 movl %ecx,%esi 248 shrl $1,%ecx 249 movl %edx,%edi 250 shrl $1,%edx 251 movl %ecx,%eax 252 shll $24,%esi 253 movl %edx,%ebx 254 shll $24,%edi 255 xorl %esi,%ebx 256 shrl $6,%ecx 257 xorl %edi,%eax 258 shrl $6,%edx 259 xorl %ecx,%eax 260 shll $7,%esi 261 xorl %edx,%ebx 262 shll $1,%edi 263 xorl %esi,%ebx 264 shrl $1,%ecx 265 xorl %edi,%eax 266 shrl $1,%edx 267 xorl %ecx,%eax 268 shll $6,%edi 269 xorl %edx,%ebx 270 xorl %edi,%eax 271 movl %eax,(%esp) 272 movl %ebx,4(%esp) 273 movl 208(%esp),%ecx 274 movl 212(%esp),%edx 275 movl %ecx,%esi 276 shrl $6,%ecx 277 movl %edx,%edi 278 shrl $6,%edx 279 movl %ecx,%eax 280 shll $3,%esi 281 movl %edx,%ebx 282 shll $3,%edi 283 xorl %esi,%eax 284 shrl $13,%ecx 285 xorl %edi,%ebx 286 shrl $13,%edx 287 xorl %ecx,%eax 288 shll $10,%esi 289 xorl %edx,%ebx 290 shll $10,%edi 291 xorl %esi,%ebx 292 shrl $10,%ecx 293 xorl %edi,%eax 294 shrl $10,%edx 295 xorl %ecx,%ebx 296 shll $13,%edi 297 xorl %edx,%eax 298 xorl %edi,%eax 299 movl 320(%esp),%ecx 300 movl 324(%esp),%edx 301 addl (%esp),%eax 302 adcl 4(%esp),%ebx 303 movl 248(%esp),%esi 304 movl 252(%esp),%edi 305 addl %ecx,%eax 306 adcl %edx,%ebx 307 addl %esi,%eax 308 adcl %edi,%ebx 309 movl %eax,192(%esp) 310 movl %ebx,196(%esp) 311 movl 40(%esp),%ecx 312 movl 44(%esp),%edx 313 movl %ecx,%esi 314 shrl $9,%ecx 315 movl %edx,%edi 316 shrl $9,%edx 317 movl %ecx,%ebx 318 shll $14,%esi 319 movl %edx,%eax 320 shll $14,%edi 321 xorl %esi,%ebx 322 shrl $5,%ecx 323 xorl %edi,%eax 324 shrl $5,%edx 325 xorl %ecx,%eax 326 shll $4,%esi 327 xorl %edx,%ebx 328 shll $4,%edi 329 xorl %esi,%ebx 330 shrl $4,%ecx 331 xorl %edi,%eax 332 shrl $4,%edx 333 xorl %ecx,%eax 334 shll $5,%esi 335 xorl %edx,%ebx 336 shll $5,%edi 337 xorl %esi,%eax 338 xorl %edi,%ebx 339 movl 48(%esp),%ecx 340 movl 52(%esp),%edx 341 movl 56(%esp),%esi 342 movl 60(%esp),%edi 343 addl 64(%esp),%eax 344 adcl 68(%esp),%ebx 345 xorl %esi,%ecx 346 xorl %edi,%edx 347 andl 40(%esp),%ecx 348 andl 44(%esp),%edx 349 addl 192(%esp),%eax 350 adcl 196(%esp),%ebx 351 xorl %esi,%ecx 352 xorl %edi,%edx 353 movl (%ebp),%esi 354 movl 4(%ebp),%edi 355 addl %ecx,%eax 356 adcl %edx,%ebx 357 movl 32(%esp),%ecx 358 movl 36(%esp),%edx 359 addl %esi,%eax 360 adcl %edi,%ebx 361 movl %eax,(%esp) 362 movl %ebx,4(%esp) 363 addl %ecx,%eax 364 adcl %edx,%ebx 365 movl 8(%esp),%ecx 366 movl 12(%esp),%edx 367 movl %eax,32(%esp) 368 movl %ebx,36(%esp) 369 movl %ecx,%esi 370 shrl $2,%ecx 371 movl %edx,%edi 372 shrl $2,%edx 373 movl %ecx,%ebx 374 shll $4,%esi 375 movl %edx,%eax 376 shll $4,%edi 377 xorl %esi,%ebx 378 shrl $5,%ecx 379 xorl %edi,%eax 380 shrl $5,%edx 381 xorl %ecx,%ebx 382 shll $21,%esi 383 xorl %edx,%eax 384 shll $21,%edi 385 xorl %esi,%eax 386 shrl $21,%ecx 387 xorl %edi,%ebx 388 shrl $21,%edx 389 xorl %ecx,%eax 390 shll $5,%esi 391 xorl %edx,%ebx 392 shll $5,%edi 393 xorl %esi,%eax 394 xorl %edi,%ebx 395 movl 8(%esp),%ecx 396 movl 12(%esp),%edx 397 movl 16(%esp),%esi 398 movl 20(%esp),%edi 399 addl (%esp),%eax 400 adcl 4(%esp),%ebx 401 orl %esi,%ecx 402 orl %edi,%edx 403 andl 24(%esp),%ecx 404 andl 28(%esp),%edx 405 andl 8(%esp),%esi 406 andl 12(%esp),%edi 407 orl %esi,%ecx 408 orl %edi,%edx 409 addl %ecx,%eax 410 adcl %edx,%ebx 411 movl %eax,(%esp) 412 movl %ebx,4(%esp) 413 movb (%ebp),%dl 414 subl $8,%esp 415 leal 8(%ebp),%ebp 416 cmpb $23,%dl 417 jne .L00416_79_x86 418 movl 840(%esp),%esi 419 movl 844(%esp),%edi 420 movl (%esi),%eax 421 movl 4(%esi),%ebx 422 movl 8(%esi),%ecx 423 movl 12(%esi),%edx 424 addl 8(%esp),%eax 425 adcl 12(%esp),%ebx 426 movl %eax,(%esi) 427 movl %ebx,4(%esi) 428 addl 16(%esp),%ecx 429 adcl 20(%esp),%edx 430 movl %ecx,8(%esi) 431 movl %edx,12(%esi) 432 movl 16(%esi),%eax 433 movl 20(%esi),%ebx 434 movl 24(%esi),%ecx 435 movl 28(%esi),%edx 436 addl 24(%esp),%eax 437 adcl 28(%esp),%ebx 438 movl %eax,16(%esi) 439 movl %ebx,20(%esi) 440 addl 32(%esp),%ecx 441 adcl 36(%esp),%edx 442 movl %ecx,24(%esi) 443 movl %edx,28(%esi) 444 movl 32(%esi),%eax 445 movl 36(%esi),%ebx 446 movl 40(%esi),%ecx 447 movl 44(%esi),%edx 448 addl 40(%esp),%eax 449 adcl 44(%esp),%ebx 450 movl %eax,32(%esi) 451 movl %ebx,36(%esi) 452 addl 48(%esp),%ecx 453 adcl 52(%esp),%edx 454 movl %ecx,40(%esi) 455 movl %edx,44(%esi) 456 movl 48(%esi),%eax 457 movl 52(%esi),%ebx 458 movl 56(%esi),%ecx 459 movl 60(%esi),%edx 460 addl 56(%esp),%eax 461 adcl 60(%esp),%ebx 462 movl %eax,48(%esi) 463 movl %ebx,52(%esi) 464 addl 64(%esp),%ecx 465 adcl 68(%esp),%edx 466 movl %ecx,56(%esi) 467 movl %edx,60(%esi) 468 addl $840,%esp 469 subl $640,%ebp 470 cmpl 8(%esp),%edi 471 jb .L002loop_x86 472 movl 12(%esp),%esp 473 popl %edi 474 popl %esi 475 popl %ebx 476 popl %ebp 477 ret 478 .align 64 479 .L001K512: 480 .long 3609767458,1116352408 481 .long 602891725,1899447441 482 .long 3964484399,3049323471 483 .long 2173295548,3921009573 484 .long 4081628472,961987163 485 .long 3053834265,1508970993 486 .long 2937671579,2453635748 487 .long 3664609560,2870763221 488 .long 2734883394,3624381080 489 .long 1164996542,310598401 490 .long 1323610764,607225278 491 .long 3590304994,1426881987 492 .long 4068182383,1925078388 493 .long 991336113,2162078206 494 .long 633803317,2614888103 495 .long 3479774868,3248222580 496 .long 2666613458,3835390401 497 .long 944711139,4022224774 498 .long 2341262773,264347078 499 .long 2007800933,604807628 500 .long 1495990901,770255983 501 .long 1856431235,1249150122 502 .long 3175218132,1555081692 503 .long 2198950837,1996064986 504 .long 3999719339,2554220882 505 .long 766784016,2821834349 506 .long 2566594879,2952996808 507 .long 3203337956,3210313671 508 .long 1034457026,3336571891 509 .long 2466948901,3584528711 510 .long 3758326383,113926993 511 .long 168717936,338241895 512 .long 1188179964,666307205 513 .long 1546045734,773529912 514 .long 1522805485,1294757372 515 .long 2643833823,1396182291 516 .long 2343527390,1695183700 517 .long 1014477480,1986661051 518 .long 1206759142,2177026350 519 .long 344077627,2456956037 520 .long 1290863460,2730485921 521 .long 3158454273,2820302411 522 .long 3505952657,3259730800 523 .long 106217008,3345764771 524 .long 3606008344,3516065817 525 .long 1432725776,3600352804 526 .long 1467031594,4094571909 527 .long 851169720,275423344 528 .long 3100823752,430227734 529 .long 1363258195,506948616 530 .long 3750685593,659060556 531 .long 3785050280,883997877 532 .long 3318307427,958139571 533 .long 3812723403,1322822218 534 .long 2003034995,1537002063 535 .long 3602036899,1747873779 536 .long 1575990012,1955562222 537 .long 1125592928,2024104815 538 .long 2716904306,2227730452 539 .long 442776044,2361852424 540 .long 593698344,2428436474 541 .long 3733110249,2756734187 542 .long 2999351573,3204031479 543 .long 3815920427,3329325298 544 .long 3928383900,3391569614 545 .long 566280711,3515267271 546 .long 3454069534,3940187606 547 .long 4000239992,4118630271 548 .long 1914138554,116418474 549 .long 2731055270,174292421 550 .long 3203993006,289380356 551 .long 320620315,460393269 552 .long 587496836,685471733 553 .long 1086792851,852142971 554 .long 365543100,1017036298 555 .long 2618297676,1126000580 556 .long 3409855158,1288033470 557 .long 4234509866,1501505948 558 .long 987167468,1607167915 559 .long 1246189591,1816402316 560 .long 67438087,66051 561 .long 202182159,134810123 562 .size sha512_block_data_order,.-.L_sha512_block_data_order_begin 563 .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 564 .byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 565 .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 566 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 567 .byte 62,0 568 #endif 569