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