| OLD | NEW |
| (Empty) |
| 1 #if defined(__i386__) | |
| 2 .file "rc4-586.S" | |
| 3 .text | |
| 4 .globl asm_RC4 | |
| 5 .hidden asm_RC4 | |
| 6 .type asm_RC4,@function | |
| 7 .align 16 | |
| 8 asm_RC4: | |
| 9 .L_asm_RC4_begin: | |
| 10 pushl %ebp | |
| 11 pushl %ebx | |
| 12 pushl %esi | |
| 13 pushl %edi | |
| 14 movl 20(%esp),%edi | |
| 15 movl 24(%esp),%edx | |
| 16 movl 28(%esp),%esi | |
| 17 movl 32(%esp),%ebp | |
| 18 xorl %eax,%eax | |
| 19 xorl %ebx,%ebx | |
| 20 cmpl $0,%edx | |
| 21 je .L000abort | |
| 22 movb (%edi),%al | |
| 23 movb 4(%edi),%bl | |
| 24 addl $8,%edi | |
| 25 leal (%esi,%edx,1),%ecx | |
| 26 subl %esi,%ebp | |
| 27 movl %ecx,24(%esp) | |
| 28 incb %al | |
| 29 cmpl $-1,256(%edi) | |
| 30 je .L001RC4_CHAR | |
| 31 movl (%edi,%eax,4),%ecx | |
| 32 andl $-4,%edx | |
| 33 jz .L002loop1 | |
| 34 movl %ebp,32(%esp) | |
| 35 testl $-8,%edx | |
| 36 jz .L003go4loop4 | |
| 37 call .L004PIC_me_up | |
| 38 .L004PIC_me_up: | |
| 39 popl %ebp | |
| 40 leal OPENSSL_ia32cap_P-.L004PIC_me_up(%ebp),%ebp | |
| 41 btl $26,(%ebp) | |
| 42 jnc .L003go4loop4 | |
| 43 movl 32(%esp),%ebp | |
| 44 andl $-8,%edx | |
| 45 leal -8(%esi,%edx,1),%edx | |
| 46 movl %edx,-4(%edi) | |
| 47 addb %cl,%bl | |
| 48 movl (%edi,%ebx,4),%edx | |
| 49 movl %ecx,(%edi,%ebx,4) | |
| 50 movl %edx,(%edi,%eax,4) | |
| 51 incl %eax | |
| 52 addl %ecx,%edx | |
| 53 movzbl %al,%eax | |
| 54 movzbl %dl,%edx | |
| 55 movq (%esi),%mm0 | |
| 56 movl (%edi,%eax,4),%ecx | |
| 57 movd (%edi,%edx,4),%mm2 | |
| 58 jmp .L005loop_mmx_enter | |
| 59 .align 16 | |
| 60 .L006loop_mmx: | |
| 61 addb %cl,%bl | |
| 62 psllq $56,%mm1 | |
| 63 movl (%edi,%ebx,4),%edx | |
| 64 movl %ecx,(%edi,%ebx,4) | |
| 65 movl %edx,(%edi,%eax,4) | |
| 66 incl %eax | |
| 67 addl %ecx,%edx | |
| 68 movzbl %al,%eax | |
| 69 movzbl %dl,%edx | |
| 70 pxor %mm1,%mm2 | |
| 71 movq (%esi),%mm0 | |
| 72 movq %mm2,-8(%ebp,%esi,1) | |
| 73 movl (%edi,%eax,4),%ecx | |
| 74 movd (%edi,%edx,4),%mm2 | |
| 75 .L005loop_mmx_enter: | |
| 76 addb %cl,%bl | |
| 77 movl (%edi,%ebx,4),%edx | |
| 78 movl %ecx,(%edi,%ebx,4) | |
| 79 movl %edx,(%edi,%eax,4) | |
| 80 incl %eax | |
| 81 addl %ecx,%edx | |
| 82 movzbl %al,%eax | |
| 83 movzbl %dl,%edx | |
| 84 pxor %mm0,%mm2 | |
| 85 movl (%edi,%eax,4),%ecx | |
| 86 movd (%edi,%edx,4),%mm1 | |
| 87 addb %cl,%bl | |
| 88 psllq $8,%mm1 | |
| 89 movl (%edi,%ebx,4),%edx | |
| 90 movl %ecx,(%edi,%ebx,4) | |
| 91 movl %edx,(%edi,%eax,4) | |
| 92 incl %eax | |
| 93 addl %ecx,%edx | |
| 94 movzbl %al,%eax | |
| 95 movzbl %dl,%edx | |
| 96 pxor %mm1,%mm2 | |
| 97 movl (%edi,%eax,4),%ecx | |
| 98 movd (%edi,%edx,4),%mm1 | |
| 99 addb %cl,%bl | |
| 100 psllq $16,%mm1 | |
| 101 movl (%edi,%ebx,4),%edx | |
| 102 movl %ecx,(%edi,%ebx,4) | |
| 103 movl %edx,(%edi,%eax,4) | |
| 104 incl %eax | |
| 105 addl %ecx,%edx | |
| 106 movzbl %al,%eax | |
| 107 movzbl %dl,%edx | |
| 108 pxor %mm1,%mm2 | |
| 109 movl (%edi,%eax,4),%ecx | |
| 110 movd (%edi,%edx,4),%mm1 | |
| 111 addb %cl,%bl | |
| 112 psllq $24,%mm1 | |
| 113 movl (%edi,%ebx,4),%edx | |
| 114 movl %ecx,(%edi,%ebx,4) | |
| 115 movl %edx,(%edi,%eax,4) | |
| 116 incl %eax | |
| 117 addl %ecx,%edx | |
| 118 movzbl %al,%eax | |
| 119 movzbl %dl,%edx | |
| 120 pxor %mm1,%mm2 | |
| 121 movl (%edi,%eax,4),%ecx | |
| 122 movd (%edi,%edx,4),%mm1 | |
| 123 addb %cl,%bl | |
| 124 psllq $32,%mm1 | |
| 125 movl (%edi,%ebx,4),%edx | |
| 126 movl %ecx,(%edi,%ebx,4) | |
| 127 movl %edx,(%edi,%eax,4) | |
| 128 incl %eax | |
| 129 addl %ecx,%edx | |
| 130 movzbl %al,%eax | |
| 131 movzbl %dl,%edx | |
| 132 pxor %mm1,%mm2 | |
| 133 movl (%edi,%eax,4),%ecx | |
| 134 movd (%edi,%edx,4),%mm1 | |
| 135 addb %cl,%bl | |
| 136 psllq $40,%mm1 | |
| 137 movl (%edi,%ebx,4),%edx | |
| 138 movl %ecx,(%edi,%ebx,4) | |
| 139 movl %edx,(%edi,%eax,4) | |
| 140 incl %eax | |
| 141 addl %ecx,%edx | |
| 142 movzbl %al,%eax | |
| 143 movzbl %dl,%edx | |
| 144 pxor %mm1,%mm2 | |
| 145 movl (%edi,%eax,4),%ecx | |
| 146 movd (%edi,%edx,4),%mm1 | |
| 147 addb %cl,%bl | |
| 148 psllq $48,%mm1 | |
| 149 movl (%edi,%ebx,4),%edx | |
| 150 movl %ecx,(%edi,%ebx,4) | |
| 151 movl %edx,(%edi,%eax,4) | |
| 152 incl %eax | |
| 153 addl %ecx,%edx | |
| 154 movzbl %al,%eax | |
| 155 movzbl %dl,%edx | |
| 156 pxor %mm1,%mm2 | |
| 157 movl (%edi,%eax,4),%ecx | |
| 158 movd (%edi,%edx,4),%mm1 | |
| 159 movl %ebx,%edx | |
| 160 xorl %ebx,%ebx | |
| 161 movb %dl,%bl | |
| 162 cmpl -4(%edi),%esi | |
| 163 leal 8(%esi),%esi | |
| 164 jb .L006loop_mmx | |
| 165 psllq $56,%mm1 | |
| 166 pxor %mm1,%mm2 | |
| 167 movq %mm2,-8(%ebp,%esi,1) | |
| 168 emms | |
| 169 cmpl 24(%esp),%esi | |
| 170 je .L007done | |
| 171 jmp .L002loop1 | |
| 172 .align 16 | |
| 173 .L003go4loop4: | |
| 174 leal -4(%esi,%edx,1),%edx | |
| 175 movl %edx,28(%esp) | |
| 176 .L008loop4: | |
| 177 addb %cl,%bl | |
| 178 movl (%edi,%ebx,4),%edx | |
| 179 movl %ecx,(%edi,%ebx,4) | |
| 180 movl %edx,(%edi,%eax,4) | |
| 181 addl %ecx,%edx | |
| 182 incb %al | |
| 183 andl $255,%edx | |
| 184 movl (%edi,%eax,4),%ecx | |
| 185 movl (%edi,%edx,4),%ebp | |
| 186 addb %cl,%bl | |
| 187 movl (%edi,%ebx,4),%edx | |
| 188 movl %ecx,(%edi,%ebx,4) | |
| 189 movl %edx,(%edi,%eax,4) | |
| 190 addl %ecx,%edx | |
| 191 incb %al | |
| 192 andl $255,%edx | |
| 193 rorl $8,%ebp | |
| 194 movl (%edi,%eax,4),%ecx | |
| 195 orl (%edi,%edx,4),%ebp | |
| 196 addb %cl,%bl | |
| 197 movl (%edi,%ebx,4),%edx | |
| 198 movl %ecx,(%edi,%ebx,4) | |
| 199 movl %edx,(%edi,%eax,4) | |
| 200 addl %ecx,%edx | |
| 201 incb %al | |
| 202 andl $255,%edx | |
| 203 rorl $8,%ebp | |
| 204 movl (%edi,%eax,4),%ecx | |
| 205 orl (%edi,%edx,4),%ebp | |
| 206 addb %cl,%bl | |
| 207 movl (%edi,%ebx,4),%edx | |
| 208 movl %ecx,(%edi,%ebx,4) | |
| 209 movl %edx,(%edi,%eax,4) | |
| 210 addl %ecx,%edx | |
| 211 incb %al | |
| 212 andl $255,%edx | |
| 213 rorl $8,%ebp | |
| 214 movl 32(%esp),%ecx | |
| 215 orl (%edi,%edx,4),%ebp | |
| 216 rorl $8,%ebp | |
| 217 xorl (%esi),%ebp | |
| 218 cmpl 28(%esp),%esi | |
| 219 movl %ebp,(%ecx,%esi,1) | |
| 220 leal 4(%esi),%esi | |
| 221 movl (%edi,%eax,4),%ecx | |
| 222 jb .L008loop4 | |
| 223 cmpl 24(%esp),%esi | |
| 224 je .L007done | |
| 225 movl 32(%esp),%ebp | |
| 226 .align 16 | |
| 227 .L002loop1: | |
| 228 addb %cl,%bl | |
| 229 movl (%edi,%ebx,4),%edx | |
| 230 movl %ecx,(%edi,%ebx,4) | |
| 231 movl %edx,(%edi,%eax,4) | |
| 232 addl %ecx,%edx | |
| 233 incb %al | |
| 234 andl $255,%edx | |
| 235 movl (%edi,%edx,4),%edx | |
| 236 xorb (%esi),%dl | |
| 237 leal 1(%esi),%esi | |
| 238 movl (%edi,%eax,4),%ecx | |
| 239 cmpl 24(%esp),%esi | |
| 240 movb %dl,-1(%ebp,%esi,1) | |
| 241 jb .L002loop1 | |
| 242 jmp .L007done | |
| 243 .align 16 | |
| 244 .L001RC4_CHAR: | |
| 245 movzbl (%edi,%eax,1),%ecx | |
| 246 .L009cloop1: | |
| 247 addb %cl,%bl | |
| 248 movzbl (%edi,%ebx,1),%edx | |
| 249 movb %cl,(%edi,%ebx,1) | |
| 250 movb %dl,(%edi,%eax,1) | |
| 251 addb %cl,%dl | |
| 252 movzbl (%edi,%edx,1),%edx | |
| 253 addb $1,%al | |
| 254 xorb (%esi),%dl | |
| 255 leal 1(%esi),%esi | |
| 256 movzbl (%edi,%eax,1),%ecx | |
| 257 cmpl 24(%esp),%esi | |
| 258 movb %dl,-1(%ebp,%esi,1) | |
| 259 jb .L009cloop1 | |
| 260 .L007done: | |
| 261 decb %al | |
| 262 movl %ebx,-4(%edi) | |
| 263 movb %al,-8(%edi) | |
| 264 .L000abort: | |
| 265 popl %edi | |
| 266 popl %esi | |
| 267 popl %ebx | |
| 268 popl %ebp | |
| 269 ret | |
| 270 .size asm_RC4,.-.L_asm_RC4_begin | |
| 271 .globl asm_RC4_set_key | |
| 272 .hidden asm_RC4_set_key | |
| 273 .type asm_RC4_set_key,@function | |
| 274 .align 16 | |
| 275 asm_RC4_set_key: | |
| 276 .L_asm_RC4_set_key_begin: | |
| 277 pushl %ebp | |
| 278 pushl %ebx | |
| 279 pushl %esi | |
| 280 pushl %edi | |
| 281 movl 20(%esp),%edi | |
| 282 movl 24(%esp),%ebp | |
| 283 movl 28(%esp),%esi | |
| 284 call .L010PIC_me_up | |
| 285 .L010PIC_me_up: | |
| 286 popl %edx | |
| 287 leal OPENSSL_ia32cap_P-.L010PIC_me_up(%edx),%edx | |
| 288 leal 8(%edi),%edi | |
| 289 leal (%esi,%ebp,1),%esi | |
| 290 negl %ebp | |
| 291 xorl %eax,%eax | |
| 292 movl %ebp,-4(%edi) | |
| 293 btl $20,(%edx) | |
| 294 jc .L011c1stloop | |
| 295 .align 16 | |
| 296 .L012w1stloop: | |
| 297 movl %eax,(%edi,%eax,4) | |
| 298 addb $1,%al | |
| 299 jnc .L012w1stloop | |
| 300 xorl %ecx,%ecx | |
| 301 xorl %edx,%edx | |
| 302 .align 16 | |
| 303 .L013w2ndloop: | |
| 304 movl (%edi,%ecx,4),%eax | |
| 305 addb (%esi,%ebp,1),%dl | |
| 306 addb %al,%dl | |
| 307 addl $1,%ebp | |
| 308 movl (%edi,%edx,4),%ebx | |
| 309 jnz .L014wnowrap | |
| 310 movl -4(%edi),%ebp | |
| 311 .L014wnowrap: | |
| 312 movl %eax,(%edi,%edx,4) | |
| 313 movl %ebx,(%edi,%ecx,4) | |
| 314 addb $1,%cl | |
| 315 jnc .L013w2ndloop | |
| 316 jmp .L015exit | |
| 317 .align 16 | |
| 318 .L011c1stloop: | |
| 319 movb %al,(%edi,%eax,1) | |
| 320 addb $1,%al | |
| 321 jnc .L011c1stloop | |
| 322 xorl %ecx,%ecx | |
| 323 xorl %edx,%edx | |
| 324 xorl %ebx,%ebx | |
| 325 .align 16 | |
| 326 .L016c2ndloop: | |
| 327 movb (%edi,%ecx,1),%al | |
| 328 addb (%esi,%ebp,1),%dl | |
| 329 addb %al,%dl | |
| 330 addl $1,%ebp | |
| 331 movb (%edi,%edx,1),%bl | |
| 332 jnz .L017cnowrap | |
| 333 movl -4(%edi),%ebp | |
| 334 .L017cnowrap: | |
| 335 movb %al,(%edi,%edx,1) | |
| 336 movb %bl,(%edi,%ecx,1) | |
| 337 addb $1,%cl | |
| 338 jnc .L016c2ndloop | |
| 339 movl $-1,256(%edi) | |
| 340 .L015exit: | |
| 341 xorl %eax,%eax | |
| 342 movl %eax,-8(%edi) | |
| 343 movl %eax,-4(%edi) | |
| 344 popl %edi | |
| 345 popl %esi | |
| 346 popl %ebx | |
| 347 popl %ebp | |
| 348 ret | |
| 349 .size asm_RC4_set_key,.-.L_asm_RC4_set_key_begin | |
| 350 #endif | |
| OLD | NEW |