OLD | NEW |
1 #if defined(__i386__) | 1 #if defined(__i386__) |
2 .file "src/crypto/aes/asm/aesni-x86.S" | 2 .file "src/crypto/aes/asm/aesni-x86.S" |
3 .text | 3 .text |
4 .globl _aesni_encrypt | 4 .globl _aesni_encrypt |
5 .private_extern _aesni_encrypt | 5 .private_extern _aesni_encrypt |
6 .align 4 | 6 .align 4 |
7 _aesni_encrypt: | 7 _aesni_encrypt: |
8 L_aesni_encrypt_begin: | 8 L_aesni_encrypt_begin: |
9 movl 4(%esp),%eax | 9 movl 4(%esp),%eax |
10 movl 12(%esp),%edx | 10 movl 12(%esp),%edx |
11 movups (%eax),%xmm2 | 11 movups (%eax),%xmm2 |
12 movl 240(%edx),%ecx | 12 movl 240(%edx),%ecx |
13 movl 8(%esp),%eax | 13 movl 8(%esp),%eax |
14 movups (%edx),%xmm0 | 14 movups (%edx),%xmm0 |
15 movups 16(%edx),%xmm1 | 15 movups 16(%edx),%xmm1 |
16 leal 32(%edx),%edx | 16 leal 32(%edx),%edx |
17 xorps %xmm0,%xmm2 | 17 xorps %xmm0,%xmm2 |
18 L000enc1_loop_1: | 18 L000enc1_loop_1: |
19 .byte 102,15,56,220,209 | 19 .byte 102,15,56,220,209 |
20 decl %ecx | 20 decl %ecx |
21 movups (%edx),%xmm1 | 21 movups (%edx),%xmm1 |
22 leal 16(%edx),%edx | 22 leal 16(%edx),%edx |
23 jnz L000enc1_loop_1 | 23 jnz L000enc1_loop_1 |
24 .byte 102,15,56,221,209 | 24 .byte 102,15,56,221,209 |
25 pxor %xmm0,%xmm0 | |
26 pxor %xmm1,%xmm1 | |
27 movups %xmm2,(%eax) | 25 movups %xmm2,(%eax) |
28 pxor %xmm2,%xmm2 | |
29 ret | 26 ret |
30 .globl _aesni_decrypt | 27 .globl _aesni_decrypt |
31 .private_extern _aesni_decrypt | 28 .private_extern _aesni_decrypt |
32 .align 4 | 29 .align 4 |
33 _aesni_decrypt: | 30 _aesni_decrypt: |
34 L_aesni_decrypt_begin: | 31 L_aesni_decrypt_begin: |
35 movl 4(%esp),%eax | 32 movl 4(%esp),%eax |
36 movl 12(%esp),%edx | 33 movl 12(%esp),%edx |
37 movups (%eax),%xmm2 | 34 movups (%eax),%xmm2 |
38 movl 240(%edx),%ecx | 35 movl 240(%edx),%ecx |
39 movl 8(%esp),%eax | 36 movl 8(%esp),%eax |
40 movups (%edx),%xmm0 | 37 movups (%edx),%xmm0 |
41 movups 16(%edx),%xmm1 | 38 movups 16(%edx),%xmm1 |
42 leal 32(%edx),%edx | 39 leal 32(%edx),%edx |
43 xorps %xmm0,%xmm2 | 40 xorps %xmm0,%xmm2 |
44 L001dec1_loop_2: | 41 L001dec1_loop_2: |
45 .byte 102,15,56,222,209 | 42 .byte 102,15,56,222,209 |
46 decl %ecx | 43 decl %ecx |
47 movups (%edx),%xmm1 | 44 movups (%edx),%xmm1 |
48 leal 16(%edx),%edx | 45 leal 16(%edx),%edx |
49 jnz L001dec1_loop_2 | 46 jnz L001dec1_loop_2 |
50 .byte 102,15,56,223,209 | 47 .byte 102,15,56,223,209 |
51 pxor %xmm0,%xmm0 | |
52 pxor %xmm1,%xmm1 | |
53 movups %xmm2,(%eax) | 48 movups %xmm2,(%eax) |
54 pxor %xmm2,%xmm2 | |
55 ret | 49 ret |
56 .private_extern __aesni_encrypt2 | 50 .private_extern __aesni_encrypt2 |
57 .align 4 | 51 .align 4 |
58 __aesni_encrypt2: | 52 __aesni_encrypt2: |
59 movups (%edx),%xmm0 | 53 movups (%edx),%xmm0 |
60 shll $4,%ecx | 54 shll $4,%ecx |
61 movups 16(%edx),%xmm1 | 55 movups 16(%edx),%xmm1 |
62 xorps %xmm0,%xmm2 | 56 xorps %xmm0,%xmm2 |
63 pxor %xmm0,%xmm3 | 57 pxor %xmm0,%xmm3 |
64 movups 32(%edx),%xmm0 | 58 movups 32(%edx),%xmm0 |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 pxor %xmm0,%xmm3 | 245 pxor %xmm0,%xmm3 |
252 pxor %xmm0,%xmm4 | 246 pxor %xmm0,%xmm4 |
253 .byte 102,15,56,220,209 | 247 .byte 102,15,56,220,209 |
254 pxor %xmm0,%xmm5 | 248 pxor %xmm0,%xmm5 |
255 pxor %xmm0,%xmm6 | 249 pxor %xmm0,%xmm6 |
256 .byte 102,15,56,220,217 | 250 .byte 102,15,56,220,217 |
257 leal 32(%edx,%ecx,1),%edx | 251 leal 32(%edx,%ecx,1),%edx |
258 negl %ecx | 252 negl %ecx |
259 .byte 102,15,56,220,225 | 253 .byte 102,15,56,220,225 |
260 pxor %xmm0,%xmm7 | 254 pxor %xmm0,%xmm7 |
261 movups (%edx,%ecx,1),%xmm0 | |
262 addl $16,%ecx | 255 addl $16,%ecx |
263 » jmp» L008_aesni_encrypt6_inner | 256 .byte» 102,15,56,220,233 |
| 257 .byte» 102,15,56,220,241 |
| 258 .byte» 102,15,56,220,249 |
| 259 » movups» -16(%edx,%ecx,1),%xmm0 |
| 260 » jmp» L_aesni_encrypt6_enter |
264 .align 4,0x90 | 261 .align 4,0x90 |
265 L009enc6_loop: | 262 L008enc6_loop: |
266 .byte 102,15,56,220,209 | 263 .byte 102,15,56,220,209 |
267 .byte 102,15,56,220,217 | 264 .byte 102,15,56,220,217 |
268 .byte 102,15,56,220,225 | 265 .byte 102,15,56,220,225 |
269 L008_aesni_encrypt6_inner: | |
270 .byte 102,15,56,220,233 | 266 .byte 102,15,56,220,233 |
271 .byte 102,15,56,220,241 | 267 .byte 102,15,56,220,241 |
272 .byte 102,15,56,220,249 | 268 .byte 102,15,56,220,249 |
273 L_aesni_encrypt6_enter: | 269 L_aesni_encrypt6_enter: |
274 movups (%edx,%ecx,1),%xmm1 | 270 movups (%edx,%ecx,1),%xmm1 |
275 addl $32,%ecx | 271 addl $32,%ecx |
276 .byte 102,15,56,220,208 | 272 .byte 102,15,56,220,208 |
277 .byte 102,15,56,220,216 | 273 .byte 102,15,56,220,216 |
278 .byte 102,15,56,220,224 | 274 .byte 102,15,56,220,224 |
279 .byte 102,15,56,220,232 | 275 .byte 102,15,56,220,232 |
280 .byte 102,15,56,220,240 | 276 .byte 102,15,56,220,240 |
281 .byte 102,15,56,220,248 | 277 .byte 102,15,56,220,248 |
282 movups -16(%edx,%ecx,1),%xmm0 | 278 movups -16(%edx,%ecx,1),%xmm0 |
283 » jnz» L009enc6_loop | 279 » jnz» L008enc6_loop |
284 .byte 102,15,56,220,209 | 280 .byte 102,15,56,220,209 |
285 .byte 102,15,56,220,217 | 281 .byte 102,15,56,220,217 |
286 .byte 102,15,56,220,225 | 282 .byte 102,15,56,220,225 |
287 .byte 102,15,56,220,233 | 283 .byte 102,15,56,220,233 |
288 .byte 102,15,56,220,241 | 284 .byte 102,15,56,220,241 |
289 .byte 102,15,56,220,249 | 285 .byte 102,15,56,220,249 |
290 .byte 102,15,56,221,208 | 286 .byte 102,15,56,221,208 |
291 .byte 102,15,56,221,216 | 287 .byte 102,15,56,221,216 |
292 .byte 102,15,56,221,224 | 288 .byte 102,15,56,221,224 |
293 .byte 102,15,56,221,232 | 289 .byte 102,15,56,221,232 |
(...skipping 10 matching lines...) Expand all Loading... |
304 pxor %xmm0,%xmm3 | 300 pxor %xmm0,%xmm3 |
305 pxor %xmm0,%xmm4 | 301 pxor %xmm0,%xmm4 |
306 .byte 102,15,56,222,209 | 302 .byte 102,15,56,222,209 |
307 pxor %xmm0,%xmm5 | 303 pxor %xmm0,%xmm5 |
308 pxor %xmm0,%xmm6 | 304 pxor %xmm0,%xmm6 |
309 .byte 102,15,56,222,217 | 305 .byte 102,15,56,222,217 |
310 leal 32(%edx,%ecx,1),%edx | 306 leal 32(%edx,%ecx,1),%edx |
311 negl %ecx | 307 negl %ecx |
312 .byte 102,15,56,222,225 | 308 .byte 102,15,56,222,225 |
313 pxor %xmm0,%xmm7 | 309 pxor %xmm0,%xmm7 |
314 movups (%edx,%ecx,1),%xmm0 | |
315 addl $16,%ecx | 310 addl $16,%ecx |
316 » jmp» L010_aesni_decrypt6_inner | 311 .byte» 102,15,56,222,233 |
| 312 .byte» 102,15,56,222,241 |
| 313 .byte» 102,15,56,222,249 |
| 314 » movups» -16(%edx,%ecx,1),%xmm0 |
| 315 » jmp» L_aesni_decrypt6_enter |
317 .align 4,0x90 | 316 .align 4,0x90 |
318 L011dec6_loop: | 317 L009dec6_loop: |
319 .byte 102,15,56,222,209 | 318 .byte 102,15,56,222,209 |
320 .byte 102,15,56,222,217 | 319 .byte 102,15,56,222,217 |
321 .byte 102,15,56,222,225 | 320 .byte 102,15,56,222,225 |
322 L010_aesni_decrypt6_inner: | |
323 .byte 102,15,56,222,233 | 321 .byte 102,15,56,222,233 |
324 .byte 102,15,56,222,241 | 322 .byte 102,15,56,222,241 |
325 .byte 102,15,56,222,249 | 323 .byte 102,15,56,222,249 |
326 L_aesni_decrypt6_enter: | 324 L_aesni_decrypt6_enter: |
327 movups (%edx,%ecx,1),%xmm1 | 325 movups (%edx,%ecx,1),%xmm1 |
328 addl $32,%ecx | 326 addl $32,%ecx |
329 .byte 102,15,56,222,208 | 327 .byte 102,15,56,222,208 |
330 .byte 102,15,56,222,216 | 328 .byte 102,15,56,222,216 |
331 .byte 102,15,56,222,224 | 329 .byte 102,15,56,222,224 |
332 .byte 102,15,56,222,232 | 330 .byte 102,15,56,222,232 |
333 .byte 102,15,56,222,240 | 331 .byte 102,15,56,222,240 |
334 .byte 102,15,56,222,248 | 332 .byte 102,15,56,222,248 |
335 movups -16(%edx,%ecx,1),%xmm0 | 333 movups -16(%edx,%ecx,1),%xmm0 |
336 » jnz» L011dec6_loop | 334 » jnz» L009dec6_loop |
337 .byte 102,15,56,222,209 | 335 .byte 102,15,56,222,209 |
338 .byte 102,15,56,222,217 | 336 .byte 102,15,56,222,217 |
339 .byte 102,15,56,222,225 | 337 .byte 102,15,56,222,225 |
340 .byte 102,15,56,222,233 | 338 .byte 102,15,56,222,233 |
341 .byte 102,15,56,222,241 | 339 .byte 102,15,56,222,241 |
342 .byte 102,15,56,222,249 | 340 .byte 102,15,56,222,249 |
343 .byte 102,15,56,223,208 | 341 .byte 102,15,56,223,208 |
344 .byte 102,15,56,223,216 | 342 .byte 102,15,56,223,216 |
345 .byte 102,15,56,223,224 | 343 .byte 102,15,56,223,224 |
346 .byte 102,15,56,223,232 | 344 .byte 102,15,56,223,232 |
347 .byte 102,15,56,223,240 | 345 .byte 102,15,56,223,240 |
348 .byte 102,15,56,223,248 | 346 .byte 102,15,56,223,248 |
349 ret | 347 ret |
350 .globl _aesni_ecb_encrypt | 348 .globl _aesni_ecb_encrypt |
351 .private_extern _aesni_ecb_encrypt | 349 .private_extern _aesni_ecb_encrypt |
352 .align 4 | 350 .align 4 |
353 _aesni_ecb_encrypt: | 351 _aesni_ecb_encrypt: |
354 L_aesni_ecb_encrypt_begin: | 352 L_aesni_ecb_encrypt_begin: |
355 pushl %ebp | 353 pushl %ebp |
356 pushl %ebx | 354 pushl %ebx |
357 pushl %esi | 355 pushl %esi |
358 pushl %edi | 356 pushl %edi |
359 movl 20(%esp),%esi | 357 movl 20(%esp),%esi |
360 movl 24(%esp),%edi | 358 movl 24(%esp),%edi |
361 movl 28(%esp),%eax | 359 movl 28(%esp),%eax |
362 movl 32(%esp),%edx | 360 movl 32(%esp),%edx |
363 movl 36(%esp),%ebx | 361 movl 36(%esp),%ebx |
364 andl $-16,%eax | 362 andl $-16,%eax |
365 » jz» L012ecb_ret | 363 » jz» L010ecb_ret |
366 movl 240(%edx),%ecx | 364 movl 240(%edx),%ecx |
367 testl %ebx,%ebx | 365 testl %ebx,%ebx |
368 » jz» L013ecb_decrypt | 366 » jz» L011ecb_decrypt |
369 movl %edx,%ebp | 367 movl %edx,%ebp |
370 movl %ecx,%ebx | 368 movl %ecx,%ebx |
371 cmpl $96,%eax | 369 cmpl $96,%eax |
372 » jb» L014ecb_enc_tail | 370 » jb» L012ecb_enc_tail |
373 movdqu (%esi),%xmm2 | 371 movdqu (%esi),%xmm2 |
374 movdqu 16(%esi),%xmm3 | 372 movdqu 16(%esi),%xmm3 |
375 movdqu 32(%esi),%xmm4 | 373 movdqu 32(%esi),%xmm4 |
376 movdqu 48(%esi),%xmm5 | 374 movdqu 48(%esi),%xmm5 |
377 movdqu 64(%esi),%xmm6 | 375 movdqu 64(%esi),%xmm6 |
378 movdqu 80(%esi),%xmm7 | 376 movdqu 80(%esi),%xmm7 |
379 leal 96(%esi),%esi | 377 leal 96(%esi),%esi |
380 subl $96,%eax | 378 subl $96,%eax |
381 » jmp» L015ecb_enc_loop6_enter | 379 » jmp» L013ecb_enc_loop6_enter |
382 .align 4,0x90 | 380 .align 4,0x90 |
383 L016ecb_enc_loop6: | 381 L014ecb_enc_loop6: |
384 movups %xmm2,(%edi) | 382 movups %xmm2,(%edi) |
385 movdqu (%esi),%xmm2 | 383 movdqu (%esi),%xmm2 |
386 movups %xmm3,16(%edi) | 384 movups %xmm3,16(%edi) |
387 movdqu 16(%esi),%xmm3 | 385 movdqu 16(%esi),%xmm3 |
388 movups %xmm4,32(%edi) | 386 movups %xmm4,32(%edi) |
389 movdqu 32(%esi),%xmm4 | 387 movdqu 32(%esi),%xmm4 |
390 movups %xmm5,48(%edi) | 388 movups %xmm5,48(%edi) |
391 movdqu 48(%esi),%xmm5 | 389 movdqu 48(%esi),%xmm5 |
392 movups %xmm6,64(%edi) | 390 movups %xmm6,64(%edi) |
393 movdqu 64(%esi),%xmm6 | 391 movdqu 64(%esi),%xmm6 |
394 movups %xmm7,80(%edi) | 392 movups %xmm7,80(%edi) |
395 leal 96(%edi),%edi | 393 leal 96(%edi),%edi |
396 movdqu 80(%esi),%xmm7 | 394 movdqu 80(%esi),%xmm7 |
397 leal 96(%esi),%esi | 395 leal 96(%esi),%esi |
398 L015ecb_enc_loop6_enter: | 396 L013ecb_enc_loop6_enter: |
399 call __aesni_encrypt6 | 397 call __aesni_encrypt6 |
400 movl %ebp,%edx | 398 movl %ebp,%edx |
401 movl %ebx,%ecx | 399 movl %ebx,%ecx |
402 subl $96,%eax | 400 subl $96,%eax |
403 » jnc» L016ecb_enc_loop6 | 401 » jnc» L014ecb_enc_loop6 |
404 movups %xmm2,(%edi) | 402 movups %xmm2,(%edi) |
405 movups %xmm3,16(%edi) | 403 movups %xmm3,16(%edi) |
406 movups %xmm4,32(%edi) | 404 movups %xmm4,32(%edi) |
407 movups %xmm5,48(%edi) | 405 movups %xmm5,48(%edi) |
408 movups %xmm6,64(%edi) | 406 movups %xmm6,64(%edi) |
409 movups %xmm7,80(%edi) | 407 movups %xmm7,80(%edi) |
410 leal 96(%edi),%edi | 408 leal 96(%edi),%edi |
411 addl $96,%eax | 409 addl $96,%eax |
412 » jz» L012ecb_ret | 410 » jz» L010ecb_ret |
413 L014ecb_enc_tail: | 411 L012ecb_enc_tail: |
414 movups (%esi),%xmm2 | 412 movups (%esi),%xmm2 |
415 cmpl $32,%eax | 413 cmpl $32,%eax |
416 » jb» L017ecb_enc_one | 414 » jb» L015ecb_enc_one |
417 movups 16(%esi),%xmm3 | 415 movups 16(%esi),%xmm3 |
418 » je» L018ecb_enc_two | 416 » je» L016ecb_enc_two |
419 movups 32(%esi),%xmm4 | 417 movups 32(%esi),%xmm4 |
420 cmpl $64,%eax | 418 cmpl $64,%eax |
421 » jb» L019ecb_enc_three | 419 » jb» L017ecb_enc_three |
422 movups 48(%esi),%xmm5 | 420 movups 48(%esi),%xmm5 |
423 » je» L020ecb_enc_four | 421 » je» L018ecb_enc_four |
424 movups 64(%esi),%xmm6 | 422 movups 64(%esi),%xmm6 |
425 xorps %xmm7,%xmm7 | 423 xorps %xmm7,%xmm7 |
426 call __aesni_encrypt6 | 424 call __aesni_encrypt6 |
427 movups %xmm2,(%edi) | 425 movups %xmm2,(%edi) |
428 movups %xmm3,16(%edi) | 426 movups %xmm3,16(%edi) |
429 movups %xmm4,32(%edi) | 427 movups %xmm4,32(%edi) |
430 movups %xmm5,48(%edi) | 428 movups %xmm5,48(%edi) |
431 movups %xmm6,64(%edi) | 429 movups %xmm6,64(%edi) |
432 » jmp» L012ecb_ret | 430 » jmp» L010ecb_ret |
433 .align 4,0x90 | 431 .align 4,0x90 |
434 L017ecb_enc_one: | 432 L015ecb_enc_one: |
435 movups (%edx),%xmm0 | 433 movups (%edx),%xmm0 |
436 movups 16(%edx),%xmm1 | 434 movups 16(%edx),%xmm1 |
437 leal 32(%edx),%edx | 435 leal 32(%edx),%edx |
438 xorps %xmm0,%xmm2 | 436 xorps %xmm0,%xmm2 |
439 L021enc1_loop_3: | 437 L019enc1_loop_3: |
440 .byte 102,15,56,220,209 | 438 .byte 102,15,56,220,209 |
441 decl %ecx | 439 decl %ecx |
442 movups (%edx),%xmm1 | 440 movups (%edx),%xmm1 |
443 leal 16(%edx),%edx | 441 leal 16(%edx),%edx |
444 » jnz» L021enc1_loop_3 | 442 » jnz» L019enc1_loop_3 |
445 .byte 102,15,56,221,209 | 443 .byte 102,15,56,221,209 |
446 movups %xmm2,(%edi) | 444 movups %xmm2,(%edi) |
447 » jmp» L012ecb_ret | 445 » jmp» L010ecb_ret |
448 .align 4,0x90 | 446 .align 4,0x90 |
449 L018ecb_enc_two: | 447 L016ecb_enc_two: |
450 call __aesni_encrypt2 | 448 call __aesni_encrypt2 |
451 movups %xmm2,(%edi) | 449 movups %xmm2,(%edi) |
452 movups %xmm3,16(%edi) | 450 movups %xmm3,16(%edi) |
453 » jmp» L012ecb_ret | 451 » jmp» L010ecb_ret |
454 .align 4,0x90 | 452 .align 4,0x90 |
455 L019ecb_enc_three: | 453 L017ecb_enc_three: |
456 call __aesni_encrypt3 | 454 call __aesni_encrypt3 |
457 movups %xmm2,(%edi) | 455 movups %xmm2,(%edi) |
458 movups %xmm3,16(%edi) | 456 movups %xmm3,16(%edi) |
459 movups %xmm4,32(%edi) | 457 movups %xmm4,32(%edi) |
460 » jmp» L012ecb_ret | 458 » jmp» L010ecb_ret |
461 .align 4,0x90 | 459 .align 4,0x90 |
462 L020ecb_enc_four: | 460 L018ecb_enc_four: |
463 call __aesni_encrypt4 | 461 call __aesni_encrypt4 |
464 movups %xmm2,(%edi) | 462 movups %xmm2,(%edi) |
465 movups %xmm3,16(%edi) | 463 movups %xmm3,16(%edi) |
466 movups %xmm4,32(%edi) | 464 movups %xmm4,32(%edi) |
467 movups %xmm5,48(%edi) | 465 movups %xmm5,48(%edi) |
468 » jmp» L012ecb_ret | 466 » jmp» L010ecb_ret |
469 .align 4,0x90 | 467 .align 4,0x90 |
470 L013ecb_decrypt: | 468 L011ecb_decrypt: |
471 movl %edx,%ebp | 469 movl %edx,%ebp |
472 movl %ecx,%ebx | 470 movl %ecx,%ebx |
473 cmpl $96,%eax | 471 cmpl $96,%eax |
474 » jb» L022ecb_dec_tail | 472 » jb» L020ecb_dec_tail |
475 movdqu (%esi),%xmm2 | 473 movdqu (%esi),%xmm2 |
476 movdqu 16(%esi),%xmm3 | 474 movdqu 16(%esi),%xmm3 |
477 movdqu 32(%esi),%xmm4 | 475 movdqu 32(%esi),%xmm4 |
478 movdqu 48(%esi),%xmm5 | 476 movdqu 48(%esi),%xmm5 |
479 movdqu 64(%esi),%xmm6 | 477 movdqu 64(%esi),%xmm6 |
480 movdqu 80(%esi),%xmm7 | 478 movdqu 80(%esi),%xmm7 |
481 leal 96(%esi),%esi | 479 leal 96(%esi),%esi |
482 subl $96,%eax | 480 subl $96,%eax |
483 » jmp» L023ecb_dec_loop6_enter | 481 » jmp» L021ecb_dec_loop6_enter |
484 .align 4,0x90 | 482 .align 4,0x90 |
485 L024ecb_dec_loop6: | 483 L022ecb_dec_loop6: |
486 movups %xmm2,(%edi) | 484 movups %xmm2,(%edi) |
487 movdqu (%esi),%xmm2 | 485 movdqu (%esi),%xmm2 |
488 movups %xmm3,16(%edi) | 486 movups %xmm3,16(%edi) |
489 movdqu 16(%esi),%xmm3 | 487 movdqu 16(%esi),%xmm3 |
490 movups %xmm4,32(%edi) | 488 movups %xmm4,32(%edi) |
491 movdqu 32(%esi),%xmm4 | 489 movdqu 32(%esi),%xmm4 |
492 movups %xmm5,48(%edi) | 490 movups %xmm5,48(%edi) |
493 movdqu 48(%esi),%xmm5 | 491 movdqu 48(%esi),%xmm5 |
494 movups %xmm6,64(%edi) | 492 movups %xmm6,64(%edi) |
495 movdqu 64(%esi),%xmm6 | 493 movdqu 64(%esi),%xmm6 |
496 movups %xmm7,80(%edi) | 494 movups %xmm7,80(%edi) |
497 leal 96(%edi),%edi | 495 leal 96(%edi),%edi |
498 movdqu 80(%esi),%xmm7 | 496 movdqu 80(%esi),%xmm7 |
499 leal 96(%esi),%esi | 497 leal 96(%esi),%esi |
500 L023ecb_dec_loop6_enter: | 498 L021ecb_dec_loop6_enter: |
501 call __aesni_decrypt6 | 499 call __aesni_decrypt6 |
502 movl %ebp,%edx | 500 movl %ebp,%edx |
503 movl %ebx,%ecx | 501 movl %ebx,%ecx |
504 subl $96,%eax | 502 subl $96,%eax |
505 » jnc» L024ecb_dec_loop6 | 503 » jnc» L022ecb_dec_loop6 |
506 movups %xmm2,(%edi) | 504 movups %xmm2,(%edi) |
507 movups %xmm3,16(%edi) | 505 movups %xmm3,16(%edi) |
508 movups %xmm4,32(%edi) | 506 movups %xmm4,32(%edi) |
509 movups %xmm5,48(%edi) | 507 movups %xmm5,48(%edi) |
510 movups %xmm6,64(%edi) | 508 movups %xmm6,64(%edi) |
511 movups %xmm7,80(%edi) | 509 movups %xmm7,80(%edi) |
512 leal 96(%edi),%edi | 510 leal 96(%edi),%edi |
513 addl $96,%eax | 511 addl $96,%eax |
514 » jz» L012ecb_ret | 512 » jz» L010ecb_ret |
515 L022ecb_dec_tail: | 513 L020ecb_dec_tail: |
516 movups (%esi),%xmm2 | 514 movups (%esi),%xmm2 |
517 cmpl $32,%eax | 515 cmpl $32,%eax |
518 » jb» L025ecb_dec_one | 516 » jb» L023ecb_dec_one |
519 movups 16(%esi),%xmm3 | 517 movups 16(%esi),%xmm3 |
520 » je» L026ecb_dec_two | 518 » je» L024ecb_dec_two |
521 movups 32(%esi),%xmm4 | 519 movups 32(%esi),%xmm4 |
522 cmpl $64,%eax | 520 cmpl $64,%eax |
523 » jb» L027ecb_dec_three | 521 » jb» L025ecb_dec_three |
524 movups 48(%esi),%xmm5 | 522 movups 48(%esi),%xmm5 |
525 » je» L028ecb_dec_four | 523 » je» L026ecb_dec_four |
526 movups 64(%esi),%xmm6 | 524 movups 64(%esi),%xmm6 |
527 xorps %xmm7,%xmm7 | 525 xorps %xmm7,%xmm7 |
528 call __aesni_decrypt6 | 526 call __aesni_decrypt6 |
529 movups %xmm2,(%edi) | 527 movups %xmm2,(%edi) |
530 movups %xmm3,16(%edi) | 528 movups %xmm3,16(%edi) |
531 movups %xmm4,32(%edi) | 529 movups %xmm4,32(%edi) |
532 movups %xmm5,48(%edi) | 530 movups %xmm5,48(%edi) |
533 movups %xmm6,64(%edi) | 531 movups %xmm6,64(%edi) |
534 » jmp» L012ecb_ret | 532 » jmp» L010ecb_ret |
535 .align 4,0x90 | 533 .align 4,0x90 |
536 L025ecb_dec_one: | 534 L023ecb_dec_one: |
537 movups (%edx),%xmm0 | 535 movups (%edx),%xmm0 |
538 movups 16(%edx),%xmm1 | 536 movups 16(%edx),%xmm1 |
539 leal 32(%edx),%edx | 537 leal 32(%edx),%edx |
540 xorps %xmm0,%xmm2 | 538 xorps %xmm0,%xmm2 |
541 L029dec1_loop_4: | 539 L027dec1_loop_4: |
542 .byte 102,15,56,222,209 | 540 .byte 102,15,56,222,209 |
543 decl %ecx | 541 decl %ecx |
544 movups (%edx),%xmm1 | 542 movups (%edx),%xmm1 |
545 leal 16(%edx),%edx | 543 leal 16(%edx),%edx |
546 » jnz» L029dec1_loop_4 | 544 » jnz» L027dec1_loop_4 |
547 .byte 102,15,56,223,209 | 545 .byte 102,15,56,223,209 |
548 movups %xmm2,(%edi) | 546 movups %xmm2,(%edi) |
549 » jmp» L012ecb_ret | 547 » jmp» L010ecb_ret |
550 .align 4,0x90 | 548 .align 4,0x90 |
551 L026ecb_dec_two: | 549 L024ecb_dec_two: |
552 call __aesni_decrypt2 | 550 call __aesni_decrypt2 |
553 movups %xmm2,(%edi) | 551 movups %xmm2,(%edi) |
554 movups %xmm3,16(%edi) | 552 movups %xmm3,16(%edi) |
555 » jmp» L012ecb_ret | 553 » jmp» L010ecb_ret |
556 .align 4,0x90 | 554 .align 4,0x90 |
557 L027ecb_dec_three: | 555 L025ecb_dec_three: |
558 call __aesni_decrypt3 | 556 call __aesni_decrypt3 |
559 movups %xmm2,(%edi) | 557 movups %xmm2,(%edi) |
560 movups %xmm3,16(%edi) | 558 movups %xmm3,16(%edi) |
561 movups %xmm4,32(%edi) | 559 movups %xmm4,32(%edi) |
562 » jmp» L012ecb_ret | 560 » jmp» L010ecb_ret |
563 .align 4,0x90 | 561 .align 4,0x90 |
564 L028ecb_dec_four: | 562 L026ecb_dec_four: |
565 call __aesni_decrypt4 | 563 call __aesni_decrypt4 |
566 movups %xmm2,(%edi) | 564 movups %xmm2,(%edi) |
567 movups %xmm3,16(%edi) | 565 movups %xmm3,16(%edi) |
568 movups %xmm4,32(%edi) | 566 movups %xmm4,32(%edi) |
569 movups %xmm5,48(%edi) | 567 movups %xmm5,48(%edi) |
570 L012ecb_ret: | 568 L010ecb_ret: |
571 » pxor» %xmm0,%xmm0 | |
572 » pxor» %xmm1,%xmm1 | |
573 » pxor» %xmm2,%xmm2 | |
574 » pxor» %xmm3,%xmm3 | |
575 » pxor» %xmm4,%xmm4 | |
576 » pxor» %xmm5,%xmm5 | |
577 » pxor» %xmm6,%xmm6 | |
578 » pxor» %xmm7,%xmm7 | |
579 popl %edi | 569 popl %edi |
580 popl %esi | 570 popl %esi |
581 popl %ebx | 571 popl %ebx |
582 popl %ebp | 572 popl %ebp |
583 ret | 573 ret |
584 .globl _aesni_ccm64_encrypt_blocks | 574 .globl _aesni_ccm64_encrypt_blocks |
585 .private_extern _aesni_ccm64_encrypt_blocks | 575 .private_extern _aesni_ccm64_encrypt_blocks |
586 .align 4 | 576 .align 4 |
587 _aesni_ccm64_encrypt_blocks: | 577 _aesni_ccm64_encrypt_blocks: |
588 L_aesni_ccm64_encrypt_blocks_begin: | 578 L_aesni_ccm64_encrypt_blocks_begin: |
(...skipping 25 matching lines...) Expand all Loading... |
614 movl %ebp,24(%esp) | 604 movl %ebp,24(%esp) |
615 movl %ebp,28(%esp) | 605 movl %ebp,28(%esp) |
616 shll $4,%ecx | 606 shll $4,%ecx |
617 movl $16,%ebx | 607 movl $16,%ebx |
618 leal (%edx),%ebp | 608 leal (%edx),%ebp |
619 movdqa (%esp),%xmm5 | 609 movdqa (%esp),%xmm5 |
620 movdqa %xmm7,%xmm2 | 610 movdqa %xmm7,%xmm2 |
621 leal 32(%edx,%ecx,1),%edx | 611 leal 32(%edx,%ecx,1),%edx |
622 subl %ecx,%ebx | 612 subl %ecx,%ebx |
623 .byte 102,15,56,0,253 | 613 .byte 102,15,56,0,253 |
624 L030ccm64_enc_outer: | 614 L028ccm64_enc_outer: |
625 movups (%ebp),%xmm0 | 615 movups (%ebp),%xmm0 |
626 movl %ebx,%ecx | 616 movl %ebx,%ecx |
627 movups (%esi),%xmm6 | 617 movups (%esi),%xmm6 |
628 xorps %xmm0,%xmm2 | 618 xorps %xmm0,%xmm2 |
629 movups 16(%ebp),%xmm1 | 619 movups 16(%ebp),%xmm1 |
630 xorps %xmm6,%xmm0 | 620 xorps %xmm6,%xmm0 |
631 xorps %xmm0,%xmm3 | 621 xorps %xmm0,%xmm3 |
632 movups 32(%ebp),%xmm0 | 622 movups 32(%ebp),%xmm0 |
633 L031ccm64_enc2_loop: | 623 L029ccm64_enc2_loop: |
634 .byte 102,15,56,220,209 | 624 .byte 102,15,56,220,209 |
635 .byte 102,15,56,220,217 | 625 .byte 102,15,56,220,217 |
636 movups (%edx,%ecx,1),%xmm1 | 626 movups (%edx,%ecx,1),%xmm1 |
637 addl $32,%ecx | 627 addl $32,%ecx |
638 .byte 102,15,56,220,208 | 628 .byte 102,15,56,220,208 |
639 .byte 102,15,56,220,216 | 629 .byte 102,15,56,220,216 |
640 movups -16(%edx,%ecx,1),%xmm0 | 630 movups -16(%edx,%ecx,1),%xmm0 |
641 » jnz» L031ccm64_enc2_loop | 631 » jnz» L029ccm64_enc2_loop |
642 .byte 102,15,56,220,209 | 632 .byte 102,15,56,220,209 |
643 .byte 102,15,56,220,217 | 633 .byte 102,15,56,220,217 |
644 paddq 16(%esp),%xmm7 | 634 paddq 16(%esp),%xmm7 |
645 decl %eax | 635 decl %eax |
646 .byte 102,15,56,221,208 | 636 .byte 102,15,56,221,208 |
647 .byte 102,15,56,221,216 | 637 .byte 102,15,56,221,216 |
648 leal 16(%esi),%esi | 638 leal 16(%esi),%esi |
649 xorps %xmm2,%xmm6 | 639 xorps %xmm2,%xmm6 |
650 movdqa %xmm7,%xmm2 | 640 movdqa %xmm7,%xmm2 |
651 movups %xmm6,(%edi) | 641 movups %xmm6,(%edi) |
652 .byte 102,15,56,0,213 | 642 .byte 102,15,56,0,213 |
653 leal 16(%edi),%edi | 643 leal 16(%edi),%edi |
654 » jnz» L030ccm64_enc_outer | 644 » jnz» L028ccm64_enc_outer |
655 movl 48(%esp),%esp | 645 movl 48(%esp),%esp |
656 movl 40(%esp),%edi | 646 movl 40(%esp),%edi |
657 movups %xmm3,(%edi) | 647 movups %xmm3,(%edi) |
658 pxor %xmm0,%xmm0 | |
659 pxor %xmm1,%xmm1 | |
660 pxor %xmm2,%xmm2 | |
661 pxor %xmm3,%xmm3 | |
662 pxor %xmm4,%xmm4 | |
663 pxor %xmm5,%xmm5 | |
664 pxor %xmm6,%xmm6 | |
665 pxor %xmm7,%xmm7 | |
666 popl %edi | 648 popl %edi |
667 popl %esi | 649 popl %esi |
668 popl %ebx | 650 popl %ebx |
669 popl %ebp | 651 popl %ebp |
670 ret | 652 ret |
671 .globl _aesni_ccm64_decrypt_blocks | 653 .globl _aesni_ccm64_decrypt_blocks |
672 .private_extern _aesni_ccm64_decrypt_blocks | 654 .private_extern _aesni_ccm64_decrypt_blocks |
673 .align 4 | 655 .align 4 |
674 _aesni_ccm64_decrypt_blocks: | 656 _aesni_ccm64_decrypt_blocks: |
675 L_aesni_ccm64_decrypt_blocks_begin: | 657 L_aesni_ccm64_decrypt_blocks_begin: |
(...skipping 26 matching lines...) Expand all Loading... |
702 movl %ebp,28(%esp) | 684 movl %ebp,28(%esp) |
703 movdqa (%esp),%xmm5 | 685 movdqa (%esp),%xmm5 |
704 movdqa %xmm7,%xmm2 | 686 movdqa %xmm7,%xmm2 |
705 movl %edx,%ebp | 687 movl %edx,%ebp |
706 movl %ecx,%ebx | 688 movl %ecx,%ebx |
707 .byte 102,15,56,0,253 | 689 .byte 102,15,56,0,253 |
708 movups (%edx),%xmm0 | 690 movups (%edx),%xmm0 |
709 movups 16(%edx),%xmm1 | 691 movups 16(%edx),%xmm1 |
710 leal 32(%edx),%edx | 692 leal 32(%edx),%edx |
711 xorps %xmm0,%xmm2 | 693 xorps %xmm0,%xmm2 |
712 L032enc1_loop_5: | 694 L030enc1_loop_5: |
713 .byte 102,15,56,220,209 | 695 .byte 102,15,56,220,209 |
714 decl %ecx | 696 decl %ecx |
715 movups (%edx),%xmm1 | 697 movups (%edx),%xmm1 |
716 leal 16(%edx),%edx | 698 leal 16(%edx),%edx |
717 » jnz» L032enc1_loop_5 | 699 » jnz» L030enc1_loop_5 |
718 .byte 102,15,56,221,209 | 700 .byte 102,15,56,221,209 |
719 shll $4,%ebx | 701 shll $4,%ebx |
720 movl $16,%ecx | 702 movl $16,%ecx |
721 movups (%esi),%xmm6 | 703 movups (%esi),%xmm6 |
722 paddq 16(%esp),%xmm7 | 704 paddq 16(%esp),%xmm7 |
723 leal 16(%esi),%esi | 705 leal 16(%esi),%esi |
724 subl %ebx,%ecx | 706 subl %ebx,%ecx |
725 leal 32(%ebp,%ebx,1),%edx | 707 leal 32(%ebp,%ebx,1),%edx |
726 movl %ecx,%ebx | 708 movl %ecx,%ebx |
727 » jmp» L033ccm64_dec_outer | 709 » jmp» L031ccm64_dec_outer |
728 .align 4,0x90 | 710 .align 4,0x90 |
729 L033ccm64_dec_outer: | 711 L031ccm64_dec_outer: |
730 xorps %xmm2,%xmm6 | 712 xorps %xmm2,%xmm6 |
731 movdqa %xmm7,%xmm2 | 713 movdqa %xmm7,%xmm2 |
732 movups %xmm6,(%edi) | 714 movups %xmm6,(%edi) |
733 leal 16(%edi),%edi | 715 leal 16(%edi),%edi |
734 .byte 102,15,56,0,213 | 716 .byte 102,15,56,0,213 |
735 subl $1,%eax | 717 subl $1,%eax |
736 » jz» L034ccm64_dec_break | 718 » jz» L032ccm64_dec_break |
737 movups (%ebp),%xmm0 | 719 movups (%ebp),%xmm0 |
738 movl %ebx,%ecx | 720 movl %ebx,%ecx |
739 movups 16(%ebp),%xmm1 | 721 movups 16(%ebp),%xmm1 |
740 xorps %xmm0,%xmm6 | 722 xorps %xmm0,%xmm6 |
741 xorps %xmm0,%xmm2 | 723 xorps %xmm0,%xmm2 |
742 xorps %xmm6,%xmm3 | 724 xorps %xmm6,%xmm3 |
743 movups 32(%ebp),%xmm0 | 725 movups 32(%ebp),%xmm0 |
744 L035ccm64_dec2_loop: | 726 L033ccm64_dec2_loop: |
745 .byte 102,15,56,220,209 | 727 .byte 102,15,56,220,209 |
746 .byte 102,15,56,220,217 | 728 .byte 102,15,56,220,217 |
747 movups (%edx,%ecx,1),%xmm1 | 729 movups (%edx,%ecx,1),%xmm1 |
748 addl $32,%ecx | 730 addl $32,%ecx |
749 .byte 102,15,56,220,208 | 731 .byte 102,15,56,220,208 |
750 .byte 102,15,56,220,216 | 732 .byte 102,15,56,220,216 |
751 movups -16(%edx,%ecx,1),%xmm0 | 733 movups -16(%edx,%ecx,1),%xmm0 |
752 » jnz» L035ccm64_dec2_loop | 734 » jnz» L033ccm64_dec2_loop |
753 movups (%esi),%xmm6 | 735 movups (%esi),%xmm6 |
754 paddq 16(%esp),%xmm7 | 736 paddq 16(%esp),%xmm7 |
755 .byte 102,15,56,220,209 | 737 .byte 102,15,56,220,209 |
756 .byte 102,15,56,220,217 | 738 .byte 102,15,56,220,217 |
757 .byte 102,15,56,221,208 | 739 .byte 102,15,56,221,208 |
758 .byte 102,15,56,221,216 | 740 .byte 102,15,56,221,216 |
759 leal 16(%esi),%esi | 741 leal 16(%esi),%esi |
760 » jmp» L033ccm64_dec_outer | 742 » jmp» L031ccm64_dec_outer |
761 .align 4,0x90 | 743 .align 4,0x90 |
762 L034ccm64_dec_break: | 744 L032ccm64_dec_break: |
763 movl 240(%ebp),%ecx | 745 movl 240(%ebp),%ecx |
764 movl %ebp,%edx | 746 movl %ebp,%edx |
765 movups (%edx),%xmm0 | 747 movups (%edx),%xmm0 |
766 movups 16(%edx),%xmm1 | 748 movups 16(%edx),%xmm1 |
767 xorps %xmm0,%xmm6 | 749 xorps %xmm0,%xmm6 |
768 leal 32(%edx),%edx | 750 leal 32(%edx),%edx |
769 xorps %xmm6,%xmm3 | 751 xorps %xmm6,%xmm3 |
770 L036enc1_loop_6: | 752 L034enc1_loop_6: |
771 .byte 102,15,56,220,217 | 753 .byte 102,15,56,220,217 |
772 decl %ecx | 754 decl %ecx |
773 movups (%edx),%xmm1 | 755 movups (%edx),%xmm1 |
774 leal 16(%edx),%edx | 756 leal 16(%edx),%edx |
775 » jnz» L036enc1_loop_6 | 757 » jnz» L034enc1_loop_6 |
776 .byte 102,15,56,221,217 | 758 .byte 102,15,56,221,217 |
777 movl 48(%esp),%esp | 759 movl 48(%esp),%esp |
778 movl 40(%esp),%edi | 760 movl 40(%esp),%edi |
779 movups %xmm3,(%edi) | 761 movups %xmm3,(%edi) |
780 pxor %xmm0,%xmm0 | |
781 pxor %xmm1,%xmm1 | |
782 pxor %xmm2,%xmm2 | |
783 pxor %xmm3,%xmm3 | |
784 pxor %xmm4,%xmm4 | |
785 pxor %xmm5,%xmm5 | |
786 pxor %xmm6,%xmm6 | |
787 pxor %xmm7,%xmm7 | |
788 popl %edi | 762 popl %edi |
789 popl %esi | 763 popl %esi |
790 popl %ebx | 764 popl %ebx |
791 popl %ebp | 765 popl %ebp |
792 ret | 766 ret |
793 .globl _aesni_ctr32_encrypt_blocks | 767 .globl _aesni_ctr32_encrypt_blocks |
794 .private_extern _aesni_ctr32_encrypt_blocks | 768 .private_extern _aesni_ctr32_encrypt_blocks |
795 .align 4 | 769 .align 4 |
796 _aesni_ctr32_encrypt_blocks: | 770 _aesni_ctr32_encrypt_blocks: |
797 L_aesni_ctr32_encrypt_blocks_begin: | 771 L_aesni_ctr32_encrypt_blocks_begin: |
798 pushl %ebp | 772 pushl %ebp |
799 pushl %ebx | 773 pushl %ebx |
800 pushl %esi | 774 pushl %esi |
801 pushl %edi | 775 pushl %edi |
802 movl 20(%esp),%esi | 776 movl 20(%esp),%esi |
803 movl 24(%esp),%edi | 777 movl 24(%esp),%edi |
804 movl 28(%esp),%eax | 778 movl 28(%esp),%eax |
805 movl 32(%esp),%edx | 779 movl 32(%esp),%edx |
806 movl 36(%esp),%ebx | 780 movl 36(%esp),%ebx |
807 movl %esp,%ebp | 781 movl %esp,%ebp |
808 subl $88,%esp | 782 subl $88,%esp |
809 andl $-16,%esp | 783 andl $-16,%esp |
810 movl %ebp,80(%esp) | 784 movl %ebp,80(%esp) |
811 cmpl $1,%eax | 785 cmpl $1,%eax |
812 » je» L037ctr32_one_shortcut | 786 » je» L035ctr32_one_shortcut |
813 movdqu (%ebx),%xmm7 | 787 movdqu (%ebx),%xmm7 |
814 movl $202182159,(%esp) | 788 movl $202182159,(%esp) |
815 movl $134810123,4(%esp) | 789 movl $134810123,4(%esp) |
816 movl $67438087,8(%esp) | 790 movl $67438087,8(%esp) |
817 movl $66051,12(%esp) | 791 movl $66051,12(%esp) |
818 movl $6,%ecx | 792 movl $6,%ecx |
819 xorl %ebp,%ebp | 793 xorl %ebp,%ebp |
820 movl %ecx,16(%esp) | 794 movl %ecx,16(%esp) |
821 movl %ecx,20(%esp) | 795 movl %ecx,20(%esp) |
822 movl %ecx,24(%esp) | 796 movl %ecx,24(%esp) |
(...skipping 17 matching lines...) Expand all Loading... |
840 incl %ebp | 814 incl %ebp |
841 .byte 102,15,58,34,205,2 | 815 .byte 102,15,58,34,205,2 |
842 movdqa %xmm0,48(%esp) | 816 movdqa %xmm0,48(%esp) |
843 .byte 102,15,56,0,194 | 817 .byte 102,15,56,0,194 |
844 movdqu (%edx),%xmm6 | 818 movdqu (%edx),%xmm6 |
845 movdqa %xmm1,64(%esp) | 819 movdqa %xmm1,64(%esp) |
846 .byte 102,15,56,0,202 | 820 .byte 102,15,56,0,202 |
847 pshufd $192,%xmm0,%xmm2 | 821 pshufd $192,%xmm0,%xmm2 |
848 pshufd $128,%xmm0,%xmm3 | 822 pshufd $128,%xmm0,%xmm3 |
849 cmpl $6,%eax | 823 cmpl $6,%eax |
850 » jb» L038ctr32_tail | 824 » jb» L036ctr32_tail |
851 pxor %xmm6,%xmm7 | 825 pxor %xmm6,%xmm7 |
852 shll $4,%ecx | 826 shll $4,%ecx |
853 movl $16,%ebx | 827 movl $16,%ebx |
854 movdqa %xmm7,32(%esp) | 828 movdqa %xmm7,32(%esp) |
855 movl %edx,%ebp | 829 movl %edx,%ebp |
856 subl %ecx,%ebx | 830 subl %ecx,%ebx |
857 leal 32(%edx,%ecx,1),%edx | 831 leal 32(%edx,%ecx,1),%edx |
858 subl $6,%eax | 832 subl $6,%eax |
859 » jmp» L039ctr32_loop6 | 833 » jmp» L037ctr32_loop6 |
860 .align 4,0x90 | 834 .align 4,0x90 |
861 L039ctr32_loop6: | 835 L037ctr32_loop6: |
862 pshufd $64,%xmm0,%xmm4 | 836 pshufd $64,%xmm0,%xmm4 |
863 movdqa 32(%esp),%xmm0 | 837 movdqa 32(%esp),%xmm0 |
864 pshufd $192,%xmm1,%xmm5 | 838 pshufd $192,%xmm1,%xmm5 |
865 pxor %xmm0,%xmm2 | 839 pxor %xmm0,%xmm2 |
866 pshufd $128,%xmm1,%xmm6 | 840 pshufd $128,%xmm1,%xmm6 |
867 pxor %xmm0,%xmm3 | 841 pxor %xmm0,%xmm3 |
868 pshufd $64,%xmm1,%xmm7 | 842 pshufd $64,%xmm1,%xmm7 |
869 movups 16(%ebp),%xmm1 | 843 movups 16(%ebp),%xmm1 |
870 pxor %xmm0,%xmm4 | 844 pxor %xmm0,%xmm4 |
871 pxor %xmm0,%xmm5 | 845 pxor %xmm0,%xmm5 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 movups %xmm5,48(%edi) | 879 movups %xmm5,48(%edi) |
906 xorps %xmm3,%xmm7 | 880 xorps %xmm3,%xmm7 |
907 movdqa %xmm1,64(%esp) | 881 movdqa %xmm1,64(%esp) |
908 .byte 102,15,56,0,202 | 882 .byte 102,15,56,0,202 |
909 movups %xmm6,64(%edi) | 883 movups %xmm6,64(%edi) |
910 pshufd $192,%xmm0,%xmm2 | 884 pshufd $192,%xmm0,%xmm2 |
911 movups %xmm7,80(%edi) | 885 movups %xmm7,80(%edi) |
912 leal 96(%edi),%edi | 886 leal 96(%edi),%edi |
913 pshufd $128,%xmm0,%xmm3 | 887 pshufd $128,%xmm0,%xmm3 |
914 subl $6,%eax | 888 subl $6,%eax |
915 » jnc» L039ctr32_loop6 | 889 » jnc» L037ctr32_loop6 |
916 addl $6,%eax | 890 addl $6,%eax |
917 » jz» L040ctr32_ret | 891 » jz» L038ctr32_ret |
918 movdqu (%ebp),%xmm7 | 892 movdqu (%ebp),%xmm7 |
919 movl %ebp,%edx | 893 movl %ebp,%edx |
920 pxor 32(%esp),%xmm7 | 894 pxor 32(%esp),%xmm7 |
921 movl 240(%ebp),%ecx | 895 movl 240(%ebp),%ecx |
922 L038ctr32_tail: | 896 L036ctr32_tail: |
923 por %xmm7,%xmm2 | 897 por %xmm7,%xmm2 |
924 cmpl $2,%eax | 898 cmpl $2,%eax |
925 » jb» L041ctr32_one | 899 » jb» L039ctr32_one |
926 pshufd $64,%xmm0,%xmm4 | 900 pshufd $64,%xmm0,%xmm4 |
927 por %xmm7,%xmm3 | 901 por %xmm7,%xmm3 |
928 » je» L042ctr32_two | 902 » je» L040ctr32_two |
929 pshufd $192,%xmm1,%xmm5 | 903 pshufd $192,%xmm1,%xmm5 |
930 por %xmm7,%xmm4 | 904 por %xmm7,%xmm4 |
931 cmpl $4,%eax | 905 cmpl $4,%eax |
932 » jb» L043ctr32_three | 906 » jb» L041ctr32_three |
933 pshufd $128,%xmm1,%xmm6 | 907 pshufd $128,%xmm1,%xmm6 |
934 por %xmm7,%xmm5 | 908 por %xmm7,%xmm5 |
935 » je» L044ctr32_four | 909 » je» L042ctr32_four |
936 por %xmm7,%xmm6 | 910 por %xmm7,%xmm6 |
937 call __aesni_encrypt6 | 911 call __aesni_encrypt6 |
938 movups (%esi),%xmm1 | 912 movups (%esi),%xmm1 |
939 movups 16(%esi),%xmm0 | 913 movups 16(%esi),%xmm0 |
940 xorps %xmm1,%xmm2 | 914 xorps %xmm1,%xmm2 |
941 movups 32(%esi),%xmm1 | 915 movups 32(%esi),%xmm1 |
942 xorps %xmm0,%xmm3 | 916 xorps %xmm0,%xmm3 |
943 movups 48(%esi),%xmm0 | 917 movups 48(%esi),%xmm0 |
944 xorps %xmm1,%xmm4 | 918 xorps %xmm1,%xmm4 |
945 movups 64(%esi),%xmm1 | 919 movups 64(%esi),%xmm1 |
946 xorps %xmm0,%xmm5 | 920 xorps %xmm0,%xmm5 |
947 movups %xmm2,(%edi) | 921 movups %xmm2,(%edi) |
948 xorps %xmm1,%xmm6 | 922 xorps %xmm1,%xmm6 |
949 movups %xmm3,16(%edi) | 923 movups %xmm3,16(%edi) |
950 movups %xmm4,32(%edi) | 924 movups %xmm4,32(%edi) |
951 movups %xmm5,48(%edi) | 925 movups %xmm5,48(%edi) |
952 movups %xmm6,64(%edi) | 926 movups %xmm6,64(%edi) |
953 » jmp» L040ctr32_ret | 927 » jmp» L038ctr32_ret |
954 .align 4,0x90 | 928 .align 4,0x90 |
955 L037ctr32_one_shortcut: | 929 L035ctr32_one_shortcut: |
956 movups (%ebx),%xmm2 | 930 movups (%ebx),%xmm2 |
957 movl 240(%edx),%ecx | 931 movl 240(%edx),%ecx |
958 L041ctr32_one: | 932 L039ctr32_one: |
959 movups (%edx),%xmm0 | 933 movups (%edx),%xmm0 |
960 movups 16(%edx),%xmm1 | 934 movups 16(%edx),%xmm1 |
961 leal 32(%edx),%edx | 935 leal 32(%edx),%edx |
962 xorps %xmm0,%xmm2 | 936 xorps %xmm0,%xmm2 |
963 L045enc1_loop_7: | 937 L043enc1_loop_7: |
964 .byte 102,15,56,220,209 | 938 .byte 102,15,56,220,209 |
965 decl %ecx | 939 decl %ecx |
966 movups (%edx),%xmm1 | 940 movups (%edx),%xmm1 |
967 leal 16(%edx),%edx | 941 leal 16(%edx),%edx |
968 » jnz» L045enc1_loop_7 | 942 » jnz» L043enc1_loop_7 |
969 .byte 102,15,56,221,209 | 943 .byte 102,15,56,221,209 |
970 movups (%esi),%xmm6 | 944 movups (%esi),%xmm6 |
971 xorps %xmm2,%xmm6 | 945 xorps %xmm2,%xmm6 |
972 movups %xmm6,(%edi) | 946 movups %xmm6,(%edi) |
973 » jmp» L040ctr32_ret | 947 » jmp» L038ctr32_ret |
974 .align 4,0x90 | 948 .align 4,0x90 |
975 L042ctr32_two: | 949 L040ctr32_two: |
976 call __aesni_encrypt2 | 950 call __aesni_encrypt2 |
977 movups (%esi),%xmm5 | 951 movups (%esi),%xmm5 |
978 movups 16(%esi),%xmm6 | 952 movups 16(%esi),%xmm6 |
979 xorps %xmm5,%xmm2 | 953 xorps %xmm5,%xmm2 |
980 xorps %xmm6,%xmm3 | 954 xorps %xmm6,%xmm3 |
981 movups %xmm2,(%edi) | 955 movups %xmm2,(%edi) |
982 movups %xmm3,16(%edi) | 956 movups %xmm3,16(%edi) |
983 » jmp» L040ctr32_ret | 957 » jmp» L038ctr32_ret |
984 .align 4,0x90 | 958 .align 4,0x90 |
985 L043ctr32_three: | 959 L041ctr32_three: |
986 call __aesni_encrypt3 | 960 call __aesni_encrypt3 |
987 movups (%esi),%xmm5 | 961 movups (%esi),%xmm5 |
988 movups 16(%esi),%xmm6 | 962 movups 16(%esi),%xmm6 |
989 xorps %xmm5,%xmm2 | 963 xorps %xmm5,%xmm2 |
990 movups 32(%esi),%xmm7 | 964 movups 32(%esi),%xmm7 |
991 xorps %xmm6,%xmm3 | 965 xorps %xmm6,%xmm3 |
992 movups %xmm2,(%edi) | 966 movups %xmm2,(%edi) |
993 xorps %xmm7,%xmm4 | 967 xorps %xmm7,%xmm4 |
994 movups %xmm3,16(%edi) | 968 movups %xmm3,16(%edi) |
995 movups %xmm4,32(%edi) | 969 movups %xmm4,32(%edi) |
996 » jmp» L040ctr32_ret | 970 » jmp» L038ctr32_ret |
997 .align 4,0x90 | 971 .align 4,0x90 |
998 L044ctr32_four: | 972 L042ctr32_four: |
999 call __aesni_encrypt4 | 973 call __aesni_encrypt4 |
1000 movups (%esi),%xmm6 | 974 movups (%esi),%xmm6 |
1001 movups 16(%esi),%xmm7 | 975 movups 16(%esi),%xmm7 |
1002 movups 32(%esi),%xmm1 | 976 movups 32(%esi),%xmm1 |
1003 xorps %xmm6,%xmm2 | 977 xorps %xmm6,%xmm2 |
1004 movups 48(%esi),%xmm0 | 978 movups 48(%esi),%xmm0 |
1005 xorps %xmm7,%xmm3 | 979 xorps %xmm7,%xmm3 |
1006 movups %xmm2,(%edi) | 980 movups %xmm2,(%edi) |
1007 xorps %xmm1,%xmm4 | 981 xorps %xmm1,%xmm4 |
1008 movups %xmm3,16(%edi) | 982 movups %xmm3,16(%edi) |
1009 xorps %xmm0,%xmm5 | 983 xorps %xmm0,%xmm5 |
1010 movups %xmm4,32(%edi) | 984 movups %xmm4,32(%edi) |
1011 movups %xmm5,48(%edi) | 985 movups %xmm5,48(%edi) |
1012 L040ctr32_ret: | 986 L038ctr32_ret: |
1013 » pxor» %xmm0,%xmm0 | |
1014 » pxor» %xmm1,%xmm1 | |
1015 » pxor» %xmm2,%xmm2 | |
1016 » pxor» %xmm3,%xmm3 | |
1017 » pxor» %xmm4,%xmm4 | |
1018 » movdqa» %xmm0,32(%esp) | |
1019 » pxor» %xmm5,%xmm5 | |
1020 » movdqa» %xmm0,48(%esp) | |
1021 » pxor» %xmm6,%xmm6 | |
1022 » movdqa» %xmm0,64(%esp) | |
1023 » pxor» %xmm7,%xmm7 | |
1024 movl 80(%esp),%esp | 987 movl 80(%esp),%esp |
1025 popl %edi | 988 popl %edi |
1026 popl %esi | 989 popl %esi |
1027 popl %ebx | 990 popl %ebx |
1028 popl %ebp | 991 popl %ebp |
1029 ret | 992 ret |
1030 .globl _aesni_xts_encrypt | 993 .globl _aesni_xts_encrypt |
1031 .private_extern _aesni_xts_encrypt | 994 .private_extern _aesni_xts_encrypt |
1032 .align 4 | 995 .align 4 |
1033 _aesni_xts_encrypt: | 996 _aesni_xts_encrypt: |
1034 L_aesni_xts_encrypt_begin: | 997 L_aesni_xts_encrypt_begin: |
1035 pushl %ebp | 998 pushl %ebp |
1036 pushl %ebx | 999 pushl %ebx |
1037 pushl %esi | 1000 pushl %esi |
1038 pushl %edi | 1001 pushl %edi |
1039 movl 36(%esp),%edx | 1002 movl 36(%esp),%edx |
1040 movl 40(%esp),%esi | 1003 movl 40(%esp),%esi |
1041 movl 240(%edx),%ecx | 1004 movl 240(%edx),%ecx |
1042 movups (%esi),%xmm2 | 1005 movups (%esi),%xmm2 |
1043 movups (%edx),%xmm0 | 1006 movups (%edx),%xmm0 |
1044 movups 16(%edx),%xmm1 | 1007 movups 16(%edx),%xmm1 |
1045 leal 32(%edx),%edx | 1008 leal 32(%edx),%edx |
1046 xorps %xmm0,%xmm2 | 1009 xorps %xmm0,%xmm2 |
1047 L046enc1_loop_8: | 1010 L044enc1_loop_8: |
1048 .byte 102,15,56,220,209 | 1011 .byte 102,15,56,220,209 |
1049 decl %ecx | 1012 decl %ecx |
1050 movups (%edx),%xmm1 | 1013 movups (%edx),%xmm1 |
1051 leal 16(%edx),%edx | 1014 leal 16(%edx),%edx |
1052 » jnz» L046enc1_loop_8 | 1015 » jnz» L044enc1_loop_8 |
1053 .byte 102,15,56,221,209 | 1016 .byte 102,15,56,221,209 |
1054 movl 20(%esp),%esi | 1017 movl 20(%esp),%esi |
1055 movl 24(%esp),%edi | 1018 movl 24(%esp),%edi |
1056 movl 28(%esp),%eax | 1019 movl 28(%esp),%eax |
1057 movl 32(%esp),%edx | 1020 movl 32(%esp),%edx |
1058 movl %esp,%ebp | 1021 movl %esp,%ebp |
1059 subl $120,%esp | 1022 subl $120,%esp |
1060 movl 240(%edx),%ecx | 1023 movl 240(%edx),%ecx |
1061 andl $-16,%esp | 1024 andl $-16,%esp |
1062 movl $135,96(%esp) | 1025 movl $135,96(%esp) |
1063 movl $0,100(%esp) | 1026 movl $0,100(%esp) |
1064 movl $1,104(%esp) | 1027 movl $1,104(%esp) |
1065 movl $0,108(%esp) | 1028 movl $0,108(%esp) |
1066 movl %eax,112(%esp) | 1029 movl %eax,112(%esp) |
1067 movl %ebp,116(%esp) | 1030 movl %ebp,116(%esp) |
1068 movdqa %xmm2,%xmm1 | 1031 movdqa %xmm2,%xmm1 |
1069 pxor %xmm0,%xmm0 | 1032 pxor %xmm0,%xmm0 |
1070 movdqa 96(%esp),%xmm3 | 1033 movdqa 96(%esp),%xmm3 |
1071 pcmpgtd %xmm1,%xmm0 | 1034 pcmpgtd %xmm1,%xmm0 |
1072 andl $-16,%eax | 1035 andl $-16,%eax |
1073 movl %edx,%ebp | 1036 movl %edx,%ebp |
1074 movl %ecx,%ebx | 1037 movl %ecx,%ebx |
1075 subl $96,%eax | 1038 subl $96,%eax |
1076 » jc» L047xts_enc_short | 1039 » jc» L045xts_enc_short |
1077 shll $4,%ecx | 1040 shll $4,%ecx |
1078 movl $16,%ebx | 1041 movl $16,%ebx |
1079 subl %ecx,%ebx | 1042 subl %ecx,%ebx |
1080 leal 32(%edx,%ecx,1),%edx | 1043 leal 32(%edx,%ecx,1),%edx |
1081 » jmp» L048xts_enc_loop6 | 1044 » jmp» L046xts_enc_loop6 |
1082 .align 4,0x90 | 1045 .align 4,0x90 |
1083 L048xts_enc_loop6: | 1046 L046xts_enc_loop6: |
1084 pshufd $19,%xmm0,%xmm2 | 1047 pshufd $19,%xmm0,%xmm2 |
1085 pxor %xmm0,%xmm0 | 1048 pxor %xmm0,%xmm0 |
1086 movdqa %xmm1,(%esp) | 1049 movdqa %xmm1,(%esp) |
1087 paddq %xmm1,%xmm1 | 1050 paddq %xmm1,%xmm1 |
1088 pand %xmm3,%xmm2 | 1051 pand %xmm3,%xmm2 |
1089 pcmpgtd %xmm1,%xmm0 | 1052 pcmpgtd %xmm1,%xmm0 |
1090 pxor %xmm2,%xmm1 | 1053 pxor %xmm2,%xmm1 |
1091 pshufd $19,%xmm0,%xmm2 | 1054 pshufd $19,%xmm0,%xmm2 |
1092 pxor %xmm0,%xmm0 | 1055 pxor %xmm0,%xmm0 |
1093 movdqa %xmm1,16(%esp) | 1056 movdqa %xmm1,16(%esp) |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1162 pshufd $19,%xmm0,%xmm2 | 1125 pshufd $19,%xmm0,%xmm2 |
1163 movups %xmm7,80(%edi) | 1126 movups %xmm7,80(%edi) |
1164 leal 96(%edi),%edi | 1127 leal 96(%edi),%edi |
1165 movdqa 96(%esp),%xmm3 | 1128 movdqa 96(%esp),%xmm3 |
1166 pxor %xmm0,%xmm0 | 1129 pxor %xmm0,%xmm0 |
1167 paddq %xmm1,%xmm1 | 1130 paddq %xmm1,%xmm1 |
1168 pand %xmm3,%xmm2 | 1131 pand %xmm3,%xmm2 |
1169 pcmpgtd %xmm1,%xmm0 | 1132 pcmpgtd %xmm1,%xmm0 |
1170 pxor %xmm2,%xmm1 | 1133 pxor %xmm2,%xmm1 |
1171 subl $96,%eax | 1134 subl $96,%eax |
1172 » jnc» L048xts_enc_loop6 | 1135 » jnc» L046xts_enc_loop6 |
1173 movl 240(%ebp),%ecx | 1136 movl 240(%ebp),%ecx |
1174 movl %ebp,%edx | 1137 movl %ebp,%edx |
1175 movl %ecx,%ebx | 1138 movl %ecx,%ebx |
1176 L047xts_enc_short: | 1139 L045xts_enc_short: |
1177 addl $96,%eax | 1140 addl $96,%eax |
1178 » jz» L049xts_enc_done6x | 1141 » jz» L047xts_enc_done6x |
1179 movdqa %xmm1,%xmm5 | 1142 movdqa %xmm1,%xmm5 |
1180 cmpl $32,%eax | 1143 cmpl $32,%eax |
1181 » jb» L050xts_enc_one | 1144 » jb» L048xts_enc_one |
1182 pshufd $19,%xmm0,%xmm2 | 1145 pshufd $19,%xmm0,%xmm2 |
1183 pxor %xmm0,%xmm0 | 1146 pxor %xmm0,%xmm0 |
1184 paddq %xmm1,%xmm1 | 1147 paddq %xmm1,%xmm1 |
1185 pand %xmm3,%xmm2 | 1148 pand %xmm3,%xmm2 |
1186 pcmpgtd %xmm1,%xmm0 | 1149 pcmpgtd %xmm1,%xmm0 |
1187 pxor %xmm2,%xmm1 | 1150 pxor %xmm2,%xmm1 |
1188 » je» L051xts_enc_two | 1151 » je» L049xts_enc_two |
1189 pshufd $19,%xmm0,%xmm2 | 1152 pshufd $19,%xmm0,%xmm2 |
1190 pxor %xmm0,%xmm0 | 1153 pxor %xmm0,%xmm0 |
1191 movdqa %xmm1,%xmm6 | 1154 movdqa %xmm1,%xmm6 |
1192 paddq %xmm1,%xmm1 | 1155 paddq %xmm1,%xmm1 |
1193 pand %xmm3,%xmm2 | 1156 pand %xmm3,%xmm2 |
1194 pcmpgtd %xmm1,%xmm0 | 1157 pcmpgtd %xmm1,%xmm0 |
1195 pxor %xmm2,%xmm1 | 1158 pxor %xmm2,%xmm1 |
1196 cmpl $64,%eax | 1159 cmpl $64,%eax |
1197 » jb» L052xts_enc_three | 1160 » jb» L050xts_enc_three |
1198 pshufd $19,%xmm0,%xmm2 | 1161 pshufd $19,%xmm0,%xmm2 |
1199 pxor %xmm0,%xmm0 | 1162 pxor %xmm0,%xmm0 |
1200 movdqa %xmm1,%xmm7 | 1163 movdqa %xmm1,%xmm7 |
1201 paddq %xmm1,%xmm1 | 1164 paddq %xmm1,%xmm1 |
1202 pand %xmm3,%xmm2 | 1165 pand %xmm3,%xmm2 |
1203 pcmpgtd %xmm1,%xmm0 | 1166 pcmpgtd %xmm1,%xmm0 |
1204 pxor %xmm2,%xmm1 | 1167 pxor %xmm2,%xmm1 |
1205 movdqa %xmm5,(%esp) | 1168 movdqa %xmm5,(%esp) |
1206 movdqa %xmm6,16(%esp) | 1169 movdqa %xmm6,16(%esp) |
1207 » je» L053xts_enc_four | 1170 » je» L051xts_enc_four |
1208 movdqa %xmm7,32(%esp) | 1171 movdqa %xmm7,32(%esp) |
1209 pshufd $19,%xmm0,%xmm7 | 1172 pshufd $19,%xmm0,%xmm7 |
1210 movdqa %xmm1,48(%esp) | 1173 movdqa %xmm1,48(%esp) |
1211 paddq %xmm1,%xmm1 | 1174 paddq %xmm1,%xmm1 |
1212 pand %xmm3,%xmm7 | 1175 pand %xmm3,%xmm7 |
1213 pxor %xmm1,%xmm7 | 1176 pxor %xmm1,%xmm7 |
1214 movdqu (%esi),%xmm2 | 1177 movdqu (%esi),%xmm2 |
1215 movdqu 16(%esi),%xmm3 | 1178 movdqu 16(%esi),%xmm3 |
1216 movdqu 32(%esi),%xmm4 | 1179 movdqu 32(%esi),%xmm4 |
1217 pxor (%esp),%xmm2 | 1180 pxor (%esp),%xmm2 |
(...skipping 11 matching lines...) Expand all Loading... |
1229 xorps 16(%esp),%xmm3 | 1192 xorps 16(%esp),%xmm3 |
1230 xorps 32(%esp),%xmm4 | 1193 xorps 32(%esp),%xmm4 |
1231 movups %xmm2,(%edi) | 1194 movups %xmm2,(%edi) |
1232 xorps 48(%esp),%xmm5 | 1195 xorps 48(%esp),%xmm5 |
1233 movups %xmm3,16(%edi) | 1196 movups %xmm3,16(%edi) |
1234 xorps %xmm1,%xmm6 | 1197 xorps %xmm1,%xmm6 |
1235 movups %xmm4,32(%edi) | 1198 movups %xmm4,32(%edi) |
1236 movups %xmm5,48(%edi) | 1199 movups %xmm5,48(%edi) |
1237 movups %xmm6,64(%edi) | 1200 movups %xmm6,64(%edi) |
1238 leal 80(%edi),%edi | 1201 leal 80(%edi),%edi |
1239 » jmp» L054xts_enc_done | 1202 » jmp» L052xts_enc_done |
1240 .align 4,0x90 | 1203 .align 4,0x90 |
1241 L050xts_enc_one: | 1204 L048xts_enc_one: |
1242 movups (%esi),%xmm2 | 1205 movups (%esi),%xmm2 |
1243 leal 16(%esi),%esi | 1206 leal 16(%esi),%esi |
1244 xorps %xmm5,%xmm2 | 1207 xorps %xmm5,%xmm2 |
1245 movups (%edx),%xmm0 | 1208 movups (%edx),%xmm0 |
1246 movups 16(%edx),%xmm1 | 1209 movups 16(%edx),%xmm1 |
1247 leal 32(%edx),%edx | 1210 leal 32(%edx),%edx |
1248 xorps %xmm0,%xmm2 | 1211 xorps %xmm0,%xmm2 |
1249 L055enc1_loop_9: | 1212 L053enc1_loop_9: |
1250 .byte 102,15,56,220,209 | 1213 .byte 102,15,56,220,209 |
1251 decl %ecx | 1214 decl %ecx |
1252 movups (%edx),%xmm1 | 1215 movups (%edx),%xmm1 |
1253 leal 16(%edx),%edx | 1216 leal 16(%edx),%edx |
1254 » jnz» L055enc1_loop_9 | 1217 » jnz» L053enc1_loop_9 |
1255 .byte 102,15,56,221,209 | 1218 .byte 102,15,56,221,209 |
1256 xorps %xmm5,%xmm2 | 1219 xorps %xmm5,%xmm2 |
1257 movups %xmm2,(%edi) | 1220 movups %xmm2,(%edi) |
1258 leal 16(%edi),%edi | 1221 leal 16(%edi),%edi |
1259 movdqa %xmm5,%xmm1 | 1222 movdqa %xmm5,%xmm1 |
1260 » jmp» L054xts_enc_done | 1223 » jmp» L052xts_enc_done |
1261 .align 4,0x90 | 1224 .align 4,0x90 |
1262 L051xts_enc_two: | 1225 L049xts_enc_two: |
1263 movaps %xmm1,%xmm6 | 1226 movaps %xmm1,%xmm6 |
1264 movups (%esi),%xmm2 | 1227 movups (%esi),%xmm2 |
1265 movups 16(%esi),%xmm3 | 1228 movups 16(%esi),%xmm3 |
1266 leal 32(%esi),%esi | 1229 leal 32(%esi),%esi |
1267 xorps %xmm5,%xmm2 | 1230 xorps %xmm5,%xmm2 |
1268 xorps %xmm6,%xmm3 | 1231 xorps %xmm6,%xmm3 |
1269 call __aesni_encrypt2 | 1232 call __aesni_encrypt2 |
1270 xorps %xmm5,%xmm2 | 1233 xorps %xmm5,%xmm2 |
1271 xorps %xmm6,%xmm3 | 1234 xorps %xmm6,%xmm3 |
1272 movups %xmm2,(%edi) | 1235 movups %xmm2,(%edi) |
1273 movups %xmm3,16(%edi) | 1236 movups %xmm3,16(%edi) |
1274 leal 32(%edi),%edi | 1237 leal 32(%edi),%edi |
1275 movdqa %xmm6,%xmm1 | 1238 movdqa %xmm6,%xmm1 |
1276 » jmp» L054xts_enc_done | 1239 » jmp» L052xts_enc_done |
1277 .align 4,0x90 | 1240 .align 4,0x90 |
1278 L052xts_enc_three: | 1241 L050xts_enc_three: |
1279 movaps %xmm1,%xmm7 | 1242 movaps %xmm1,%xmm7 |
1280 movups (%esi),%xmm2 | 1243 movups (%esi),%xmm2 |
1281 movups 16(%esi),%xmm3 | 1244 movups 16(%esi),%xmm3 |
1282 movups 32(%esi),%xmm4 | 1245 movups 32(%esi),%xmm4 |
1283 leal 48(%esi),%esi | 1246 leal 48(%esi),%esi |
1284 xorps %xmm5,%xmm2 | 1247 xorps %xmm5,%xmm2 |
1285 xorps %xmm6,%xmm3 | 1248 xorps %xmm6,%xmm3 |
1286 xorps %xmm7,%xmm4 | 1249 xorps %xmm7,%xmm4 |
1287 call __aesni_encrypt3 | 1250 call __aesni_encrypt3 |
1288 xorps %xmm5,%xmm2 | 1251 xorps %xmm5,%xmm2 |
1289 xorps %xmm6,%xmm3 | 1252 xorps %xmm6,%xmm3 |
1290 xorps %xmm7,%xmm4 | 1253 xorps %xmm7,%xmm4 |
1291 movups %xmm2,(%edi) | 1254 movups %xmm2,(%edi) |
1292 movups %xmm3,16(%edi) | 1255 movups %xmm3,16(%edi) |
1293 movups %xmm4,32(%edi) | 1256 movups %xmm4,32(%edi) |
1294 leal 48(%edi),%edi | 1257 leal 48(%edi),%edi |
1295 movdqa %xmm7,%xmm1 | 1258 movdqa %xmm7,%xmm1 |
1296 » jmp» L054xts_enc_done | 1259 » jmp» L052xts_enc_done |
1297 .align 4,0x90 | 1260 .align 4,0x90 |
1298 L053xts_enc_four: | 1261 L051xts_enc_four: |
1299 movaps %xmm1,%xmm6 | 1262 movaps %xmm1,%xmm6 |
1300 movups (%esi),%xmm2 | 1263 movups (%esi),%xmm2 |
1301 movups 16(%esi),%xmm3 | 1264 movups 16(%esi),%xmm3 |
1302 movups 32(%esi),%xmm4 | 1265 movups 32(%esi),%xmm4 |
1303 xorps (%esp),%xmm2 | 1266 xorps (%esp),%xmm2 |
1304 movups 48(%esi),%xmm5 | 1267 movups 48(%esi),%xmm5 |
1305 leal 64(%esi),%esi | 1268 leal 64(%esi),%esi |
1306 xorps 16(%esp),%xmm3 | 1269 xorps 16(%esp),%xmm3 |
1307 xorps %xmm7,%xmm4 | 1270 xorps %xmm7,%xmm4 |
1308 xorps %xmm6,%xmm5 | 1271 xorps %xmm6,%xmm5 |
1309 call __aesni_encrypt4 | 1272 call __aesni_encrypt4 |
1310 xorps (%esp),%xmm2 | 1273 xorps (%esp),%xmm2 |
1311 xorps 16(%esp),%xmm3 | 1274 xorps 16(%esp),%xmm3 |
1312 xorps %xmm7,%xmm4 | 1275 xorps %xmm7,%xmm4 |
1313 movups %xmm2,(%edi) | 1276 movups %xmm2,(%edi) |
1314 xorps %xmm6,%xmm5 | 1277 xorps %xmm6,%xmm5 |
1315 movups %xmm3,16(%edi) | 1278 movups %xmm3,16(%edi) |
1316 movups %xmm4,32(%edi) | 1279 movups %xmm4,32(%edi) |
1317 movups %xmm5,48(%edi) | 1280 movups %xmm5,48(%edi) |
1318 leal 64(%edi),%edi | 1281 leal 64(%edi),%edi |
1319 movdqa %xmm6,%xmm1 | 1282 movdqa %xmm6,%xmm1 |
1320 » jmp» L054xts_enc_done | 1283 » jmp» L052xts_enc_done |
1321 .align 4,0x90 | 1284 .align 4,0x90 |
1322 L049xts_enc_done6x: | 1285 L047xts_enc_done6x: |
1323 movl 112(%esp),%eax | 1286 movl 112(%esp),%eax |
1324 andl $15,%eax | 1287 andl $15,%eax |
1325 » jz» L056xts_enc_ret | 1288 » jz» L054xts_enc_ret |
1326 movdqa %xmm1,%xmm5 | 1289 movdqa %xmm1,%xmm5 |
1327 movl %eax,112(%esp) | 1290 movl %eax,112(%esp) |
1328 » jmp» L057xts_enc_steal | 1291 » jmp» L055xts_enc_steal |
1329 .align 4,0x90 | 1292 .align 4,0x90 |
1330 L054xts_enc_done: | 1293 L052xts_enc_done: |
1331 movl 112(%esp),%eax | 1294 movl 112(%esp),%eax |
1332 pxor %xmm0,%xmm0 | 1295 pxor %xmm0,%xmm0 |
1333 andl $15,%eax | 1296 andl $15,%eax |
1334 » jz» L056xts_enc_ret | 1297 » jz» L054xts_enc_ret |
1335 pcmpgtd %xmm1,%xmm0 | 1298 pcmpgtd %xmm1,%xmm0 |
1336 movl %eax,112(%esp) | 1299 movl %eax,112(%esp) |
1337 pshufd $19,%xmm0,%xmm5 | 1300 pshufd $19,%xmm0,%xmm5 |
1338 paddq %xmm1,%xmm1 | 1301 paddq %xmm1,%xmm1 |
1339 pand 96(%esp),%xmm5 | 1302 pand 96(%esp),%xmm5 |
1340 pxor %xmm1,%xmm5 | 1303 pxor %xmm1,%xmm5 |
1341 L057xts_enc_steal: | 1304 L055xts_enc_steal: |
1342 movzbl (%esi),%ecx | 1305 movzbl (%esi),%ecx |
1343 movzbl -16(%edi),%edx | 1306 movzbl -16(%edi),%edx |
1344 leal 1(%esi),%esi | 1307 leal 1(%esi),%esi |
1345 movb %cl,-16(%edi) | 1308 movb %cl,-16(%edi) |
1346 movb %dl,(%edi) | 1309 movb %dl,(%edi) |
1347 leal 1(%edi),%edi | 1310 leal 1(%edi),%edi |
1348 subl $1,%eax | 1311 subl $1,%eax |
1349 » jnz» L057xts_enc_steal | 1312 » jnz» L055xts_enc_steal |
1350 subl 112(%esp),%edi | 1313 subl 112(%esp),%edi |
1351 movl %ebp,%edx | 1314 movl %ebp,%edx |
1352 movl %ebx,%ecx | 1315 movl %ebx,%ecx |
1353 movups -16(%edi),%xmm2 | 1316 movups -16(%edi),%xmm2 |
1354 xorps %xmm5,%xmm2 | 1317 xorps %xmm5,%xmm2 |
1355 movups (%edx),%xmm0 | 1318 movups (%edx),%xmm0 |
1356 movups 16(%edx),%xmm1 | 1319 movups 16(%edx),%xmm1 |
1357 leal 32(%edx),%edx | 1320 leal 32(%edx),%edx |
1358 xorps %xmm0,%xmm2 | 1321 xorps %xmm0,%xmm2 |
1359 L058enc1_loop_10: | 1322 L056enc1_loop_10: |
1360 .byte 102,15,56,220,209 | 1323 .byte 102,15,56,220,209 |
1361 decl %ecx | 1324 decl %ecx |
1362 movups (%edx),%xmm1 | 1325 movups (%edx),%xmm1 |
1363 leal 16(%edx),%edx | 1326 leal 16(%edx),%edx |
1364 » jnz» L058enc1_loop_10 | 1327 » jnz» L056enc1_loop_10 |
1365 .byte 102,15,56,221,209 | 1328 .byte 102,15,56,221,209 |
1366 xorps %xmm5,%xmm2 | 1329 xorps %xmm5,%xmm2 |
1367 movups %xmm2,-16(%edi) | 1330 movups %xmm2,-16(%edi) |
1368 L056xts_enc_ret: | 1331 L054xts_enc_ret: |
1369 » pxor» %xmm0,%xmm0 | |
1370 » pxor» %xmm1,%xmm1 | |
1371 » pxor» %xmm2,%xmm2 | |
1372 » movdqa» %xmm0,(%esp) | |
1373 » pxor» %xmm3,%xmm3 | |
1374 » movdqa» %xmm0,16(%esp) | |
1375 » pxor» %xmm4,%xmm4 | |
1376 » movdqa» %xmm0,32(%esp) | |
1377 » pxor» %xmm5,%xmm5 | |
1378 » movdqa» %xmm0,48(%esp) | |
1379 » pxor» %xmm6,%xmm6 | |
1380 » movdqa» %xmm0,64(%esp) | |
1381 » pxor» %xmm7,%xmm7 | |
1382 » movdqa» %xmm0,80(%esp) | |
1383 movl 116(%esp),%esp | 1332 movl 116(%esp),%esp |
1384 popl %edi | 1333 popl %edi |
1385 popl %esi | 1334 popl %esi |
1386 popl %ebx | 1335 popl %ebx |
1387 popl %ebp | 1336 popl %ebp |
1388 ret | 1337 ret |
1389 .globl _aesni_xts_decrypt | 1338 .globl _aesni_xts_decrypt |
1390 .private_extern _aesni_xts_decrypt | 1339 .private_extern _aesni_xts_decrypt |
1391 .align 4 | 1340 .align 4 |
1392 _aesni_xts_decrypt: | 1341 _aesni_xts_decrypt: |
1393 L_aesni_xts_decrypt_begin: | 1342 L_aesni_xts_decrypt_begin: |
1394 pushl %ebp | 1343 pushl %ebp |
1395 pushl %ebx | 1344 pushl %ebx |
1396 pushl %esi | 1345 pushl %esi |
1397 pushl %edi | 1346 pushl %edi |
1398 movl 36(%esp),%edx | 1347 movl 36(%esp),%edx |
1399 movl 40(%esp),%esi | 1348 movl 40(%esp),%esi |
1400 movl 240(%edx),%ecx | 1349 movl 240(%edx),%ecx |
1401 movups (%esi),%xmm2 | 1350 movups (%esi),%xmm2 |
1402 movups (%edx),%xmm0 | 1351 movups (%edx),%xmm0 |
1403 movups 16(%edx),%xmm1 | 1352 movups 16(%edx),%xmm1 |
1404 leal 32(%edx),%edx | 1353 leal 32(%edx),%edx |
1405 xorps %xmm0,%xmm2 | 1354 xorps %xmm0,%xmm2 |
1406 L059enc1_loop_11: | 1355 L057enc1_loop_11: |
1407 .byte 102,15,56,220,209 | 1356 .byte 102,15,56,220,209 |
1408 decl %ecx | 1357 decl %ecx |
1409 movups (%edx),%xmm1 | 1358 movups (%edx),%xmm1 |
1410 leal 16(%edx),%edx | 1359 leal 16(%edx),%edx |
1411 » jnz» L059enc1_loop_11 | 1360 » jnz» L057enc1_loop_11 |
1412 .byte 102,15,56,221,209 | 1361 .byte 102,15,56,221,209 |
1413 movl 20(%esp),%esi | 1362 movl 20(%esp),%esi |
1414 movl 24(%esp),%edi | 1363 movl 24(%esp),%edi |
1415 movl 28(%esp),%eax | 1364 movl 28(%esp),%eax |
1416 movl 32(%esp),%edx | 1365 movl 32(%esp),%edx |
1417 movl %esp,%ebp | 1366 movl %esp,%ebp |
1418 subl $120,%esp | 1367 subl $120,%esp |
1419 andl $-16,%esp | 1368 andl $-16,%esp |
1420 xorl %ebx,%ebx | 1369 xorl %ebx,%ebx |
1421 testl $15,%eax | 1370 testl $15,%eax |
1422 setnz %bl | 1371 setnz %bl |
1423 shll $4,%ebx | 1372 shll $4,%ebx |
1424 subl %ebx,%eax | 1373 subl %ebx,%eax |
1425 movl $135,96(%esp) | 1374 movl $135,96(%esp) |
1426 movl $0,100(%esp) | 1375 movl $0,100(%esp) |
1427 movl $1,104(%esp) | 1376 movl $1,104(%esp) |
1428 movl $0,108(%esp) | 1377 movl $0,108(%esp) |
1429 movl %eax,112(%esp) | 1378 movl %eax,112(%esp) |
1430 movl %ebp,116(%esp) | 1379 movl %ebp,116(%esp) |
1431 movl 240(%edx),%ecx | 1380 movl 240(%edx),%ecx |
1432 movl %edx,%ebp | 1381 movl %edx,%ebp |
1433 movl %ecx,%ebx | 1382 movl %ecx,%ebx |
1434 movdqa %xmm2,%xmm1 | 1383 movdqa %xmm2,%xmm1 |
1435 pxor %xmm0,%xmm0 | 1384 pxor %xmm0,%xmm0 |
1436 movdqa 96(%esp),%xmm3 | 1385 movdqa 96(%esp),%xmm3 |
1437 pcmpgtd %xmm1,%xmm0 | 1386 pcmpgtd %xmm1,%xmm0 |
1438 andl $-16,%eax | 1387 andl $-16,%eax |
1439 subl $96,%eax | 1388 subl $96,%eax |
1440 » jc» L060xts_dec_short | 1389 » jc» L058xts_dec_short |
1441 shll $4,%ecx | 1390 shll $4,%ecx |
1442 movl $16,%ebx | 1391 movl $16,%ebx |
1443 subl %ecx,%ebx | 1392 subl %ecx,%ebx |
1444 leal 32(%edx,%ecx,1),%edx | 1393 leal 32(%edx,%ecx,1),%edx |
1445 » jmp» L061xts_dec_loop6 | 1394 » jmp» L059xts_dec_loop6 |
1446 .align 4,0x90 | 1395 .align 4,0x90 |
1447 L061xts_dec_loop6: | 1396 L059xts_dec_loop6: |
1448 pshufd $19,%xmm0,%xmm2 | 1397 pshufd $19,%xmm0,%xmm2 |
1449 pxor %xmm0,%xmm0 | 1398 pxor %xmm0,%xmm0 |
1450 movdqa %xmm1,(%esp) | 1399 movdqa %xmm1,(%esp) |
1451 paddq %xmm1,%xmm1 | 1400 paddq %xmm1,%xmm1 |
1452 pand %xmm3,%xmm2 | 1401 pand %xmm3,%xmm2 |
1453 pcmpgtd %xmm1,%xmm0 | 1402 pcmpgtd %xmm1,%xmm0 |
1454 pxor %xmm2,%xmm1 | 1403 pxor %xmm2,%xmm1 |
1455 pshufd $19,%xmm0,%xmm2 | 1404 pshufd $19,%xmm0,%xmm2 |
1456 pxor %xmm0,%xmm0 | 1405 pxor %xmm0,%xmm0 |
1457 movdqa %xmm1,16(%esp) | 1406 movdqa %xmm1,16(%esp) |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1526 pshufd $19,%xmm0,%xmm2 | 1475 pshufd $19,%xmm0,%xmm2 |
1527 movups %xmm7,80(%edi) | 1476 movups %xmm7,80(%edi) |
1528 leal 96(%edi),%edi | 1477 leal 96(%edi),%edi |
1529 movdqa 96(%esp),%xmm3 | 1478 movdqa 96(%esp),%xmm3 |
1530 pxor %xmm0,%xmm0 | 1479 pxor %xmm0,%xmm0 |
1531 paddq %xmm1,%xmm1 | 1480 paddq %xmm1,%xmm1 |
1532 pand %xmm3,%xmm2 | 1481 pand %xmm3,%xmm2 |
1533 pcmpgtd %xmm1,%xmm0 | 1482 pcmpgtd %xmm1,%xmm0 |
1534 pxor %xmm2,%xmm1 | 1483 pxor %xmm2,%xmm1 |
1535 subl $96,%eax | 1484 subl $96,%eax |
1536 » jnc» L061xts_dec_loop6 | 1485 » jnc» L059xts_dec_loop6 |
1537 movl 240(%ebp),%ecx | 1486 movl 240(%ebp),%ecx |
1538 movl %ebp,%edx | 1487 movl %ebp,%edx |
1539 movl %ecx,%ebx | 1488 movl %ecx,%ebx |
1540 L060xts_dec_short: | 1489 L058xts_dec_short: |
1541 addl $96,%eax | 1490 addl $96,%eax |
1542 » jz» L062xts_dec_done6x | 1491 » jz» L060xts_dec_done6x |
1543 movdqa %xmm1,%xmm5 | 1492 movdqa %xmm1,%xmm5 |
1544 cmpl $32,%eax | 1493 cmpl $32,%eax |
1545 » jb» L063xts_dec_one | 1494 » jb» L061xts_dec_one |
1546 pshufd $19,%xmm0,%xmm2 | 1495 pshufd $19,%xmm0,%xmm2 |
1547 pxor %xmm0,%xmm0 | 1496 pxor %xmm0,%xmm0 |
1548 paddq %xmm1,%xmm1 | 1497 paddq %xmm1,%xmm1 |
1549 pand %xmm3,%xmm2 | 1498 pand %xmm3,%xmm2 |
1550 pcmpgtd %xmm1,%xmm0 | 1499 pcmpgtd %xmm1,%xmm0 |
1551 pxor %xmm2,%xmm1 | 1500 pxor %xmm2,%xmm1 |
1552 » je» L064xts_dec_two | 1501 » je» L062xts_dec_two |
1553 pshufd $19,%xmm0,%xmm2 | 1502 pshufd $19,%xmm0,%xmm2 |
1554 pxor %xmm0,%xmm0 | 1503 pxor %xmm0,%xmm0 |
1555 movdqa %xmm1,%xmm6 | 1504 movdqa %xmm1,%xmm6 |
1556 paddq %xmm1,%xmm1 | 1505 paddq %xmm1,%xmm1 |
1557 pand %xmm3,%xmm2 | 1506 pand %xmm3,%xmm2 |
1558 pcmpgtd %xmm1,%xmm0 | 1507 pcmpgtd %xmm1,%xmm0 |
1559 pxor %xmm2,%xmm1 | 1508 pxor %xmm2,%xmm1 |
1560 cmpl $64,%eax | 1509 cmpl $64,%eax |
1561 » jb» L065xts_dec_three | 1510 » jb» L063xts_dec_three |
1562 pshufd $19,%xmm0,%xmm2 | 1511 pshufd $19,%xmm0,%xmm2 |
1563 pxor %xmm0,%xmm0 | 1512 pxor %xmm0,%xmm0 |
1564 movdqa %xmm1,%xmm7 | 1513 movdqa %xmm1,%xmm7 |
1565 paddq %xmm1,%xmm1 | 1514 paddq %xmm1,%xmm1 |
1566 pand %xmm3,%xmm2 | 1515 pand %xmm3,%xmm2 |
1567 pcmpgtd %xmm1,%xmm0 | 1516 pcmpgtd %xmm1,%xmm0 |
1568 pxor %xmm2,%xmm1 | 1517 pxor %xmm2,%xmm1 |
1569 movdqa %xmm5,(%esp) | 1518 movdqa %xmm5,(%esp) |
1570 movdqa %xmm6,16(%esp) | 1519 movdqa %xmm6,16(%esp) |
1571 » je» L066xts_dec_four | 1520 » je» L064xts_dec_four |
1572 movdqa %xmm7,32(%esp) | 1521 movdqa %xmm7,32(%esp) |
1573 pshufd $19,%xmm0,%xmm7 | 1522 pshufd $19,%xmm0,%xmm7 |
1574 movdqa %xmm1,48(%esp) | 1523 movdqa %xmm1,48(%esp) |
1575 paddq %xmm1,%xmm1 | 1524 paddq %xmm1,%xmm1 |
1576 pand %xmm3,%xmm7 | 1525 pand %xmm3,%xmm7 |
1577 pxor %xmm1,%xmm7 | 1526 pxor %xmm1,%xmm7 |
1578 movdqu (%esi),%xmm2 | 1527 movdqu (%esi),%xmm2 |
1579 movdqu 16(%esi),%xmm3 | 1528 movdqu 16(%esi),%xmm3 |
1580 movdqu 32(%esi),%xmm4 | 1529 movdqu 32(%esi),%xmm4 |
1581 pxor (%esp),%xmm2 | 1530 pxor (%esp),%xmm2 |
(...skipping 11 matching lines...) Expand all Loading... |
1593 xorps 16(%esp),%xmm3 | 1542 xorps 16(%esp),%xmm3 |
1594 xorps 32(%esp),%xmm4 | 1543 xorps 32(%esp),%xmm4 |
1595 movups %xmm2,(%edi) | 1544 movups %xmm2,(%edi) |
1596 xorps 48(%esp),%xmm5 | 1545 xorps 48(%esp),%xmm5 |
1597 movups %xmm3,16(%edi) | 1546 movups %xmm3,16(%edi) |
1598 xorps %xmm1,%xmm6 | 1547 xorps %xmm1,%xmm6 |
1599 movups %xmm4,32(%edi) | 1548 movups %xmm4,32(%edi) |
1600 movups %xmm5,48(%edi) | 1549 movups %xmm5,48(%edi) |
1601 movups %xmm6,64(%edi) | 1550 movups %xmm6,64(%edi) |
1602 leal 80(%edi),%edi | 1551 leal 80(%edi),%edi |
1603 » jmp» L067xts_dec_done | 1552 » jmp» L065xts_dec_done |
1604 .align 4,0x90 | 1553 .align 4,0x90 |
1605 L063xts_dec_one: | 1554 L061xts_dec_one: |
1606 movups (%esi),%xmm2 | 1555 movups (%esi),%xmm2 |
1607 leal 16(%esi),%esi | 1556 leal 16(%esi),%esi |
1608 xorps %xmm5,%xmm2 | 1557 xorps %xmm5,%xmm2 |
1609 movups (%edx),%xmm0 | 1558 movups (%edx),%xmm0 |
1610 movups 16(%edx),%xmm1 | 1559 movups 16(%edx),%xmm1 |
1611 leal 32(%edx),%edx | 1560 leal 32(%edx),%edx |
1612 xorps %xmm0,%xmm2 | 1561 xorps %xmm0,%xmm2 |
1613 L068dec1_loop_12: | 1562 L066dec1_loop_12: |
1614 .byte 102,15,56,222,209 | 1563 .byte 102,15,56,222,209 |
1615 decl %ecx | 1564 decl %ecx |
1616 movups (%edx),%xmm1 | 1565 movups (%edx),%xmm1 |
1617 leal 16(%edx),%edx | 1566 leal 16(%edx),%edx |
1618 » jnz» L068dec1_loop_12 | 1567 » jnz» L066dec1_loop_12 |
1619 .byte 102,15,56,223,209 | 1568 .byte 102,15,56,223,209 |
1620 xorps %xmm5,%xmm2 | 1569 xorps %xmm5,%xmm2 |
1621 movups %xmm2,(%edi) | 1570 movups %xmm2,(%edi) |
1622 leal 16(%edi),%edi | 1571 leal 16(%edi),%edi |
1623 movdqa %xmm5,%xmm1 | 1572 movdqa %xmm5,%xmm1 |
1624 » jmp» L067xts_dec_done | 1573 » jmp» L065xts_dec_done |
1625 .align 4,0x90 | 1574 .align 4,0x90 |
1626 L064xts_dec_two: | 1575 L062xts_dec_two: |
1627 movaps %xmm1,%xmm6 | 1576 movaps %xmm1,%xmm6 |
1628 movups (%esi),%xmm2 | 1577 movups (%esi),%xmm2 |
1629 movups 16(%esi),%xmm3 | 1578 movups 16(%esi),%xmm3 |
1630 leal 32(%esi),%esi | 1579 leal 32(%esi),%esi |
1631 xorps %xmm5,%xmm2 | 1580 xorps %xmm5,%xmm2 |
1632 xorps %xmm6,%xmm3 | 1581 xorps %xmm6,%xmm3 |
1633 call __aesni_decrypt2 | 1582 call __aesni_decrypt2 |
1634 xorps %xmm5,%xmm2 | 1583 xorps %xmm5,%xmm2 |
1635 xorps %xmm6,%xmm3 | 1584 xorps %xmm6,%xmm3 |
1636 movups %xmm2,(%edi) | 1585 movups %xmm2,(%edi) |
1637 movups %xmm3,16(%edi) | 1586 movups %xmm3,16(%edi) |
1638 leal 32(%edi),%edi | 1587 leal 32(%edi),%edi |
1639 movdqa %xmm6,%xmm1 | 1588 movdqa %xmm6,%xmm1 |
1640 » jmp» L067xts_dec_done | 1589 » jmp» L065xts_dec_done |
1641 .align 4,0x90 | 1590 .align 4,0x90 |
1642 L065xts_dec_three: | 1591 L063xts_dec_three: |
1643 movaps %xmm1,%xmm7 | 1592 movaps %xmm1,%xmm7 |
1644 movups (%esi),%xmm2 | 1593 movups (%esi),%xmm2 |
1645 movups 16(%esi),%xmm3 | 1594 movups 16(%esi),%xmm3 |
1646 movups 32(%esi),%xmm4 | 1595 movups 32(%esi),%xmm4 |
1647 leal 48(%esi),%esi | 1596 leal 48(%esi),%esi |
1648 xorps %xmm5,%xmm2 | 1597 xorps %xmm5,%xmm2 |
1649 xorps %xmm6,%xmm3 | 1598 xorps %xmm6,%xmm3 |
1650 xorps %xmm7,%xmm4 | 1599 xorps %xmm7,%xmm4 |
1651 call __aesni_decrypt3 | 1600 call __aesni_decrypt3 |
1652 xorps %xmm5,%xmm2 | 1601 xorps %xmm5,%xmm2 |
1653 xorps %xmm6,%xmm3 | 1602 xorps %xmm6,%xmm3 |
1654 xorps %xmm7,%xmm4 | 1603 xorps %xmm7,%xmm4 |
1655 movups %xmm2,(%edi) | 1604 movups %xmm2,(%edi) |
1656 movups %xmm3,16(%edi) | 1605 movups %xmm3,16(%edi) |
1657 movups %xmm4,32(%edi) | 1606 movups %xmm4,32(%edi) |
1658 leal 48(%edi),%edi | 1607 leal 48(%edi),%edi |
1659 movdqa %xmm7,%xmm1 | 1608 movdqa %xmm7,%xmm1 |
1660 » jmp» L067xts_dec_done | 1609 » jmp» L065xts_dec_done |
1661 .align 4,0x90 | 1610 .align 4,0x90 |
1662 L066xts_dec_four: | 1611 L064xts_dec_four: |
1663 movaps %xmm1,%xmm6 | 1612 movaps %xmm1,%xmm6 |
1664 movups (%esi),%xmm2 | 1613 movups (%esi),%xmm2 |
1665 movups 16(%esi),%xmm3 | 1614 movups 16(%esi),%xmm3 |
1666 movups 32(%esi),%xmm4 | 1615 movups 32(%esi),%xmm4 |
1667 xorps (%esp),%xmm2 | 1616 xorps (%esp),%xmm2 |
1668 movups 48(%esi),%xmm5 | 1617 movups 48(%esi),%xmm5 |
1669 leal 64(%esi),%esi | 1618 leal 64(%esi),%esi |
1670 xorps 16(%esp),%xmm3 | 1619 xorps 16(%esp),%xmm3 |
1671 xorps %xmm7,%xmm4 | 1620 xorps %xmm7,%xmm4 |
1672 xorps %xmm6,%xmm5 | 1621 xorps %xmm6,%xmm5 |
1673 call __aesni_decrypt4 | 1622 call __aesni_decrypt4 |
1674 xorps (%esp),%xmm2 | 1623 xorps (%esp),%xmm2 |
1675 xorps 16(%esp),%xmm3 | 1624 xorps 16(%esp),%xmm3 |
1676 xorps %xmm7,%xmm4 | 1625 xorps %xmm7,%xmm4 |
1677 movups %xmm2,(%edi) | 1626 movups %xmm2,(%edi) |
1678 xorps %xmm6,%xmm5 | 1627 xorps %xmm6,%xmm5 |
1679 movups %xmm3,16(%edi) | 1628 movups %xmm3,16(%edi) |
1680 movups %xmm4,32(%edi) | 1629 movups %xmm4,32(%edi) |
1681 movups %xmm5,48(%edi) | 1630 movups %xmm5,48(%edi) |
1682 leal 64(%edi),%edi | 1631 leal 64(%edi),%edi |
1683 movdqa %xmm6,%xmm1 | 1632 movdqa %xmm6,%xmm1 |
1684 » jmp» L067xts_dec_done | 1633 » jmp» L065xts_dec_done |
1685 .align 4,0x90 | 1634 .align 4,0x90 |
1686 L062xts_dec_done6x: | 1635 L060xts_dec_done6x: |
1687 movl 112(%esp),%eax | 1636 movl 112(%esp),%eax |
1688 andl $15,%eax | 1637 andl $15,%eax |
1689 » jz» L069xts_dec_ret | 1638 » jz» L067xts_dec_ret |
1690 movl %eax,112(%esp) | 1639 movl %eax,112(%esp) |
1691 » jmp» L070xts_dec_only_one_more | 1640 » jmp» L068xts_dec_only_one_more |
1692 .align 4,0x90 | 1641 .align 4,0x90 |
1693 L067xts_dec_done: | 1642 L065xts_dec_done: |
1694 movl 112(%esp),%eax | 1643 movl 112(%esp),%eax |
1695 pxor %xmm0,%xmm0 | 1644 pxor %xmm0,%xmm0 |
1696 andl $15,%eax | 1645 andl $15,%eax |
1697 » jz» L069xts_dec_ret | 1646 » jz» L067xts_dec_ret |
1698 pcmpgtd %xmm1,%xmm0 | 1647 pcmpgtd %xmm1,%xmm0 |
1699 movl %eax,112(%esp) | 1648 movl %eax,112(%esp) |
1700 pshufd $19,%xmm0,%xmm2 | 1649 pshufd $19,%xmm0,%xmm2 |
1701 pxor %xmm0,%xmm0 | 1650 pxor %xmm0,%xmm0 |
1702 movdqa 96(%esp),%xmm3 | 1651 movdqa 96(%esp),%xmm3 |
1703 paddq %xmm1,%xmm1 | 1652 paddq %xmm1,%xmm1 |
1704 pand %xmm3,%xmm2 | 1653 pand %xmm3,%xmm2 |
1705 pcmpgtd %xmm1,%xmm0 | 1654 pcmpgtd %xmm1,%xmm0 |
1706 pxor %xmm2,%xmm1 | 1655 pxor %xmm2,%xmm1 |
1707 L070xts_dec_only_one_more: | 1656 L068xts_dec_only_one_more: |
1708 pshufd $19,%xmm0,%xmm5 | 1657 pshufd $19,%xmm0,%xmm5 |
1709 movdqa %xmm1,%xmm6 | 1658 movdqa %xmm1,%xmm6 |
1710 paddq %xmm1,%xmm1 | 1659 paddq %xmm1,%xmm1 |
1711 pand %xmm3,%xmm5 | 1660 pand %xmm3,%xmm5 |
1712 pxor %xmm1,%xmm5 | 1661 pxor %xmm1,%xmm5 |
1713 movl %ebp,%edx | 1662 movl %ebp,%edx |
1714 movl %ebx,%ecx | 1663 movl %ebx,%ecx |
1715 movups (%esi),%xmm2 | 1664 movups (%esi),%xmm2 |
1716 xorps %xmm5,%xmm2 | 1665 xorps %xmm5,%xmm2 |
1717 movups (%edx),%xmm0 | 1666 movups (%edx),%xmm0 |
1718 movups 16(%edx),%xmm1 | 1667 movups 16(%edx),%xmm1 |
1719 leal 32(%edx),%edx | 1668 leal 32(%edx),%edx |
1720 xorps %xmm0,%xmm2 | 1669 xorps %xmm0,%xmm2 |
1721 L071dec1_loop_13: | 1670 L069dec1_loop_13: |
1722 .byte 102,15,56,222,209 | 1671 .byte 102,15,56,222,209 |
1723 decl %ecx | 1672 decl %ecx |
1724 movups (%edx),%xmm1 | 1673 movups (%edx),%xmm1 |
1725 leal 16(%edx),%edx | 1674 leal 16(%edx),%edx |
1726 » jnz» L071dec1_loop_13 | 1675 » jnz» L069dec1_loop_13 |
1727 .byte 102,15,56,223,209 | 1676 .byte 102,15,56,223,209 |
1728 xorps %xmm5,%xmm2 | 1677 xorps %xmm5,%xmm2 |
1729 movups %xmm2,(%edi) | 1678 movups %xmm2,(%edi) |
1730 L072xts_dec_steal: | 1679 L070xts_dec_steal: |
1731 movzbl 16(%esi),%ecx | 1680 movzbl 16(%esi),%ecx |
1732 movzbl (%edi),%edx | 1681 movzbl (%edi),%edx |
1733 leal 1(%esi),%esi | 1682 leal 1(%esi),%esi |
1734 movb %cl,(%edi) | 1683 movb %cl,(%edi) |
1735 movb %dl,16(%edi) | 1684 movb %dl,16(%edi) |
1736 leal 1(%edi),%edi | 1685 leal 1(%edi),%edi |
1737 subl $1,%eax | 1686 subl $1,%eax |
1738 » jnz» L072xts_dec_steal | 1687 » jnz» L070xts_dec_steal |
1739 subl 112(%esp),%edi | 1688 subl 112(%esp),%edi |
1740 movl %ebp,%edx | 1689 movl %ebp,%edx |
1741 movl %ebx,%ecx | 1690 movl %ebx,%ecx |
1742 movups (%edi),%xmm2 | 1691 movups (%edi),%xmm2 |
1743 xorps %xmm6,%xmm2 | 1692 xorps %xmm6,%xmm2 |
1744 movups (%edx),%xmm0 | 1693 movups (%edx),%xmm0 |
1745 movups 16(%edx),%xmm1 | 1694 movups 16(%edx),%xmm1 |
1746 leal 32(%edx),%edx | 1695 leal 32(%edx),%edx |
1747 xorps %xmm0,%xmm2 | 1696 xorps %xmm0,%xmm2 |
1748 L073dec1_loop_14: | 1697 L071dec1_loop_14: |
1749 .byte 102,15,56,222,209 | 1698 .byte 102,15,56,222,209 |
1750 decl %ecx | 1699 decl %ecx |
1751 movups (%edx),%xmm1 | 1700 movups (%edx),%xmm1 |
1752 leal 16(%edx),%edx | 1701 leal 16(%edx),%edx |
1753 » jnz» L073dec1_loop_14 | 1702 » jnz» L071dec1_loop_14 |
1754 .byte 102,15,56,223,209 | 1703 .byte 102,15,56,223,209 |
1755 xorps %xmm6,%xmm2 | 1704 xorps %xmm6,%xmm2 |
1756 movups %xmm2,(%edi) | 1705 movups %xmm2,(%edi) |
1757 L069xts_dec_ret: | 1706 L067xts_dec_ret: |
1758 » pxor» %xmm0,%xmm0 | |
1759 » pxor» %xmm1,%xmm1 | |
1760 » pxor» %xmm2,%xmm2 | |
1761 » movdqa» %xmm0,(%esp) | |
1762 » pxor» %xmm3,%xmm3 | |
1763 » movdqa» %xmm0,16(%esp) | |
1764 » pxor» %xmm4,%xmm4 | |
1765 » movdqa» %xmm0,32(%esp) | |
1766 » pxor» %xmm5,%xmm5 | |
1767 » movdqa» %xmm0,48(%esp) | |
1768 » pxor» %xmm6,%xmm6 | |
1769 » movdqa» %xmm0,64(%esp) | |
1770 » pxor» %xmm7,%xmm7 | |
1771 » movdqa» %xmm0,80(%esp) | |
1772 movl 116(%esp),%esp | 1707 movl 116(%esp),%esp |
1773 popl %edi | 1708 popl %edi |
1774 popl %esi | 1709 popl %esi |
1775 popl %ebx | 1710 popl %ebx |
1776 popl %ebp | 1711 popl %ebp |
1777 ret | 1712 ret |
1778 .globl _aesni_cbc_encrypt | 1713 .globl _aesni_cbc_encrypt |
1779 .private_extern _aesni_cbc_encrypt | 1714 .private_extern _aesni_cbc_encrypt |
1780 .align 4 | 1715 .align 4 |
1781 _aesni_cbc_encrypt: | 1716 _aesni_cbc_encrypt: |
1782 L_aesni_cbc_encrypt_begin: | 1717 L_aesni_cbc_encrypt_begin: |
1783 pushl %ebp | 1718 pushl %ebp |
1784 pushl %ebx | 1719 pushl %ebx |
1785 pushl %esi | 1720 pushl %esi |
1786 pushl %edi | 1721 pushl %edi |
1787 movl 20(%esp),%esi | 1722 movl 20(%esp),%esi |
1788 movl %esp,%ebx | 1723 movl %esp,%ebx |
1789 movl 24(%esp),%edi | 1724 movl 24(%esp),%edi |
1790 subl $24,%ebx | 1725 subl $24,%ebx |
1791 movl 28(%esp),%eax | 1726 movl 28(%esp),%eax |
1792 andl $-16,%ebx | 1727 andl $-16,%ebx |
1793 movl 32(%esp),%edx | 1728 movl 32(%esp),%edx |
1794 movl 36(%esp),%ebp | 1729 movl 36(%esp),%ebp |
1795 testl %eax,%eax | 1730 testl %eax,%eax |
1796 » jz» L074cbc_abort | 1731 » jz» L072cbc_abort |
1797 cmpl $0,40(%esp) | 1732 cmpl $0,40(%esp) |
1798 xchgl %esp,%ebx | 1733 xchgl %esp,%ebx |
1799 movups (%ebp),%xmm7 | 1734 movups (%ebp),%xmm7 |
1800 movl 240(%edx),%ecx | 1735 movl 240(%edx),%ecx |
1801 movl %edx,%ebp | 1736 movl %edx,%ebp |
1802 movl %ebx,16(%esp) | 1737 movl %ebx,16(%esp) |
1803 movl %ecx,%ebx | 1738 movl %ecx,%ebx |
1804 » je» L075cbc_decrypt | 1739 » je» L073cbc_decrypt |
1805 movaps %xmm7,%xmm2 | 1740 movaps %xmm7,%xmm2 |
1806 cmpl $16,%eax | 1741 cmpl $16,%eax |
1807 » jb» L076cbc_enc_tail | 1742 » jb» L074cbc_enc_tail |
1808 subl $16,%eax | 1743 subl $16,%eax |
1809 » jmp» L077cbc_enc_loop | 1744 » jmp» L075cbc_enc_loop |
1810 .align 4,0x90 | 1745 .align 4,0x90 |
1811 L077cbc_enc_loop: | 1746 L075cbc_enc_loop: |
1812 movups (%esi),%xmm7 | 1747 movups (%esi),%xmm7 |
1813 leal 16(%esi),%esi | 1748 leal 16(%esi),%esi |
1814 movups (%edx),%xmm0 | 1749 movups (%edx),%xmm0 |
1815 movups 16(%edx),%xmm1 | 1750 movups 16(%edx),%xmm1 |
1816 xorps %xmm0,%xmm7 | 1751 xorps %xmm0,%xmm7 |
1817 leal 32(%edx),%edx | 1752 leal 32(%edx),%edx |
1818 xorps %xmm7,%xmm2 | 1753 xorps %xmm7,%xmm2 |
1819 L078enc1_loop_15: | 1754 L076enc1_loop_15: |
1820 .byte 102,15,56,220,209 | 1755 .byte 102,15,56,220,209 |
1821 decl %ecx | 1756 decl %ecx |
1822 movups (%edx),%xmm1 | 1757 movups (%edx),%xmm1 |
1823 leal 16(%edx),%edx | 1758 leal 16(%edx),%edx |
1824 » jnz» L078enc1_loop_15 | 1759 » jnz» L076enc1_loop_15 |
1825 .byte 102,15,56,221,209 | 1760 .byte 102,15,56,221,209 |
1826 movl %ebx,%ecx | 1761 movl %ebx,%ecx |
1827 movl %ebp,%edx | 1762 movl %ebp,%edx |
1828 movups %xmm2,(%edi) | 1763 movups %xmm2,(%edi) |
1829 leal 16(%edi),%edi | 1764 leal 16(%edi),%edi |
1830 subl $16,%eax | 1765 subl $16,%eax |
1831 » jnc» L077cbc_enc_loop | 1766 » jnc» L075cbc_enc_loop |
1832 addl $16,%eax | 1767 addl $16,%eax |
1833 » jnz» L076cbc_enc_tail | 1768 » jnz» L074cbc_enc_tail |
1834 movaps %xmm2,%xmm7 | 1769 movaps %xmm2,%xmm7 |
1835 » pxor» %xmm2,%xmm2 | 1770 » jmp» L077cbc_ret |
1836 » jmp» L079cbc_ret | 1771 L074cbc_enc_tail: |
1837 L076cbc_enc_tail: | |
1838 movl %eax,%ecx | 1772 movl %eax,%ecx |
1839 .long 2767451785 | 1773 .long 2767451785 |
1840 movl $16,%ecx | 1774 movl $16,%ecx |
1841 subl %eax,%ecx | 1775 subl %eax,%ecx |
1842 xorl %eax,%eax | 1776 xorl %eax,%eax |
1843 .long 2868115081 | 1777 .long 2868115081 |
1844 leal -16(%edi),%edi | 1778 leal -16(%edi),%edi |
1845 movl %ebx,%ecx | 1779 movl %ebx,%ecx |
1846 movl %edi,%esi | 1780 movl %edi,%esi |
1847 movl %ebp,%edx | 1781 movl %ebp,%edx |
1848 » jmp» L077cbc_enc_loop | 1782 » jmp» L075cbc_enc_loop |
1849 .align 4,0x90 | 1783 .align 4,0x90 |
1850 L075cbc_decrypt: | 1784 L073cbc_decrypt: |
1851 cmpl $80,%eax | 1785 cmpl $80,%eax |
1852 » jbe» L080cbc_dec_tail | 1786 » jbe» L078cbc_dec_tail |
1853 movaps %xmm7,(%esp) | 1787 movaps %xmm7,(%esp) |
1854 subl $80,%eax | 1788 subl $80,%eax |
1855 » jmp» L081cbc_dec_loop6_enter | 1789 » jmp» L079cbc_dec_loop6_enter |
1856 .align 4,0x90 | 1790 .align 4,0x90 |
1857 L082cbc_dec_loop6: | 1791 L080cbc_dec_loop6: |
1858 movaps %xmm0,(%esp) | 1792 movaps %xmm0,(%esp) |
1859 movups %xmm7,(%edi) | 1793 movups %xmm7,(%edi) |
1860 leal 16(%edi),%edi | 1794 leal 16(%edi),%edi |
1861 L081cbc_dec_loop6_enter: | 1795 L079cbc_dec_loop6_enter: |
1862 movdqu (%esi),%xmm2 | 1796 movdqu (%esi),%xmm2 |
1863 movdqu 16(%esi),%xmm3 | 1797 movdqu 16(%esi),%xmm3 |
1864 movdqu 32(%esi),%xmm4 | 1798 movdqu 32(%esi),%xmm4 |
1865 movdqu 48(%esi),%xmm5 | 1799 movdqu 48(%esi),%xmm5 |
1866 movdqu 64(%esi),%xmm6 | 1800 movdqu 64(%esi),%xmm6 |
1867 movdqu 80(%esi),%xmm7 | 1801 movdqu 80(%esi),%xmm7 |
1868 call __aesni_decrypt6 | 1802 call __aesni_decrypt6 |
1869 movups (%esi),%xmm1 | 1803 movups (%esi),%xmm1 |
1870 movups 16(%esi),%xmm0 | 1804 movups 16(%esi),%xmm0 |
1871 xorps (%esp),%xmm2 | 1805 xorps (%esp),%xmm2 |
1872 xorps %xmm1,%xmm3 | 1806 xorps %xmm1,%xmm3 |
1873 movups 32(%esi),%xmm1 | 1807 movups 32(%esi),%xmm1 |
1874 xorps %xmm0,%xmm4 | 1808 xorps %xmm0,%xmm4 |
1875 movups 48(%esi),%xmm0 | 1809 movups 48(%esi),%xmm0 |
1876 xorps %xmm1,%xmm5 | 1810 xorps %xmm1,%xmm5 |
1877 movups 64(%esi),%xmm1 | 1811 movups 64(%esi),%xmm1 |
1878 xorps %xmm0,%xmm6 | 1812 xorps %xmm0,%xmm6 |
1879 movups 80(%esi),%xmm0 | 1813 movups 80(%esi),%xmm0 |
1880 xorps %xmm1,%xmm7 | 1814 xorps %xmm1,%xmm7 |
1881 movups %xmm2,(%edi) | 1815 movups %xmm2,(%edi) |
1882 movups %xmm3,16(%edi) | 1816 movups %xmm3,16(%edi) |
1883 leal 96(%esi),%esi | 1817 leal 96(%esi),%esi |
1884 movups %xmm4,32(%edi) | 1818 movups %xmm4,32(%edi) |
1885 movl %ebx,%ecx | 1819 movl %ebx,%ecx |
1886 movups %xmm5,48(%edi) | 1820 movups %xmm5,48(%edi) |
1887 movl %ebp,%edx | 1821 movl %ebp,%edx |
1888 movups %xmm6,64(%edi) | 1822 movups %xmm6,64(%edi) |
1889 leal 80(%edi),%edi | 1823 leal 80(%edi),%edi |
1890 subl $96,%eax | 1824 subl $96,%eax |
1891 » ja» L082cbc_dec_loop6 | 1825 » ja» L080cbc_dec_loop6 |
1892 movaps %xmm7,%xmm2 | 1826 movaps %xmm7,%xmm2 |
1893 movaps %xmm0,%xmm7 | 1827 movaps %xmm0,%xmm7 |
1894 addl $80,%eax | 1828 addl $80,%eax |
1895 » jle» L083cbc_dec_clear_tail_collected | 1829 » jle» L081cbc_dec_tail_collected |
1896 movups %xmm2,(%edi) | 1830 movups %xmm2,(%edi) |
1897 leal 16(%edi),%edi | 1831 leal 16(%edi),%edi |
1898 L080cbc_dec_tail: | 1832 L078cbc_dec_tail: |
1899 movups (%esi),%xmm2 | 1833 movups (%esi),%xmm2 |
1900 movaps %xmm2,%xmm6 | 1834 movaps %xmm2,%xmm6 |
1901 cmpl $16,%eax | 1835 cmpl $16,%eax |
1902 » jbe» L084cbc_dec_one | 1836 » jbe» L082cbc_dec_one |
1903 movups 16(%esi),%xmm3 | 1837 movups 16(%esi),%xmm3 |
1904 movaps %xmm3,%xmm5 | 1838 movaps %xmm3,%xmm5 |
1905 cmpl $32,%eax | 1839 cmpl $32,%eax |
1906 » jbe» L085cbc_dec_two | 1840 » jbe» L083cbc_dec_two |
1907 movups 32(%esi),%xmm4 | 1841 movups 32(%esi),%xmm4 |
1908 cmpl $48,%eax | 1842 cmpl $48,%eax |
1909 » jbe» L086cbc_dec_three | 1843 » jbe» L084cbc_dec_three |
1910 movups 48(%esi),%xmm5 | 1844 movups 48(%esi),%xmm5 |
1911 cmpl $64,%eax | 1845 cmpl $64,%eax |
1912 » jbe» L087cbc_dec_four | 1846 » jbe» L085cbc_dec_four |
1913 movups 64(%esi),%xmm6 | 1847 movups 64(%esi),%xmm6 |
1914 movaps %xmm7,(%esp) | 1848 movaps %xmm7,(%esp) |
1915 movups (%esi),%xmm2 | 1849 movups (%esi),%xmm2 |
1916 xorps %xmm7,%xmm7 | 1850 xorps %xmm7,%xmm7 |
1917 call __aesni_decrypt6 | 1851 call __aesni_decrypt6 |
1918 movups (%esi),%xmm1 | 1852 movups (%esi),%xmm1 |
1919 movups 16(%esi),%xmm0 | 1853 movups 16(%esi),%xmm0 |
1920 xorps (%esp),%xmm2 | 1854 xorps (%esp),%xmm2 |
1921 xorps %xmm1,%xmm3 | 1855 xorps %xmm1,%xmm3 |
1922 movups 32(%esi),%xmm1 | 1856 movups 32(%esi),%xmm1 |
1923 xorps %xmm0,%xmm4 | 1857 xorps %xmm0,%xmm4 |
1924 movups 48(%esi),%xmm0 | 1858 movups 48(%esi),%xmm0 |
1925 xorps %xmm1,%xmm5 | 1859 xorps %xmm1,%xmm5 |
1926 movups 64(%esi),%xmm7 | 1860 movups 64(%esi),%xmm7 |
1927 xorps %xmm0,%xmm6 | 1861 xorps %xmm0,%xmm6 |
1928 movups %xmm2,(%edi) | 1862 movups %xmm2,(%edi) |
1929 movups %xmm3,16(%edi) | 1863 movups %xmm3,16(%edi) |
1930 pxor %xmm3,%xmm3 | |
1931 movups %xmm4,32(%edi) | 1864 movups %xmm4,32(%edi) |
1932 pxor %xmm4,%xmm4 | |
1933 movups %xmm5,48(%edi) | 1865 movups %xmm5,48(%edi) |
1934 pxor %xmm5,%xmm5 | |
1935 leal 64(%edi),%edi | 1866 leal 64(%edi),%edi |
1936 movaps %xmm6,%xmm2 | 1867 movaps %xmm6,%xmm2 |
1937 pxor %xmm6,%xmm6 | |
1938 subl $80,%eax | 1868 subl $80,%eax |
1939 » jmp» L088cbc_dec_tail_collected | 1869 » jmp» L081cbc_dec_tail_collected |
1940 .align 4,0x90 | 1870 .align 4,0x90 |
1941 L084cbc_dec_one: | 1871 L082cbc_dec_one: |
1942 movups (%edx),%xmm0 | 1872 movups (%edx),%xmm0 |
1943 movups 16(%edx),%xmm1 | 1873 movups 16(%edx),%xmm1 |
1944 leal 32(%edx),%edx | 1874 leal 32(%edx),%edx |
1945 xorps %xmm0,%xmm2 | 1875 xorps %xmm0,%xmm2 |
1946 L089dec1_loop_16: | 1876 L086dec1_loop_16: |
1947 .byte 102,15,56,222,209 | 1877 .byte 102,15,56,222,209 |
1948 decl %ecx | 1878 decl %ecx |
1949 movups (%edx),%xmm1 | 1879 movups (%edx),%xmm1 |
1950 leal 16(%edx),%edx | 1880 leal 16(%edx),%edx |
1951 » jnz» L089dec1_loop_16 | 1881 » jnz» L086dec1_loop_16 |
1952 .byte 102,15,56,223,209 | 1882 .byte 102,15,56,223,209 |
1953 xorps %xmm7,%xmm2 | 1883 xorps %xmm7,%xmm2 |
1954 movaps %xmm6,%xmm7 | 1884 movaps %xmm6,%xmm7 |
1955 subl $16,%eax | 1885 subl $16,%eax |
1956 » jmp» L088cbc_dec_tail_collected | 1886 » jmp» L081cbc_dec_tail_collected |
1957 .align 4,0x90 | 1887 .align 4,0x90 |
1958 L085cbc_dec_two: | 1888 L083cbc_dec_two: |
1959 call __aesni_decrypt2 | 1889 call __aesni_decrypt2 |
1960 xorps %xmm7,%xmm2 | 1890 xorps %xmm7,%xmm2 |
1961 xorps %xmm6,%xmm3 | 1891 xorps %xmm6,%xmm3 |
1962 movups %xmm2,(%edi) | 1892 movups %xmm2,(%edi) |
1963 movaps %xmm3,%xmm2 | 1893 movaps %xmm3,%xmm2 |
1964 pxor %xmm3,%xmm3 | |
1965 leal 16(%edi),%edi | 1894 leal 16(%edi),%edi |
1966 movaps %xmm5,%xmm7 | 1895 movaps %xmm5,%xmm7 |
1967 subl $32,%eax | 1896 subl $32,%eax |
1968 » jmp» L088cbc_dec_tail_collected | 1897 » jmp» L081cbc_dec_tail_collected |
1969 .align 4,0x90 | 1898 .align 4,0x90 |
1970 L086cbc_dec_three: | 1899 L084cbc_dec_three: |
1971 call __aesni_decrypt3 | 1900 call __aesni_decrypt3 |
1972 xorps %xmm7,%xmm2 | 1901 xorps %xmm7,%xmm2 |
1973 xorps %xmm6,%xmm3 | 1902 xorps %xmm6,%xmm3 |
1974 xorps %xmm5,%xmm4 | 1903 xorps %xmm5,%xmm4 |
1975 movups %xmm2,(%edi) | 1904 movups %xmm2,(%edi) |
1976 movaps %xmm4,%xmm2 | 1905 movaps %xmm4,%xmm2 |
1977 pxor %xmm4,%xmm4 | |
1978 movups %xmm3,16(%edi) | 1906 movups %xmm3,16(%edi) |
1979 pxor %xmm3,%xmm3 | |
1980 leal 32(%edi),%edi | 1907 leal 32(%edi),%edi |
1981 movups 32(%esi),%xmm7 | 1908 movups 32(%esi),%xmm7 |
1982 subl $48,%eax | 1909 subl $48,%eax |
1983 » jmp» L088cbc_dec_tail_collected | 1910 » jmp» L081cbc_dec_tail_collected |
1984 .align 4,0x90 | 1911 .align 4,0x90 |
1985 L087cbc_dec_four: | 1912 L085cbc_dec_four: |
1986 call __aesni_decrypt4 | 1913 call __aesni_decrypt4 |
1987 movups 16(%esi),%xmm1 | 1914 movups 16(%esi),%xmm1 |
1988 movups 32(%esi),%xmm0 | 1915 movups 32(%esi),%xmm0 |
1989 xorps %xmm7,%xmm2 | 1916 xorps %xmm7,%xmm2 |
1990 movups 48(%esi),%xmm7 | 1917 movups 48(%esi),%xmm7 |
1991 xorps %xmm6,%xmm3 | 1918 xorps %xmm6,%xmm3 |
1992 movups %xmm2,(%edi) | 1919 movups %xmm2,(%edi) |
1993 xorps %xmm1,%xmm4 | 1920 xorps %xmm1,%xmm4 |
1994 movups %xmm3,16(%edi) | 1921 movups %xmm3,16(%edi) |
1995 pxor %xmm3,%xmm3 | |
1996 xorps %xmm0,%xmm5 | 1922 xorps %xmm0,%xmm5 |
1997 movups %xmm4,32(%edi) | 1923 movups %xmm4,32(%edi) |
1998 pxor %xmm4,%xmm4 | |
1999 leal 48(%edi),%edi | 1924 leal 48(%edi),%edi |
2000 movaps %xmm5,%xmm2 | 1925 movaps %xmm5,%xmm2 |
2001 pxor %xmm5,%xmm5 | |
2002 subl $64,%eax | 1926 subl $64,%eax |
2003 » jmp» L088cbc_dec_tail_collected | 1927 L081cbc_dec_tail_collected: |
| 1928 » andl» $15,%eax |
| 1929 » jnz» L087cbc_dec_tail_partial |
| 1930 » movups» %xmm2,(%edi) |
| 1931 » jmp» L077cbc_ret |
2004 .align 4,0x90 | 1932 .align 4,0x90 |
2005 L083cbc_dec_clear_tail_collected: | 1933 L087cbc_dec_tail_partial: |
2006 » pxor» %xmm3,%xmm3 | |
2007 » pxor» %xmm4,%xmm4 | |
2008 » pxor» %xmm5,%xmm5 | |
2009 » pxor» %xmm6,%xmm6 | |
2010 L088cbc_dec_tail_collected: | |
2011 » andl» $15,%eax | |
2012 » jnz» L090cbc_dec_tail_partial | |
2013 » movups» %xmm2,(%edi) | |
2014 » pxor» %xmm0,%xmm0 | |
2015 » jmp» L079cbc_ret | |
2016 .align» 4,0x90 | |
2017 L090cbc_dec_tail_partial: | |
2018 movaps %xmm2,(%esp) | 1934 movaps %xmm2,(%esp) |
2019 pxor %xmm0,%xmm0 | |
2020 movl $16,%ecx | 1935 movl $16,%ecx |
2021 movl %esp,%esi | 1936 movl %esp,%esi |
2022 subl %eax,%ecx | 1937 subl %eax,%ecx |
2023 .long 2767451785 | 1938 .long 2767451785 |
2024 » movdqa» %xmm2,(%esp) | 1939 L077cbc_ret: |
2025 L079cbc_ret: | |
2026 movl 16(%esp),%esp | 1940 movl 16(%esp),%esp |
2027 movl 36(%esp),%ebp | 1941 movl 36(%esp),%ebp |
2028 pxor %xmm2,%xmm2 | |
2029 pxor %xmm1,%xmm1 | |
2030 movups %xmm7,(%ebp) | 1942 movups %xmm7,(%ebp) |
2031 » pxor» %xmm7,%xmm7 | 1943 L072cbc_abort: |
2032 L074cbc_abort: | |
2033 popl %edi | 1944 popl %edi |
2034 popl %esi | 1945 popl %esi |
2035 popl %ebx | 1946 popl %ebx |
2036 popl %ebp | 1947 popl %ebp |
2037 ret | 1948 ret |
2038 .private_extern __aesni_set_encrypt_key | 1949 .private_extern __aesni_set_encrypt_key |
2039 .align 4 | 1950 .align 4 |
2040 __aesni_set_encrypt_key: | 1951 __aesni_set_encrypt_key: |
2041 pushl %ebp | |
2042 pushl %ebx | |
2043 testl %eax,%eax | 1952 testl %eax,%eax |
2044 » jz» L091bad_pointer | 1953 » jz» L088bad_pointer |
2045 testl %edx,%edx | 1954 testl %edx,%edx |
2046 » jz» L091bad_pointer | 1955 » jz» L088bad_pointer |
2047 » call» L092pic | |
2048 L092pic: | |
2049 » popl» %ebx | |
2050 » leal» Lkey_const-L092pic(%ebx),%ebx | |
2051 » movl» L_OPENSSL_ia32cap_P$non_lazy_ptr-Lkey_const(%ebx),%ebp | |
2052 movups (%eax),%xmm0 | 1956 movups (%eax),%xmm0 |
2053 xorps %xmm4,%xmm4 | 1957 xorps %xmm4,%xmm4 |
2054 movl 4(%ebp),%ebp | |
2055 leal 16(%edx),%edx | 1958 leal 16(%edx),%edx |
2056 andl $268437504,%ebp | |
2057 cmpl $256,%ecx | 1959 cmpl $256,%ecx |
2058 » je» L09314rounds | 1960 » je» L08914rounds |
2059 cmpl $192,%ecx | 1961 cmpl $192,%ecx |
2060 » je» L09412rounds | 1962 » je» L09012rounds |
2061 cmpl $128,%ecx | 1963 cmpl $128,%ecx |
2062 » jne» L095bad_keybits | 1964 » jne» L091bad_keybits |
2063 .align 4,0x90 | 1965 .align 4,0x90 |
2064 L09610rounds: | 1966 L09210rounds: |
2065 » cmpl» $268435456,%ebp | |
2066 » je» L09710rounds_alt | |
2067 movl $9,%ecx | 1967 movl $9,%ecx |
2068 movups %xmm0,-16(%edx) | 1968 movups %xmm0,-16(%edx) |
2069 .byte 102,15,58,223,200,1 | 1969 .byte 102,15,58,223,200,1 |
2070 » call» L098key_128_cold | 1970 » call» L093key_128_cold |
2071 .byte 102,15,58,223,200,2 | 1971 .byte 102,15,58,223,200,2 |
2072 » call» L099key_128 | 1972 » call» L094key_128 |
2073 .byte 102,15,58,223,200,4 | 1973 .byte 102,15,58,223,200,4 |
2074 » call» L099key_128 | 1974 » call» L094key_128 |
2075 .byte 102,15,58,223,200,8 | 1975 .byte 102,15,58,223,200,8 |
2076 » call» L099key_128 | 1976 » call» L094key_128 |
2077 .byte 102,15,58,223,200,16 | 1977 .byte 102,15,58,223,200,16 |
2078 » call» L099key_128 | 1978 » call» L094key_128 |
2079 .byte 102,15,58,223,200,32 | 1979 .byte 102,15,58,223,200,32 |
2080 » call» L099key_128 | 1980 » call» L094key_128 |
2081 .byte 102,15,58,223,200,64 | 1981 .byte 102,15,58,223,200,64 |
2082 » call» L099key_128 | 1982 » call» L094key_128 |
2083 .byte 102,15,58,223,200,128 | 1983 .byte 102,15,58,223,200,128 |
2084 » call» L099key_128 | 1984 » call» L094key_128 |
2085 .byte 102,15,58,223,200,27 | 1985 .byte 102,15,58,223,200,27 |
2086 » call» L099key_128 | 1986 » call» L094key_128 |
2087 .byte 102,15,58,223,200,54 | 1987 .byte 102,15,58,223,200,54 |
2088 » call» L099key_128 | 1988 » call» L094key_128 |
2089 movups %xmm0,(%edx) | 1989 movups %xmm0,(%edx) |
2090 movl %ecx,80(%edx) | 1990 movl %ecx,80(%edx) |
2091 » jmp» L100good_key | 1991 » xorl» %eax,%eax |
| 1992 » ret |
2092 .align 4,0x90 | 1993 .align 4,0x90 |
2093 L099key_128: | 1994 L094key_128: |
2094 movups %xmm0,(%edx) | 1995 movups %xmm0,(%edx) |
2095 leal 16(%edx),%edx | 1996 leal 16(%edx),%edx |
2096 L098key_128_cold: | 1997 L093key_128_cold: |
2097 shufps $16,%xmm0,%xmm4 | 1998 shufps $16,%xmm0,%xmm4 |
2098 xorps %xmm4,%xmm0 | 1999 xorps %xmm4,%xmm0 |
2099 shufps $140,%xmm0,%xmm4 | 2000 shufps $140,%xmm0,%xmm4 |
2100 xorps %xmm4,%xmm0 | 2001 xorps %xmm4,%xmm0 |
2101 shufps $255,%xmm1,%xmm1 | 2002 shufps $255,%xmm1,%xmm1 |
2102 xorps %xmm1,%xmm0 | 2003 xorps %xmm1,%xmm0 |
2103 ret | 2004 ret |
2104 .align 4,0x90 | 2005 .align 4,0x90 |
2105 L09710rounds_alt: | 2006 L09012rounds: |
2106 » movdqa» (%ebx),%xmm5 | |
2107 » movl» $8,%ecx | |
2108 » movdqa» 32(%ebx),%xmm4 | |
2109 » movdqa» %xmm0,%xmm2 | |
2110 » movdqu» %xmm0,-16(%edx) | |
2111 L101loop_key128: | |
2112 .byte» 102,15,56,0,197 | |
2113 .byte» 102,15,56,221,196 | |
2114 » pslld» $1,%xmm4 | |
2115 » leal» 16(%edx),%edx | |
2116 » movdqa» %xmm2,%xmm3 | |
2117 » pslldq» $4,%xmm2 | |
2118 » pxor» %xmm2,%xmm3 | |
2119 » pslldq» $4,%xmm2 | |
2120 » pxor» %xmm2,%xmm3 | |
2121 » pslldq» $4,%xmm2 | |
2122 » pxor» %xmm3,%xmm2 | |
2123 » pxor» %xmm2,%xmm0 | |
2124 » movdqu» %xmm0,-16(%edx) | |
2125 » movdqa» %xmm0,%xmm2 | |
2126 » decl» %ecx | |
2127 » jnz» L101loop_key128 | |
2128 » movdqa» 48(%ebx),%xmm4 | |
2129 .byte» 102,15,56,0,197 | |
2130 .byte» 102,15,56,221,196 | |
2131 » pslld» $1,%xmm4 | |
2132 » movdqa» %xmm2,%xmm3 | |
2133 » pslldq» $4,%xmm2 | |
2134 » pxor» %xmm2,%xmm3 | |
2135 » pslldq» $4,%xmm2 | |
2136 » pxor» %xmm2,%xmm3 | |
2137 » pslldq» $4,%xmm2 | |
2138 » pxor» %xmm3,%xmm2 | |
2139 » pxor» %xmm2,%xmm0 | |
2140 » movdqu» %xmm0,(%edx) | |
2141 » movdqa» %xmm0,%xmm2 | |
2142 .byte» 102,15,56,0,197 | |
2143 .byte» 102,15,56,221,196 | |
2144 » movdqa» %xmm2,%xmm3 | |
2145 » pslldq» $4,%xmm2 | |
2146 » pxor» %xmm2,%xmm3 | |
2147 » pslldq» $4,%xmm2 | |
2148 » pxor» %xmm2,%xmm3 | |
2149 » pslldq» $4,%xmm2 | |
2150 » pxor» %xmm3,%xmm2 | |
2151 » pxor» %xmm2,%xmm0 | |
2152 » movdqu» %xmm0,16(%edx) | |
2153 » movl» $9,%ecx | |
2154 » movl» %ecx,96(%edx) | |
2155 » jmp» L100good_key | |
2156 .align» 4,0x90 | |
2157 L09412rounds: | |
2158 movq 16(%eax),%xmm2 | 2007 movq 16(%eax),%xmm2 |
2159 cmpl $268435456,%ebp | |
2160 je L10212rounds_alt | |
2161 movl $11,%ecx | 2008 movl $11,%ecx |
2162 movups %xmm0,-16(%edx) | 2009 movups %xmm0,-16(%edx) |
2163 .byte 102,15,58,223,202,1 | 2010 .byte 102,15,58,223,202,1 |
2164 » call» L103key_192a_cold | 2011 » call» L095key_192a_cold |
2165 .byte 102,15,58,223,202,2 | 2012 .byte 102,15,58,223,202,2 |
2166 » call» L104key_192b | 2013 » call» L096key_192b |
2167 .byte 102,15,58,223,202,4 | 2014 .byte 102,15,58,223,202,4 |
2168 » call» L105key_192a | 2015 » call» L097key_192a |
2169 .byte 102,15,58,223,202,8 | 2016 .byte 102,15,58,223,202,8 |
2170 » call» L104key_192b | 2017 » call» L096key_192b |
2171 .byte 102,15,58,223,202,16 | 2018 .byte 102,15,58,223,202,16 |
2172 » call» L105key_192a | 2019 » call» L097key_192a |
2173 .byte 102,15,58,223,202,32 | 2020 .byte 102,15,58,223,202,32 |
2174 » call» L104key_192b | 2021 » call» L096key_192b |
2175 .byte 102,15,58,223,202,64 | 2022 .byte 102,15,58,223,202,64 |
2176 » call» L105key_192a | 2023 » call» L097key_192a |
2177 .byte 102,15,58,223,202,128 | 2024 .byte 102,15,58,223,202,128 |
2178 » call» L104key_192b | 2025 » call» L096key_192b |
2179 movups %xmm0,(%edx) | 2026 movups %xmm0,(%edx) |
2180 movl %ecx,48(%edx) | 2027 movl %ecx,48(%edx) |
2181 » jmp» L100good_key | 2028 » xorl» %eax,%eax |
| 2029 » ret |
2182 .align 4,0x90 | 2030 .align 4,0x90 |
2183 L105key_192a: | 2031 L097key_192a: |
2184 movups %xmm0,(%edx) | 2032 movups %xmm0,(%edx) |
2185 leal 16(%edx),%edx | 2033 leal 16(%edx),%edx |
2186 .align 4,0x90 | 2034 .align 4,0x90 |
2187 L103key_192a_cold: | 2035 L095key_192a_cold: |
2188 movaps %xmm2,%xmm5 | 2036 movaps %xmm2,%xmm5 |
2189 L106key_192b_warm: | 2037 L098key_192b_warm: |
2190 shufps $16,%xmm0,%xmm4 | 2038 shufps $16,%xmm0,%xmm4 |
2191 movdqa %xmm2,%xmm3 | 2039 movdqa %xmm2,%xmm3 |
2192 xorps %xmm4,%xmm0 | 2040 xorps %xmm4,%xmm0 |
2193 shufps $140,%xmm0,%xmm4 | 2041 shufps $140,%xmm0,%xmm4 |
2194 pslldq $4,%xmm3 | 2042 pslldq $4,%xmm3 |
2195 xorps %xmm4,%xmm0 | 2043 xorps %xmm4,%xmm0 |
2196 pshufd $85,%xmm1,%xmm1 | 2044 pshufd $85,%xmm1,%xmm1 |
2197 pxor %xmm3,%xmm2 | 2045 pxor %xmm3,%xmm2 |
2198 pxor %xmm1,%xmm0 | 2046 pxor %xmm1,%xmm0 |
2199 pshufd $255,%xmm0,%xmm3 | 2047 pshufd $255,%xmm0,%xmm3 |
2200 pxor %xmm3,%xmm2 | 2048 pxor %xmm3,%xmm2 |
2201 ret | 2049 ret |
2202 .align 4,0x90 | 2050 .align 4,0x90 |
2203 L104key_192b: | 2051 L096key_192b: |
2204 movaps %xmm0,%xmm3 | 2052 movaps %xmm0,%xmm3 |
2205 shufps $68,%xmm0,%xmm5 | 2053 shufps $68,%xmm0,%xmm5 |
2206 movups %xmm5,(%edx) | 2054 movups %xmm5,(%edx) |
2207 shufps $78,%xmm2,%xmm3 | 2055 shufps $78,%xmm2,%xmm3 |
2208 movups %xmm3,16(%edx) | 2056 movups %xmm3,16(%edx) |
2209 leal 32(%edx),%edx | 2057 leal 32(%edx),%edx |
2210 » jmp» L106key_192b_warm | 2058 » jmp» L098key_192b_warm |
2211 .align 4,0x90 | 2059 .align 4,0x90 |
2212 L10212rounds_alt: | 2060 L08914rounds: |
2213 » movdqa» 16(%ebx),%xmm5 | |
2214 » movdqa» 32(%ebx),%xmm4 | |
2215 » movl» $8,%ecx | |
2216 » movdqu» %xmm0,-16(%edx) | |
2217 L107loop_key192: | |
2218 » movq» %xmm2,(%edx) | |
2219 » movdqa» %xmm2,%xmm1 | |
2220 .byte» 102,15,56,0,213 | |
2221 .byte» 102,15,56,221,212 | |
2222 » pslld» $1,%xmm4 | |
2223 » leal» 24(%edx),%edx | |
2224 » movdqa» %xmm0,%xmm3 | |
2225 » pslldq» $4,%xmm0 | |
2226 » pxor» %xmm0,%xmm3 | |
2227 » pslldq» $4,%xmm0 | |
2228 » pxor» %xmm0,%xmm3 | |
2229 » pslldq» $4,%xmm0 | |
2230 » pxor» %xmm3,%xmm0 | |
2231 » pshufd» $255,%xmm0,%xmm3 | |
2232 » pxor» %xmm1,%xmm3 | |
2233 » pslldq» $4,%xmm1 | |
2234 » pxor» %xmm1,%xmm3 | |
2235 » pxor» %xmm2,%xmm0 | |
2236 » pxor» %xmm3,%xmm2 | |
2237 » movdqu» %xmm0,-16(%edx) | |
2238 » decl» %ecx | |
2239 » jnz» L107loop_key192 | |
2240 » movl» $11,%ecx | |
2241 » movl» %ecx,32(%edx) | |
2242 » jmp» L100good_key | |
2243 .align» 4,0x90 | |
2244 L09314rounds: | |
2245 movups 16(%eax),%xmm2 | 2061 movups 16(%eax),%xmm2 |
| 2062 movl $13,%ecx |
2246 leal 16(%edx),%edx | 2063 leal 16(%edx),%edx |
2247 cmpl $268435456,%ebp | |
2248 je L10814rounds_alt | |
2249 movl $13,%ecx | |
2250 movups %xmm0,-32(%edx) | 2064 movups %xmm0,-32(%edx) |
2251 movups %xmm2,-16(%edx) | 2065 movups %xmm2,-16(%edx) |
2252 .byte 102,15,58,223,202,1 | 2066 .byte 102,15,58,223,202,1 |
2253 » call» L109key_256a_cold | 2067 » call» L099key_256a_cold |
2254 .byte 102,15,58,223,200,1 | 2068 .byte 102,15,58,223,200,1 |
2255 » call» L110key_256b | 2069 » call» L100key_256b |
2256 .byte 102,15,58,223,202,2 | 2070 .byte 102,15,58,223,202,2 |
2257 » call» L111key_256a | 2071 » call» L101key_256a |
2258 .byte 102,15,58,223,200,2 | 2072 .byte 102,15,58,223,200,2 |
2259 » call» L110key_256b | 2073 » call» L100key_256b |
2260 .byte 102,15,58,223,202,4 | 2074 .byte 102,15,58,223,202,4 |
2261 » call» L111key_256a | 2075 » call» L101key_256a |
2262 .byte 102,15,58,223,200,4 | 2076 .byte 102,15,58,223,200,4 |
2263 » call» L110key_256b | 2077 » call» L100key_256b |
2264 .byte 102,15,58,223,202,8 | 2078 .byte 102,15,58,223,202,8 |
2265 » call» L111key_256a | 2079 » call» L101key_256a |
2266 .byte 102,15,58,223,200,8 | 2080 .byte 102,15,58,223,200,8 |
2267 » call» L110key_256b | 2081 » call» L100key_256b |
2268 .byte 102,15,58,223,202,16 | 2082 .byte 102,15,58,223,202,16 |
2269 » call» L111key_256a | 2083 » call» L101key_256a |
2270 .byte 102,15,58,223,200,16 | 2084 .byte 102,15,58,223,200,16 |
2271 » call» L110key_256b | 2085 » call» L100key_256b |
2272 .byte 102,15,58,223,202,32 | 2086 .byte 102,15,58,223,202,32 |
2273 » call» L111key_256a | 2087 » call» L101key_256a |
2274 .byte 102,15,58,223,200,32 | 2088 .byte 102,15,58,223,200,32 |
2275 » call» L110key_256b | 2089 » call» L100key_256b |
2276 .byte 102,15,58,223,202,64 | 2090 .byte 102,15,58,223,202,64 |
2277 » call» L111key_256a | 2091 » call» L101key_256a |
2278 movups %xmm0,(%edx) | 2092 movups %xmm0,(%edx) |
2279 movl %ecx,16(%edx) | 2093 movl %ecx,16(%edx) |
2280 xorl %eax,%eax | 2094 xorl %eax,%eax |
2281 » jmp» L100good_key | 2095 » ret |
2282 .align 4,0x90 | 2096 .align 4,0x90 |
2283 L111key_256a: | 2097 L101key_256a: |
2284 movups %xmm2,(%edx) | 2098 movups %xmm2,(%edx) |
2285 leal 16(%edx),%edx | 2099 leal 16(%edx),%edx |
2286 L109key_256a_cold: | 2100 L099key_256a_cold: |
2287 shufps $16,%xmm0,%xmm4 | 2101 shufps $16,%xmm0,%xmm4 |
2288 xorps %xmm4,%xmm0 | 2102 xorps %xmm4,%xmm0 |
2289 shufps $140,%xmm0,%xmm4 | 2103 shufps $140,%xmm0,%xmm4 |
2290 xorps %xmm4,%xmm0 | 2104 xorps %xmm4,%xmm0 |
2291 shufps $255,%xmm1,%xmm1 | 2105 shufps $255,%xmm1,%xmm1 |
2292 xorps %xmm1,%xmm0 | 2106 xorps %xmm1,%xmm0 |
2293 ret | 2107 ret |
2294 .align 4,0x90 | 2108 .align 4,0x90 |
2295 L110key_256b: | 2109 L100key_256b: |
2296 movups %xmm0,(%edx) | 2110 movups %xmm0,(%edx) |
2297 leal 16(%edx),%edx | 2111 leal 16(%edx),%edx |
2298 shufps $16,%xmm2,%xmm4 | 2112 shufps $16,%xmm2,%xmm4 |
2299 xorps %xmm4,%xmm2 | 2113 xorps %xmm4,%xmm2 |
2300 shufps $140,%xmm2,%xmm4 | 2114 shufps $140,%xmm2,%xmm4 |
2301 xorps %xmm4,%xmm2 | 2115 xorps %xmm4,%xmm2 |
2302 shufps $170,%xmm1,%xmm1 | 2116 shufps $170,%xmm1,%xmm1 |
2303 xorps %xmm1,%xmm2 | 2117 xorps %xmm1,%xmm2 |
2304 ret | 2118 ret |
2305 .align» 4,0x90 | 2119 .align» 2,0x90 |
2306 L10814rounds_alt: | 2120 L088bad_pointer: |
2307 » movdqa» (%ebx),%xmm5 | 2121 » movl» $-1,%eax |
2308 » movdqa» 32(%ebx),%xmm4 | |
2309 » movl» $7,%ecx | |
2310 » movdqu» %xmm0,-32(%edx) | |
2311 » movdqa» %xmm2,%xmm1 | |
2312 » movdqu» %xmm2,-16(%edx) | |
2313 L112loop_key256: | |
2314 .byte» 102,15,56,0,213 | |
2315 .byte» 102,15,56,221,212 | |
2316 » movdqa» %xmm0,%xmm3 | |
2317 » pslldq» $4,%xmm0 | |
2318 » pxor» %xmm0,%xmm3 | |
2319 » pslldq» $4,%xmm0 | |
2320 » pxor» %xmm0,%xmm3 | |
2321 » pslldq» $4,%xmm0 | |
2322 » pxor» %xmm3,%xmm0 | |
2323 » pslld» $1,%xmm4 | |
2324 » pxor» %xmm2,%xmm0 | |
2325 » movdqu» %xmm0,(%edx) | |
2326 » decl» %ecx | |
2327 » jz» L113done_key256 | |
2328 » pshufd» $255,%xmm0,%xmm2 | |
2329 » pxor» %xmm3,%xmm3 | |
2330 .byte» 102,15,56,221,211 | |
2331 » movdqa» %xmm1,%xmm3 | |
2332 » pslldq» $4,%xmm1 | |
2333 » pxor» %xmm1,%xmm3 | |
2334 » pslldq» $4,%xmm1 | |
2335 » pxor» %xmm1,%xmm3 | |
2336 » pslldq» $4,%xmm1 | |
2337 » pxor» %xmm3,%xmm1 | |
2338 » pxor» %xmm1,%xmm2 | |
2339 » movdqu» %xmm2,16(%edx) | |
2340 » leal» 32(%edx),%edx | |
2341 » movdqa» %xmm2,%xmm1 | |
2342 » jmp» L112loop_key256 | |
2343 L113done_key256: | |
2344 » movl» $13,%ecx | |
2345 » movl» %ecx,16(%edx) | |
2346 L100good_key: | |
2347 » pxor» %xmm0,%xmm0 | |
2348 » pxor» %xmm1,%xmm1 | |
2349 » pxor» %xmm2,%xmm2 | |
2350 » pxor» %xmm3,%xmm3 | |
2351 » pxor» %xmm4,%xmm4 | |
2352 » pxor» %xmm5,%xmm5 | |
2353 » xorl» %eax,%eax | |
2354 » popl» %ebx | |
2355 » popl» %ebp | |
2356 ret | 2122 ret |
2357 .align 2,0x90 | 2123 .align 2,0x90 |
2358 L091bad_pointer: | 2124 L091bad_keybits: |
2359 » movl» $-1,%eax | |
2360 » popl» %ebx | |
2361 » popl» %ebp | |
2362 » ret | |
2363 .align» 2,0x90 | |
2364 L095bad_keybits: | |
2365 » pxor» %xmm0,%xmm0 | |
2366 movl $-2,%eax | 2125 movl $-2,%eax |
2367 popl %ebx | |
2368 popl %ebp | |
2369 ret | 2126 ret |
2370 .globl _aesni_set_encrypt_key | 2127 .globl _aesni_set_encrypt_key |
2371 .private_extern _aesni_set_encrypt_key | 2128 .private_extern _aesni_set_encrypt_key |
2372 .align 4 | 2129 .align 4 |
2373 _aesni_set_encrypt_key: | 2130 _aesni_set_encrypt_key: |
2374 L_aesni_set_encrypt_key_begin: | 2131 L_aesni_set_encrypt_key_begin: |
2375 movl 4(%esp),%eax | 2132 movl 4(%esp),%eax |
2376 movl 8(%esp),%ecx | 2133 movl 8(%esp),%ecx |
2377 movl 12(%esp),%edx | 2134 movl 12(%esp),%edx |
2378 call __aesni_set_encrypt_key | 2135 call __aesni_set_encrypt_key |
2379 ret | 2136 ret |
2380 .globl _aesni_set_decrypt_key | 2137 .globl _aesni_set_decrypt_key |
2381 .private_extern _aesni_set_decrypt_key | 2138 .private_extern _aesni_set_decrypt_key |
2382 .align 4 | 2139 .align 4 |
2383 _aesni_set_decrypt_key: | 2140 _aesni_set_decrypt_key: |
2384 L_aesni_set_decrypt_key_begin: | 2141 L_aesni_set_decrypt_key_begin: |
2385 movl 4(%esp),%eax | 2142 movl 4(%esp),%eax |
2386 movl 8(%esp),%ecx | 2143 movl 8(%esp),%ecx |
2387 movl 12(%esp),%edx | 2144 movl 12(%esp),%edx |
2388 call __aesni_set_encrypt_key | 2145 call __aesni_set_encrypt_key |
2389 movl 12(%esp),%edx | 2146 movl 12(%esp),%edx |
2390 shll $4,%ecx | 2147 shll $4,%ecx |
2391 testl %eax,%eax | 2148 testl %eax,%eax |
2392 » jnz» L114dec_key_ret | 2149 » jnz» L102dec_key_ret |
2393 leal 16(%edx,%ecx,1),%eax | 2150 leal 16(%edx,%ecx,1),%eax |
2394 movups (%edx),%xmm0 | 2151 movups (%edx),%xmm0 |
2395 movups (%eax),%xmm1 | 2152 movups (%eax),%xmm1 |
2396 movups %xmm0,(%eax) | 2153 movups %xmm0,(%eax) |
2397 movups %xmm1,(%edx) | 2154 movups %xmm1,(%edx) |
2398 leal 16(%edx),%edx | 2155 leal 16(%edx),%edx |
2399 leal -16(%eax),%eax | 2156 leal -16(%eax),%eax |
2400 L115dec_key_inverse: | 2157 L103dec_key_inverse: |
2401 movups (%edx),%xmm0 | 2158 movups (%edx),%xmm0 |
2402 movups (%eax),%xmm1 | 2159 movups (%eax),%xmm1 |
2403 .byte 102,15,56,219,192 | 2160 .byte 102,15,56,219,192 |
2404 .byte 102,15,56,219,201 | 2161 .byte 102,15,56,219,201 |
2405 leal 16(%edx),%edx | 2162 leal 16(%edx),%edx |
2406 leal -16(%eax),%eax | 2163 leal -16(%eax),%eax |
2407 movups %xmm0,16(%eax) | 2164 movups %xmm0,16(%eax) |
2408 movups %xmm1,-16(%edx) | 2165 movups %xmm1,-16(%edx) |
2409 cmpl %edx,%eax | 2166 cmpl %edx,%eax |
2410 » ja» L115dec_key_inverse | 2167 » ja» L103dec_key_inverse |
2411 movups (%edx),%xmm0 | 2168 movups (%edx),%xmm0 |
2412 .byte 102,15,56,219,192 | 2169 .byte 102,15,56,219,192 |
2413 movups %xmm0,(%edx) | 2170 movups %xmm0,(%edx) |
2414 pxor %xmm0,%xmm0 | |
2415 pxor %xmm1,%xmm1 | |
2416 xorl %eax,%eax | 2171 xorl %eax,%eax |
2417 L114dec_key_ret: | 2172 L102dec_key_ret: |
2418 ret | 2173 ret |
2419 .align 6,0x90 | |
2420 Lkey_const: | |
2421 .long 202313229,202313229,202313229,202313229 | |
2422 .long 67569157,67569157,67569157,67569157 | |
2423 .long 1,1,1,1 | |
2424 .long 27,27,27,27 | |
2425 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 | 2174 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 |
2426 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 | 2175 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 |
2427 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 | 2176 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 |
2428 .byte 115,108,46,111,114,103,62,0 | 2177 .byte 115,108,46,111,114,103,62,0 |
2429 .section __IMPORT,__pointers,non_lazy_symbol_pointers | |
2430 L_OPENSSL_ia32cap_P$non_lazy_ptr: | |
2431 .indirect_symbol _OPENSSL_ia32cap_P | |
2432 .long 0 | |
2433 #endif | 2178 #endif |
OLD | NEW |