1 # $FreeBSD$ 2.file "sha512-586.s" 3.text 4.globl sha256_block_data_order 5.type sha256_block_data_order,@function 6.align 16 7sha256_block_data_order: 8.L_sha256_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 .L001K256-.L000pic_point(%ebp),%ebp 21 subl $16,%esp 22 andl $-64,%esp 23 shll $6,%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 16 30.L002loop: 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 addl $64,%edi 80 subl $32,%esp 81 movl %edi,100(%esp) 82 movl (%esi),%eax 83 movl 4(%esi),%ebx 84 movl 8(%esi),%ecx 85 movl 12(%esi),%edi 86 movl %ebx,4(%esp) 87 movl %ecx,8(%esp) 88 movl %edi,12(%esp) 89 movl 16(%esi),%edx 90 movl 20(%esi),%ebx 91 movl 24(%esi),%ecx 92 movl 28(%esi),%edi 93 movl %ebx,20(%esp) 94 movl %ecx,24(%esp) 95 movl %edi,28(%esp) 96.align 16 97.L00300_15: 98 movl 92(%esp),%ebx 99 movl %edx,%ecx 100 rorl $14,%ecx 101 movl 20(%esp),%esi 102 xorl %edx,%ecx 103 rorl $5,%ecx 104 xorl %edx,%ecx 105 rorl $6,%ecx 106 movl 24(%esp),%edi 107 addl %ecx,%ebx 108 xorl %edi,%esi 109 movl %edx,16(%esp) 110 movl %eax,%ecx 111 andl %edx,%esi 112 movl 12(%esp),%edx 113 xorl %edi,%esi 114 movl %eax,%edi 115 addl %esi,%ebx 116 rorl $9,%ecx 117 addl 28(%esp),%ebx 118 xorl %eax,%ecx 119 rorl $11,%ecx 120 movl 4(%esp),%esi 121 xorl %eax,%ecx 122 rorl $2,%ecx 123 addl %ebx,%edx 124 movl 8(%esp),%edi 125 addl %ecx,%ebx 126 movl %eax,(%esp) 127 movl %eax,%ecx 128 subl $4,%esp 129 orl %esi,%eax 130 andl %esi,%ecx 131 andl %edi,%eax 132 movl (%ebp),%esi 133 orl %ecx,%eax 134 addl $4,%ebp 135 addl %ebx,%eax 136 addl %esi,%edx 137 addl %esi,%eax 138 cmpl $3248222580,%esi 139 jne .L00300_15 140 movl 152(%esp),%ebx 141.align 16 142.L00416_63: 143 movl %ebx,%esi 144 movl 100(%esp),%ecx 145 rorl $11,%esi 146 movl %ecx,%edi 147 xorl %ebx,%esi 148 rorl $7,%esi 149 shrl $3,%ebx 150 rorl $2,%edi 151 xorl %esi,%ebx 152 xorl %ecx,%edi 153 rorl $17,%edi 154 shrl $10,%ecx 155 addl 156(%esp),%ebx 156 xorl %ecx,%edi 157 addl 120(%esp),%ebx 158 movl %edx,%ecx 159 addl %edi,%ebx 160 rorl $14,%ecx 161 movl 20(%esp),%esi 162 xorl %edx,%ecx 163 rorl $5,%ecx 164 movl %ebx,92(%esp) 165 xorl %edx,%ecx 166 rorl $6,%ecx 167 movl 24(%esp),%edi 168 addl %ecx,%ebx 169 xorl %edi,%esi 170 movl %edx,16(%esp) 171 movl %eax,%ecx 172 andl %edx,%esi 173 movl 12(%esp),%edx 174 xorl %edi,%esi 175 movl %eax,%edi 176 addl %esi,%ebx 177 rorl $9,%ecx 178 addl 28(%esp),%ebx 179 xorl %eax,%ecx 180 rorl $11,%ecx 181 movl 4(%esp),%esi 182 xorl %eax,%ecx 183 rorl $2,%ecx 184 addl %ebx,%edx 185 movl 8(%esp),%edi 186 addl %ecx,%ebx 187 movl %eax,(%esp) 188 movl %eax,%ecx 189 subl $4,%esp 190 orl %esi,%eax 191 andl %esi,%ecx 192 andl %edi,%eax 193 movl (%ebp),%esi 194 orl %ecx,%eax 195 addl $4,%ebp 196 addl %ebx,%eax 197 movl 152(%esp),%ebx 198 addl %esi,%edx 199 addl %esi,%eax 200 cmpl $3329325298,%esi 201 jne .L00416_63 202 movl 352(%esp),%esi 203 movl 4(%esp),%ebx 204 movl 8(%esp),%ecx 205 movl 12(%esp),%edi 206 addl (%esi),%eax 207 addl 4(%esi),%ebx 208 addl 8(%esi),%ecx 209 addl 12(%esi),%edi 210 movl %eax,(%esi) 211 movl %ebx,4(%esi) 212 movl %ecx,8(%esi) 213 movl %edi,12(%esi) 214 movl 20(%esp),%eax 215 movl 24(%esp),%ebx 216 movl 28(%esp),%ecx 217 movl 356(%esp),%edi 218 addl 16(%esi),%edx 219 addl 20(%esi),%eax 220 addl 24(%esi),%ebx 221 addl 28(%esi),%ecx 222 movl %edx,16(%esi) 223 movl %eax,20(%esi) 224 movl %ebx,24(%esi) 225 movl %ecx,28(%esi) 226 addl $352,%esp 227 subl $256,%ebp 228 cmpl 8(%esp),%edi 229 jb .L002loop 230 movl 12(%esp),%esp 231 popl %edi 232 popl %esi 233 popl %ebx 234 popl %ebp 235 ret 236.align 64 237.L001K256: 238.long 1116352408,1899447441,3049323471,3921009573 239.long 961987163,1508970993,2453635748,2870763221 240.long 3624381080,310598401,607225278,1426881987 241.long 1925078388,2162078206,2614888103,3248222580 242.long 3835390401,4022224774,264347078,604807628 243.long 770255983,1249150122,1555081692,1996064986 244.long 2554220882,2821834349,2952996808,3210313671 245.long 3336571891,3584528711,113926993,338241895 246.long 666307205,773529912,1294757372,1396182291 247.long 1695183700,1986661051,2177026350,2456956037 248.long 2730485921,2820302411,3259730800,3345764771 249.long 3516065817,3600352804,4094571909,275423344 250.long 430227734,506948616,659060556,883997877 251.long 958139571,1322822218,1537002063,1747873779 252.long 1955562222,2024104815,2227730452,2361852424 253.long 2428436474,2756734187,3204031479,3329325298 254.size sha256_block_data_order,.-.L_sha256_block_data_order_begin 255.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 256.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 257.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 258.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 259.byte 62,0 260