OLD | NEW |
(Empty) | |
| 1 .file "crypto/bn/asm/x86-gf2m.s" |
| 2 .text |
| 3 .align 4 |
| 4 __mul_1x1_mmx: |
| 5 subl $36,%esp |
| 6 movl %eax,%ecx |
| 7 leal (%eax,%eax,1),%edx |
| 8 andl $1073741823,%ecx |
| 9 leal (%edx,%edx,1),%ebp |
| 10 movl $0,(%esp) |
| 11 andl $2147483647,%edx |
| 12 movd %eax,%mm2 |
| 13 movd %ebx,%mm3 |
| 14 movl %ecx,4(%esp) |
| 15 xorl %edx,%ecx |
| 16 pxor %mm5,%mm5 |
| 17 pxor %mm4,%mm4 |
| 18 movl %edx,8(%esp) |
| 19 xorl %ebp,%edx |
| 20 movl %ecx,12(%esp) |
| 21 pcmpgtd %mm2,%mm5 |
| 22 paddd %mm2,%mm2 |
| 23 xorl %edx,%ecx |
| 24 movl %ebp,16(%esp) |
| 25 xorl %edx,%ebp |
| 26 pand %mm3,%mm5 |
| 27 pcmpgtd %mm2,%mm4 |
| 28 movl %ecx,20(%esp) |
| 29 xorl %ecx,%ebp |
| 30 psllq $31,%mm5 |
| 31 pand %mm3,%mm4 |
| 32 movl %edx,24(%esp) |
| 33 movl $7,%esi |
| 34 movl %ebp,28(%esp) |
| 35 movl %esi,%ebp |
| 36 andl %ebx,%esi |
| 37 shrl $3,%ebx |
| 38 movl %ebp,%edi |
| 39 psllq $30,%mm4 |
| 40 andl %ebx,%edi |
| 41 shrl $3,%ebx |
| 42 movd (%esp,%esi,4),%mm0 |
| 43 movl %ebp,%esi |
| 44 andl %ebx,%esi |
| 45 shrl $3,%ebx |
| 46 movd (%esp,%edi,4),%mm2 |
| 47 movl %ebp,%edi |
| 48 psllq $3,%mm2 |
| 49 andl %ebx,%edi |
| 50 shrl $3,%ebx |
| 51 pxor %mm2,%mm0 |
| 52 movd (%esp,%esi,4),%mm1 |
| 53 movl %ebp,%esi |
| 54 psllq $6,%mm1 |
| 55 andl %ebx,%esi |
| 56 shrl $3,%ebx |
| 57 pxor %mm1,%mm0 |
| 58 movd (%esp,%edi,4),%mm2 |
| 59 movl %ebp,%edi |
| 60 psllq $9,%mm2 |
| 61 andl %ebx,%edi |
| 62 shrl $3,%ebx |
| 63 pxor %mm2,%mm0 |
| 64 movd (%esp,%esi,4),%mm1 |
| 65 movl %ebp,%esi |
| 66 psllq $12,%mm1 |
| 67 andl %ebx,%esi |
| 68 shrl $3,%ebx |
| 69 pxor %mm1,%mm0 |
| 70 movd (%esp,%edi,4),%mm2 |
| 71 movl %ebp,%edi |
| 72 psllq $15,%mm2 |
| 73 andl %ebx,%edi |
| 74 shrl $3,%ebx |
| 75 pxor %mm2,%mm0 |
| 76 movd (%esp,%esi,4),%mm1 |
| 77 movl %ebp,%esi |
| 78 psllq $18,%mm1 |
| 79 andl %ebx,%esi |
| 80 shrl $3,%ebx |
| 81 pxor %mm1,%mm0 |
| 82 movd (%esp,%edi,4),%mm2 |
| 83 movl %ebp,%edi |
| 84 psllq $21,%mm2 |
| 85 andl %ebx,%edi |
| 86 shrl $3,%ebx |
| 87 pxor %mm2,%mm0 |
| 88 movd (%esp,%esi,4),%mm1 |
| 89 movl %ebp,%esi |
| 90 psllq $24,%mm1 |
| 91 andl %ebx,%esi |
| 92 shrl $3,%ebx |
| 93 pxor %mm1,%mm0 |
| 94 movd (%esp,%edi,4),%mm2 |
| 95 pxor %mm4,%mm0 |
| 96 psllq $27,%mm2 |
| 97 pxor %mm2,%mm0 |
| 98 movd (%esp,%esi,4),%mm1 |
| 99 pxor %mm5,%mm0 |
| 100 psllq $30,%mm1 |
| 101 addl $36,%esp |
| 102 pxor %mm1,%mm0 |
| 103 ret |
| 104 .align 4 |
| 105 __mul_1x1_ialu: |
| 106 subl $36,%esp |
| 107 movl %eax,%ecx |
| 108 leal (%eax,%eax,1),%edx |
| 109 leal (,%eax,4),%ebp |
| 110 andl $1073741823,%ecx |
| 111 leal (%eax,%eax,1),%edi |
| 112 sarl $31,%eax |
| 113 movl $0,(%esp) |
| 114 andl $2147483647,%edx |
| 115 movl %ecx,4(%esp) |
| 116 xorl %edx,%ecx |
| 117 movl %edx,8(%esp) |
| 118 xorl %ebp,%edx |
| 119 movl %ecx,12(%esp) |
| 120 xorl %edx,%ecx |
| 121 movl %ebp,16(%esp) |
| 122 xorl %edx,%ebp |
| 123 movl %ecx,20(%esp) |
| 124 xorl %ecx,%ebp |
| 125 sarl $31,%edi |
| 126 andl %ebx,%eax |
| 127 movl %edx,24(%esp) |
| 128 andl %ebx,%edi |
| 129 movl %ebp,28(%esp) |
| 130 movl %eax,%edx |
| 131 shll $31,%eax |
| 132 movl %edi,%ecx |
| 133 shrl $1,%edx |
| 134 movl $7,%esi |
| 135 shll $30,%edi |
| 136 andl %ebx,%esi |
| 137 shrl $2,%ecx |
| 138 xorl %edi,%eax |
| 139 shrl $3,%ebx |
| 140 movl $7,%edi |
| 141 andl %ebx,%edi |
| 142 shrl $3,%ebx |
| 143 xorl %ecx,%edx |
| 144 xorl (%esp,%esi,4),%eax |
| 145 movl $7,%esi |
| 146 andl %ebx,%esi |
| 147 shrl $3,%ebx |
| 148 movl (%esp,%edi,4),%ebp |
| 149 movl $7,%edi |
| 150 movl %ebp,%ecx |
| 151 shll $3,%ebp |
| 152 andl %ebx,%edi |
| 153 shrl $29,%ecx |
| 154 xorl %ebp,%eax |
| 155 shrl $3,%ebx |
| 156 xorl %ecx,%edx |
| 157 movl (%esp,%esi,4),%ecx |
| 158 movl $7,%esi |
| 159 movl %ecx,%ebp |
| 160 shll $6,%ecx |
| 161 andl %ebx,%esi |
| 162 shrl $26,%ebp |
| 163 xorl %ecx,%eax |
| 164 shrl $3,%ebx |
| 165 xorl %ebp,%edx |
| 166 movl (%esp,%edi,4),%ebp |
| 167 movl $7,%edi |
| 168 movl %ebp,%ecx |
| 169 shll $9,%ebp |
| 170 andl %ebx,%edi |
| 171 shrl $23,%ecx |
| 172 xorl %ebp,%eax |
| 173 shrl $3,%ebx |
| 174 xorl %ecx,%edx |
| 175 movl (%esp,%esi,4),%ecx |
| 176 movl $7,%esi |
| 177 movl %ecx,%ebp |
| 178 shll $12,%ecx |
| 179 andl %ebx,%esi |
| 180 shrl $20,%ebp |
| 181 xorl %ecx,%eax |
| 182 shrl $3,%ebx |
| 183 xorl %ebp,%edx |
| 184 movl (%esp,%edi,4),%ebp |
| 185 movl $7,%edi |
| 186 movl %ebp,%ecx |
| 187 shll $15,%ebp |
| 188 andl %ebx,%edi |
| 189 shrl $17,%ecx |
| 190 xorl %ebp,%eax |
| 191 shrl $3,%ebx |
| 192 xorl %ecx,%edx |
| 193 movl (%esp,%esi,4),%ecx |
| 194 movl $7,%esi |
| 195 movl %ecx,%ebp |
| 196 shll $18,%ecx |
| 197 andl %ebx,%esi |
| 198 shrl $14,%ebp |
| 199 xorl %ecx,%eax |
| 200 shrl $3,%ebx |
| 201 xorl %ebp,%edx |
| 202 movl (%esp,%edi,4),%ebp |
| 203 movl $7,%edi |
| 204 movl %ebp,%ecx |
| 205 shll $21,%ebp |
| 206 andl %ebx,%edi |
| 207 shrl $11,%ecx |
| 208 xorl %ebp,%eax |
| 209 shrl $3,%ebx |
| 210 xorl %ecx,%edx |
| 211 movl (%esp,%esi,4),%ecx |
| 212 movl $7,%esi |
| 213 movl %ecx,%ebp |
| 214 shll $24,%ecx |
| 215 andl %ebx,%esi |
| 216 shrl $8,%ebp |
| 217 xorl %ecx,%eax |
| 218 shrl $3,%ebx |
| 219 xorl %ebp,%edx |
| 220 movl (%esp,%edi,4),%ebp |
| 221 movl %ebp,%ecx |
| 222 shll $27,%ebp |
| 223 movl (%esp,%esi,4),%edi |
| 224 shrl $5,%ecx |
| 225 movl %edi,%esi |
| 226 xorl %ebp,%eax |
| 227 shll $30,%edi |
| 228 xorl %ecx,%edx |
| 229 shrl $2,%esi |
| 230 xorl %edi,%eax |
| 231 xorl %esi,%edx |
| 232 addl $36,%esp |
| 233 ret |
| 234 .globl _bn_GF2m_mul_2x2 |
| 235 .align 4 |
| 236 _bn_GF2m_mul_2x2: |
| 237 L_bn_GF2m_mul_2x2_begin: |
| 238 call L000PIC_me_up |
| 239 L000PIC_me_up: |
| 240 popl %edx |
| 241 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L000PIC_me_up(%edx),%edx |
| 242 movl (%edx),%eax |
| 243 movl 4(%edx),%edx |
| 244 testl $8388608,%eax |
| 245 jz L001ialu |
| 246 pushl %ebp |
| 247 pushl %ebx |
| 248 pushl %esi |
| 249 pushl %edi |
| 250 movl 24(%esp),%eax |
| 251 movl 32(%esp),%ebx |
| 252 call __mul_1x1_mmx |
| 253 movq %mm0,%mm7 |
| 254 movl 28(%esp),%eax |
| 255 movl 36(%esp),%ebx |
| 256 call __mul_1x1_mmx |
| 257 movq %mm0,%mm6 |
| 258 movl 24(%esp),%eax |
| 259 movl 32(%esp),%ebx |
| 260 xorl 28(%esp),%eax |
| 261 xorl 36(%esp),%ebx |
| 262 call __mul_1x1_mmx |
| 263 pxor %mm7,%mm0 |
| 264 movl 20(%esp),%eax |
| 265 pxor %mm6,%mm0 |
| 266 movq %mm0,%mm2 |
| 267 psllq $32,%mm0 |
| 268 popl %edi |
| 269 psrlq $32,%mm2 |
| 270 popl %esi |
| 271 pxor %mm6,%mm0 |
| 272 popl %ebx |
| 273 pxor %mm7,%mm2 |
| 274 movq %mm0,(%eax) |
| 275 popl %ebp |
| 276 movq %mm2,8(%eax) |
| 277 emms |
| 278 ret |
| 279 .align 4,0x90 |
| 280 L001ialu: |
| 281 pushl %ebp |
| 282 pushl %ebx |
| 283 pushl %esi |
| 284 pushl %edi |
| 285 subl $20,%esp |
| 286 movl 44(%esp),%eax |
| 287 movl 52(%esp),%ebx |
| 288 call __mul_1x1_ialu |
| 289 movl %eax,8(%esp) |
| 290 movl %edx,12(%esp) |
| 291 movl 48(%esp),%eax |
| 292 movl 56(%esp),%ebx |
| 293 call __mul_1x1_ialu |
| 294 movl %eax,(%esp) |
| 295 movl %edx,4(%esp) |
| 296 movl 44(%esp),%eax |
| 297 movl 52(%esp),%ebx |
| 298 xorl 48(%esp),%eax |
| 299 xorl 56(%esp),%ebx |
| 300 call __mul_1x1_ialu |
| 301 movl 40(%esp),%ebp |
| 302 movl (%esp),%ebx |
| 303 movl 4(%esp),%ecx |
| 304 movl 8(%esp),%edi |
| 305 movl 12(%esp),%esi |
| 306 xorl %edx,%eax |
| 307 xorl %ecx,%edx |
| 308 xorl %ebx,%eax |
| 309 movl %ebx,(%ebp) |
| 310 xorl %edi,%edx |
| 311 movl %esi,12(%ebp) |
| 312 xorl %esi,%eax |
| 313 addl $20,%esp |
| 314 xorl %esi,%edx |
| 315 popl %edi |
| 316 xorl %edx,%eax |
| 317 popl %esi |
| 318 movl %edx,8(%ebp) |
| 319 popl %ebx |
| 320 movl %eax,4(%ebp) |
| 321 popl %ebp |
| 322 ret |
| 323 .byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105 |
| 324 .byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32 |
| 325 .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 |
| 326 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 |
| 327 .byte 62,0 |
| 328 .section __IMPORT,__pointers,non_lazy_symbol_pointers |
| 329 L_OPENSSL_ia32cap_P$non_lazy_ptr: |
| 330 .indirect_symbol _OPENSSL_ia32cap_P |
| 331 .long 0 |
| 332 .comm _OPENSSL_ia32cap_P,8,2 |
OLD | NEW |