1238405Sjkim # $FreeBSD$ 2238405Sjkim.file "sha512-586.s" 3238405Sjkim.text 4238405Sjkim.globl sha256_block_data_order 5238405Sjkim.type sha256_block_data_order,@function 6238405Sjkim.align 16 7238405Sjkimsha256_block_data_order: 8238405Sjkim.L_sha256_block_data_order_begin: 9238405Sjkim pushl %ebp 10238405Sjkim pushl %ebx 11238405Sjkim pushl %esi 12238405Sjkim pushl %edi 13238405Sjkim movl 20(%esp),%esi 14238405Sjkim movl 24(%esp),%edi 15238405Sjkim movl 28(%esp),%eax 16238405Sjkim movl %esp,%ebx 17238405Sjkim call .L000pic_point 18238405Sjkim.L000pic_point: 19238405Sjkim popl %ebp 20238405Sjkim leal .L001K256-.L000pic_point(%ebp),%ebp 21238405Sjkim subl $16,%esp 22238405Sjkim andl $-64,%esp 23238405Sjkim shll $6,%eax 24238405Sjkim addl %edi,%eax 25238405Sjkim movl %esi,(%esp) 26238405Sjkim movl %edi,4(%esp) 27238405Sjkim movl %eax,8(%esp) 28238405Sjkim movl %ebx,12(%esp) 29238405Sjkim.align 16 30238405Sjkim.L002loop: 31238405Sjkim movl (%edi),%eax 32238405Sjkim movl 4(%edi),%ebx 33238405Sjkim movl 8(%edi),%ecx 34238405Sjkim movl 12(%edi),%edx 35238405Sjkim bswap %eax 36238405Sjkim bswap %ebx 37238405Sjkim bswap %ecx 38238405Sjkim bswap %edx 39238405Sjkim pushl %eax 40238405Sjkim pushl %ebx 41238405Sjkim pushl %ecx 42238405Sjkim pushl %edx 43238405Sjkim movl 16(%edi),%eax 44238405Sjkim movl 20(%edi),%ebx 45238405Sjkim movl 24(%edi),%ecx 46238405Sjkim movl 28(%edi),%edx 47238405Sjkim bswap %eax 48238405Sjkim bswap %ebx 49238405Sjkim bswap %ecx 50238405Sjkim bswap %edx 51238405Sjkim pushl %eax 52238405Sjkim pushl %ebx 53238405Sjkim pushl %ecx 54238405Sjkim pushl %edx 55238405Sjkim movl 32(%edi),%eax 56238405Sjkim movl 36(%edi),%ebx 57238405Sjkim movl 40(%edi),%ecx 58238405Sjkim movl 44(%edi),%edx 59238405Sjkim bswap %eax 60238405Sjkim bswap %ebx 61238405Sjkim bswap %ecx 62238405Sjkim bswap %edx 63238405Sjkim pushl %eax 64238405Sjkim pushl %ebx 65238405Sjkim pushl %ecx 66238405Sjkim pushl %edx 67238405Sjkim movl 48(%edi),%eax 68238405Sjkim movl 52(%edi),%ebx 69238405Sjkim movl 56(%edi),%ecx 70238405Sjkim movl 60(%edi),%edx 71238405Sjkim bswap %eax 72238405Sjkim bswap %ebx 73238405Sjkim bswap %ecx 74238405Sjkim bswap %edx 75238405Sjkim pushl %eax 76238405Sjkim pushl %ebx 77238405Sjkim pushl %ecx 78238405Sjkim pushl %edx 79238405Sjkim addl $64,%edi 80238405Sjkim subl $32,%esp 81238405Sjkim movl %edi,100(%esp) 82238405Sjkim movl (%esi),%eax 83238405Sjkim movl 4(%esi),%ebx 84238405Sjkim movl 8(%esi),%ecx 85238405Sjkim movl 12(%esi),%edi 86238405Sjkim movl %ebx,4(%esp) 87238405Sjkim movl %ecx,8(%esp) 88238405Sjkim movl %edi,12(%esp) 89238405Sjkim movl 16(%esi),%edx 90238405Sjkim movl 20(%esi),%ebx 91238405Sjkim movl 24(%esi),%ecx 92238405Sjkim movl 28(%esi),%edi 93238405Sjkim movl %ebx,20(%esp) 94238405Sjkim movl %ecx,24(%esp) 95238405Sjkim movl %edi,28(%esp) 96238405Sjkim.align 16 97238405Sjkim.L00300_15: 98238405Sjkim movl 92(%esp),%ebx 99238405Sjkim movl %edx,%ecx 100238405Sjkim rorl $14,%ecx 101238405Sjkim movl 20(%esp),%esi 102238405Sjkim xorl %edx,%ecx 103238405Sjkim rorl $5,%ecx 104238405Sjkim xorl %edx,%ecx 105238405Sjkim rorl $6,%ecx 106238405Sjkim movl 24(%esp),%edi 107238405Sjkim addl %ecx,%ebx 108238405Sjkim xorl %edi,%esi 109238405Sjkim movl %edx,16(%esp) 110238405Sjkim movl %eax,%ecx 111238405Sjkim andl %edx,%esi 112238405Sjkim movl 12(%esp),%edx 113238405Sjkim xorl %edi,%esi 114238405Sjkim movl %eax,%edi 115238405Sjkim addl %esi,%ebx 116238405Sjkim rorl $9,%ecx 117238405Sjkim addl 28(%esp),%ebx 118238405Sjkim xorl %eax,%ecx 119238405Sjkim rorl $11,%ecx 120238405Sjkim movl 4(%esp),%esi 121238405Sjkim xorl %eax,%ecx 122238405Sjkim rorl $2,%ecx 123238405Sjkim addl %ebx,%edx 124238405Sjkim movl 8(%esp),%edi 125238405Sjkim addl %ecx,%ebx 126238405Sjkim movl %eax,(%esp) 127238405Sjkim movl %eax,%ecx 128238405Sjkim subl $4,%esp 129238405Sjkim orl %esi,%eax 130238405Sjkim andl %esi,%ecx 131238405Sjkim andl %edi,%eax 132238405Sjkim movl (%ebp),%esi 133238405Sjkim orl %ecx,%eax 134238405Sjkim addl $4,%ebp 135238405Sjkim addl %ebx,%eax 136238405Sjkim addl %esi,%edx 137238405Sjkim addl %esi,%eax 138238405Sjkim cmpl $3248222580,%esi 139238405Sjkim jne .L00300_15 140238405Sjkim movl 152(%esp),%ebx 141238405Sjkim.align 16 142238405Sjkim.L00416_63: 143238405Sjkim movl %ebx,%esi 144238405Sjkim movl 100(%esp),%ecx 145238405Sjkim rorl $11,%esi 146238405Sjkim movl %ecx,%edi 147238405Sjkim xorl %ebx,%esi 148238405Sjkim rorl $7,%esi 149238405Sjkim shrl $3,%ebx 150238405Sjkim rorl $2,%edi 151238405Sjkim xorl %esi,%ebx 152238405Sjkim xorl %ecx,%edi 153238405Sjkim rorl $17,%edi 154238405Sjkim shrl $10,%ecx 155238405Sjkim addl 156(%esp),%ebx 156238405Sjkim xorl %ecx,%edi 157238405Sjkim addl 120(%esp),%ebx 158238405Sjkim movl %edx,%ecx 159238405Sjkim addl %edi,%ebx 160238405Sjkim rorl $14,%ecx 161238405Sjkim movl 20(%esp),%esi 162238405Sjkim xorl %edx,%ecx 163238405Sjkim rorl $5,%ecx 164238405Sjkim movl %ebx,92(%esp) 165238405Sjkim xorl %edx,%ecx 166238405Sjkim rorl $6,%ecx 167238405Sjkim movl 24(%esp),%edi 168238405Sjkim addl %ecx,%ebx 169238405Sjkim xorl %edi,%esi 170238405Sjkim movl %edx,16(%esp) 171238405Sjkim movl %eax,%ecx 172238405Sjkim andl %edx,%esi 173238405Sjkim movl 12(%esp),%edx 174238405Sjkim xorl %edi,%esi 175238405Sjkim movl %eax,%edi 176238405Sjkim addl %esi,%ebx 177238405Sjkim rorl $9,%ecx 178238405Sjkim addl 28(%esp),%ebx 179238405Sjkim xorl %eax,%ecx 180238405Sjkim rorl $11,%ecx 181238405Sjkim movl 4(%esp),%esi 182238405Sjkim xorl %eax,%ecx 183238405Sjkim rorl $2,%ecx 184238405Sjkim addl %ebx,%edx 185238405Sjkim movl 8(%esp),%edi 186238405Sjkim addl %ecx,%ebx 187238405Sjkim movl %eax,(%esp) 188238405Sjkim movl %eax,%ecx 189238405Sjkim subl $4,%esp 190238405Sjkim orl %esi,%eax 191238405Sjkim andl %esi,%ecx 192238405Sjkim andl %edi,%eax 193238405Sjkim movl (%ebp),%esi 194238405Sjkim orl %ecx,%eax 195238405Sjkim addl $4,%ebp 196238405Sjkim addl %ebx,%eax 197238405Sjkim movl 152(%esp),%ebx 198238405Sjkim addl %esi,%edx 199238405Sjkim addl %esi,%eax 200238405Sjkim cmpl $3329325298,%esi 201238405Sjkim jne .L00416_63 202238405Sjkim movl 352(%esp),%esi 203238405Sjkim movl 4(%esp),%ebx 204238405Sjkim movl 8(%esp),%ecx 205238405Sjkim movl 12(%esp),%edi 206238405Sjkim addl (%esi),%eax 207238405Sjkim addl 4(%esi),%ebx 208238405Sjkim addl 8(%esi),%ecx 209238405Sjkim addl 12(%esi),%edi 210238405Sjkim movl %eax,(%esi) 211238405Sjkim movl %ebx,4(%esi) 212238405Sjkim movl %ecx,8(%esi) 213238405Sjkim movl %edi,12(%esi) 214238405Sjkim movl 20(%esp),%eax 215238405Sjkim movl 24(%esp),%ebx 216238405Sjkim movl 28(%esp),%ecx 217238405Sjkim movl 356(%esp),%edi 218238405Sjkim addl 16(%esi),%edx 219238405Sjkim addl 20(%esi),%eax 220238405Sjkim addl 24(%esi),%ebx 221238405Sjkim addl 28(%esi),%ecx 222238405Sjkim movl %edx,16(%esi) 223238405Sjkim movl %eax,20(%esi) 224238405Sjkim movl %ebx,24(%esi) 225238405Sjkim movl %ecx,28(%esi) 226238405Sjkim addl $352,%esp 227238405Sjkim subl $256,%ebp 228238405Sjkim cmpl 8(%esp),%edi 229238405Sjkim jb .L002loop 230238405Sjkim movl 12(%esp),%esp 231238405Sjkim popl %edi 232238405Sjkim popl %esi 233238405Sjkim popl %ebx 234238405Sjkim popl %ebp 235238405Sjkim ret 236238405Sjkim.align 64 237238405Sjkim.L001K256: 238238405Sjkim.long 1116352408,1899447441,3049323471,3921009573 239238405Sjkim.long 961987163,1508970993,2453635748,2870763221 240238405Sjkim.long 3624381080,310598401,607225278,1426881987 241238405Sjkim.long 1925078388,2162078206,2614888103,3248222580 242238405Sjkim.long 3835390401,4022224774,264347078,604807628 243238405Sjkim.long 770255983,1249150122,1555081692,1996064986 244238405Sjkim.long 2554220882,2821834349,2952996808,3210313671 245238405Sjkim.long 3336571891,3584528711,113926993,338241895 246238405Sjkim.long 666307205,773529912,1294757372,1396182291 247238405Sjkim.long 1695183700,1986661051,2177026350,2456956037 248238405Sjkim.long 2730485921,2820302411,3259730800,3345764771 249238405Sjkim.long 3516065817,3600352804,4094571909,275423344 250238405Sjkim.long 430227734,506948616,659060556,883997877 251238405Sjkim.long 958139571,1322822218,1537002063,1747873779 252238405Sjkim.long 1955562222,2024104815,2227730452,2361852424 253238405Sjkim.long 2428436474,2756734187,3204031479,3329325298 254238405Sjkim.size sha256_block_data_order,.-.L_sha256_block_data_order_begin 255238405Sjkim.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 256238405Sjkim.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 257238405Sjkim.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 258238405Sjkim.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 259238405Sjkim.byte 62,0 260