Home | History | Annotate | Line # | Download | only in x86_64
      1 #include <machine/asm.h>
      2 .text
      3 
      4 
      5 
      6 
      7 
      8 
      9 
     10 
     11 
     12 
     13 
     14 
     15 
     16 
     17 
     18 
     19 .type	_vpaes_encrypt_core,@function
     20 .align	16
     21 _vpaes_encrypt_core:
     22 .cfi_startproc
     23 	movq	%rdx,%r9
     24 	movq	$16,%r11
     25 	movl	240(%rdx),%eax
     26 	movdqa	%xmm9,%xmm1
     27 	movdqa	.Lk_ipt(%rip),%xmm2
     28 	pandn	%xmm0,%xmm1
     29 	movdqu	(%r9),%xmm5
     30 	psrld	$4,%xmm1
     31 	pand	%xmm9,%xmm0
     32 .byte	102,15,56,0,208
     33 	movdqa	.Lk_ipt+16(%rip),%xmm0
     34 .byte	102,15,56,0,193
     35 	pxor	%xmm5,%xmm2
     36 	addq	$16,%r9
     37 	pxor	%xmm2,%xmm0
     38 	leaq	.Lk_mc_backward(%rip),%r10
     39 	jmp	.Lenc_entry
     40 
     41 .align	16
     42 .Lenc_loop:
     43 
     44 	movdqa	%xmm13,%xmm4
     45 	movdqa	%xmm12,%xmm0
     46 .byte	102,15,56,0,226
     47 .byte	102,15,56,0,195
     48 	pxor	%xmm5,%xmm4
     49 	movdqa	%xmm15,%xmm5
     50 	pxor	%xmm4,%xmm0
     51 	movdqa	-64(%r11,%r10,1),%xmm1
     52 .byte	102,15,56,0,234
     53 	movdqa	(%r11,%r10,1),%xmm4
     54 	movdqa	%xmm14,%xmm2
     55 .byte	102,15,56,0,211
     56 	movdqa	%xmm0,%xmm3
     57 	pxor	%xmm5,%xmm2
     58 .byte	102,15,56,0,193
     59 	addq	$16,%r9
     60 	pxor	%xmm2,%xmm0
     61 .byte	102,15,56,0,220
     62 	addq	$16,%r11
     63 	pxor	%xmm0,%xmm3
     64 .byte	102,15,56,0,193
     65 	andq	$0x30,%r11
     66 	subq	$1,%rax
     67 	pxor	%xmm3,%xmm0
     68 
     69 .Lenc_entry:
     70 
     71 	movdqa	%xmm9,%xmm1
     72 	movdqa	%xmm11,%xmm5
     73 	pandn	%xmm0,%xmm1
     74 	psrld	$4,%xmm1
     75 	pand	%xmm9,%xmm0
     76 .byte	102,15,56,0,232
     77 	movdqa	%xmm10,%xmm3
     78 	pxor	%xmm1,%xmm0
     79 .byte	102,15,56,0,217
     80 	movdqa	%xmm10,%xmm4
     81 	pxor	%xmm5,%xmm3
     82 .byte	102,15,56,0,224
     83 	movdqa	%xmm10,%xmm2
     84 	pxor	%xmm5,%xmm4
     85 .byte	102,15,56,0,211
     86 	movdqa	%xmm10,%xmm3
     87 	pxor	%xmm0,%xmm2
     88 .byte	102,15,56,0,220
     89 	movdqu	(%r9),%xmm5
     90 	pxor	%xmm1,%xmm3
     91 	jnz	.Lenc_loop
     92 
     93 
     94 	movdqa	-96(%r10),%xmm4
     95 	movdqa	-80(%r10),%xmm0
     96 .byte	102,15,56,0,226
     97 	pxor	%xmm5,%xmm4
     98 .byte	102,15,56,0,195
     99 	movdqa	64(%r11,%r10,1),%xmm1
    100 	pxor	%xmm4,%xmm0
    101 .byte	102,15,56,0,193
    102 	.byte	0xf3,0xc3
    103 .cfi_endproc
    104 .size	_vpaes_encrypt_core,.-_vpaes_encrypt_core
    105 
    106 
    107 
    108 
    109 
    110 
    111 .type	_vpaes_decrypt_core,@function
    112 .align	16
    113 _vpaes_decrypt_core:
    114 .cfi_startproc
    115 	movq	%rdx,%r9
    116 	movl	240(%rdx),%eax
    117 	movdqa	%xmm9,%xmm1
    118 	movdqa	.Lk_dipt(%rip),%xmm2
    119 	pandn	%xmm0,%xmm1
    120 	movq	%rax,%r11
    121 	psrld	$4,%xmm1
    122 	movdqu	(%r9),%xmm5
    123 	shlq	$4,%r11
    124 	pand	%xmm9,%xmm0
    125 .byte	102,15,56,0,208
    126 	movdqa	.Lk_dipt+16(%rip),%xmm0
    127 	xorq	$0x30,%r11
    128 	leaq	.Lk_dsbd(%rip),%r10
    129 .byte	102,15,56,0,193
    130 	andq	$0x30,%r11
    131 	pxor	%xmm5,%xmm2
    132 	movdqa	.Lk_mc_forward+48(%rip),%xmm5
    133 	pxor	%xmm2,%xmm0
    134 	addq	$16,%r9
    135 	addq	%r10,%r11
    136 	jmp	.Ldec_entry
    137 
    138 .align	16
    139 .Ldec_loop:
    140 
    141 
    142 
    143 	movdqa	-32(%r10),%xmm4
    144 	movdqa	-16(%r10),%xmm1
    145 .byte	102,15,56,0,226
    146 .byte	102,15,56,0,203
    147 	pxor	%xmm4,%xmm0
    148 	movdqa	0(%r10),%xmm4
    149 	pxor	%xmm1,%xmm0
    150 	movdqa	16(%r10),%xmm1
    151 
    152 .byte	102,15,56,0,226
    153 .byte	102,15,56,0,197
    154 .byte	102,15,56,0,203
    155 	pxor	%xmm4,%xmm0
    156 	movdqa	32(%r10),%xmm4
    157 	pxor	%xmm1,%xmm0
    158 	movdqa	48(%r10),%xmm1
    159 
    160 .byte	102,15,56,0,226
    161 .byte	102,15,56,0,197
    162 .byte	102,15,56,0,203
    163 	pxor	%xmm4,%xmm0
    164 	movdqa	64(%r10),%xmm4
    165 	pxor	%xmm1,%xmm0
    166 	movdqa	80(%r10),%xmm1
    167 
    168 .byte	102,15,56,0,226
    169 .byte	102,15,56,0,197
    170 .byte	102,15,56,0,203
    171 	pxor	%xmm4,%xmm0
    172 	addq	$16,%r9
    173 .byte	102,15,58,15,237,12
    174 	pxor	%xmm1,%xmm0
    175 	subq	$1,%rax
    176 
    177 .Ldec_entry:
    178 
    179 	movdqa	%xmm9,%xmm1
    180 	pandn	%xmm0,%xmm1
    181 	movdqa	%xmm11,%xmm2
    182 	psrld	$4,%xmm1
    183 	pand	%xmm9,%xmm0
    184 .byte	102,15,56,0,208
    185 	movdqa	%xmm10,%xmm3
    186 	pxor	%xmm1,%xmm0
    187 .byte	102,15,56,0,217
    188 	movdqa	%xmm10,%xmm4
    189 	pxor	%xmm2,%xmm3
    190 .byte	102,15,56,0,224
    191 	pxor	%xmm2,%xmm4
    192 	movdqa	%xmm10,%xmm2
    193 .byte	102,15,56,0,211
    194 	movdqa	%xmm10,%xmm3
    195 	pxor	%xmm0,%xmm2
    196 .byte	102,15,56,0,220
    197 	movdqu	(%r9),%xmm0
    198 	pxor	%xmm1,%xmm3
    199 	jnz	.Ldec_loop
    200 
    201 
    202 	movdqa	96(%r10),%xmm4
    203 .byte	102,15,56,0,226
    204 	pxor	%xmm0,%xmm4
    205 	movdqa	112(%r10),%xmm0
    206 	movdqa	-352(%r11),%xmm2
    207 .byte	102,15,56,0,195
    208 	pxor	%xmm4,%xmm0
    209 .byte	102,15,56,0,194
    210 	.byte	0xf3,0xc3
    211 .cfi_endproc
    212 .size	_vpaes_decrypt_core,.-_vpaes_decrypt_core
    213 
    214 
    215 
    216 
    217 
    218 
    219 .type	_vpaes_schedule_core,@function
    220 .align	16
    221 _vpaes_schedule_core:
    222 .cfi_startproc
    223 
    224 
    225 
    226 
    227 
    228 	call	_vpaes_preheat
    229 	movdqa	.Lk_rcon(%rip),%xmm8
    230 	movdqu	(%rdi),%xmm0
    231 
    232 
    233 	movdqa	%xmm0,%xmm3
    234 	leaq	.Lk_ipt(%rip),%r11
    235 	call	_vpaes_schedule_transform
    236 	movdqa	%xmm0,%xmm7
    237 
    238 	leaq	.Lk_sr(%rip),%r10
    239 	testq	%rcx,%rcx
    240 	jnz	.Lschedule_am_decrypting
    241 
    242 
    243 	movdqu	%xmm0,(%rdx)
    244 	jmp	.Lschedule_go
    245 
    246 .Lschedule_am_decrypting:
    247 
    248 	movdqa	(%r8,%r10,1),%xmm1
    249 .byte	102,15,56,0,217
    250 	movdqu	%xmm3,(%rdx)
    251 	xorq	$0x30,%r8
    252 
    253 .Lschedule_go:
    254 	cmpl	$192,%esi
    255 	ja	.Lschedule_256
    256 	je	.Lschedule_192
    257 
    258 
    259 
    260 
    261 
    262 
    263 
    264 
    265 
    266 
    267 .Lschedule_128:
    268 	movl	$10,%esi
    269 
    270 .Loop_schedule_128:
    271 	call	_vpaes_schedule_round
    272 	decq	%rsi
    273 	jz	.Lschedule_mangle_last
    274 	call	_vpaes_schedule_mangle
    275 	jmp	.Loop_schedule_128
    276 
    277 
    278 
    279 
    280 
    281 
    282 
    283 
    284 
    285 
    286 
    287 
    288 
    289 
    290 
    291 
    292 .align	16
    293 .Lschedule_192:
    294 	movdqu	8(%rdi),%xmm0
    295 	call	_vpaes_schedule_transform
    296 	movdqa	%xmm0,%xmm6
    297 	pxor	%xmm4,%xmm4
    298 	movhlps	%xmm4,%xmm6
    299 	movl	$4,%esi
    300 
    301 .Loop_schedule_192:
    302 	call	_vpaes_schedule_round
    303 .byte	102,15,58,15,198,8
    304 	call	_vpaes_schedule_mangle
    305 	call	_vpaes_schedule_192_smear
    306 	call	_vpaes_schedule_mangle
    307 	call	_vpaes_schedule_round
    308 	decq	%rsi
    309 	jz	.Lschedule_mangle_last
    310 	call	_vpaes_schedule_mangle
    311 	call	_vpaes_schedule_192_smear
    312 	jmp	.Loop_schedule_192
    313 
    314 
    315 
    316 
    317 
    318 
    319 
    320 
    321 
    322 
    323 
    324 .align	16
    325 .Lschedule_256:
    326 	movdqu	16(%rdi),%xmm0
    327 	call	_vpaes_schedule_transform
    328 	movl	$7,%esi
    329 
    330 .Loop_schedule_256:
    331 	call	_vpaes_schedule_mangle
    332 	movdqa	%xmm0,%xmm6
    333 
    334 
    335 	call	_vpaes_schedule_round
    336 	decq	%rsi
    337 	jz	.Lschedule_mangle_last
    338 	call	_vpaes_schedule_mangle
    339 
    340 
    341 	pshufd	$0xFF,%xmm0,%xmm0
    342 	movdqa	%xmm7,%xmm5
    343 	movdqa	%xmm6,%xmm7
    344 	call	_vpaes_schedule_low_round
    345 	movdqa	%xmm5,%xmm7
    346 
    347 	jmp	.Loop_schedule_256
    348 
    349 
    350 
    351 
    352 
    353 
    354 
    355 
    356 
    357 
    358 
    359 
    360 .align	16
    361 .Lschedule_mangle_last:
    362 
    363 	leaq	.Lk_deskew(%rip),%r11
    364 	testq	%rcx,%rcx
    365 	jnz	.Lschedule_mangle_last_dec
    366 
    367 
    368 	movdqa	(%r8,%r10,1),%xmm1
    369 .byte	102,15,56,0,193
    370 	leaq	.Lk_opt(%rip),%r11
    371 	addq	$32,%rdx
    372 
    373 .Lschedule_mangle_last_dec:
    374 	addq	$-16,%rdx
    375 	pxor	.Lk_s63(%rip),%xmm0
    376 	call	_vpaes_schedule_transform
    377 	movdqu	%xmm0,(%rdx)
    378 
    379 
    380 	pxor	%xmm0,%xmm0
    381 	pxor	%xmm1,%xmm1
    382 	pxor	%xmm2,%xmm2
    383 	pxor	%xmm3,%xmm3
    384 	pxor	%xmm4,%xmm4
    385 	pxor	%xmm5,%xmm5
    386 	pxor	%xmm6,%xmm6
    387 	pxor	%xmm7,%xmm7
    388 	.byte	0xf3,0xc3
    389 .cfi_endproc
    390 .size	_vpaes_schedule_core,.-_vpaes_schedule_core
    391 
    392 
    393 
    394 
    395 
    396 
    397 
    398 
    399 
    400 
    401 
    402 
    403 
    404 
    405 
    406 .type	_vpaes_schedule_192_smear,@function
    407 .align	16
    408 _vpaes_schedule_192_smear:
    409 .cfi_startproc
    410 	pshufd	$0x80,%xmm6,%xmm1
    411 	pshufd	$0xFE,%xmm7,%xmm0
    412 	pxor	%xmm1,%xmm6
    413 	pxor	%xmm1,%xmm1
    414 	pxor	%xmm0,%xmm6
    415 	movdqa	%xmm6,%xmm0
    416 	movhlps	%xmm1,%xmm6
    417 	.byte	0xf3,0xc3
    418 .cfi_endproc
    419 .size	_vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
    420 
    421 
    422 
    423 
    424 
    425 
    426 
    427 
    428 
    429 
    430 
    431 
    432 
    433 
    434 
    435 
    436 
    437 
    438 
    439 .type	_vpaes_schedule_round,@function
    440 .align	16
    441 _vpaes_schedule_round:
    442 .cfi_startproc
    443 
    444 	pxor	%xmm1,%xmm1
    445 .byte	102,65,15,58,15,200,15
    446 .byte	102,69,15,58,15,192,15
    447 	pxor	%xmm1,%xmm7
    448 
    449 
    450 	pshufd	$0xFF,%xmm0,%xmm0
    451 .byte	102,15,58,15,192,1
    452 
    453 
    454 
    455 
    456 _vpaes_schedule_low_round:
    457 
    458 	movdqa	%xmm7,%xmm1
    459 	pslldq	$4,%xmm7
    460 	pxor	%xmm1,%xmm7
    461 	movdqa	%xmm7,%xmm1
    462 	pslldq	$8,%xmm7
    463 	pxor	%xmm1,%xmm7
    464 	pxor	.Lk_s63(%rip),%xmm7
    465 
    466 
    467 	movdqa	%xmm9,%xmm1
    468 	pandn	%xmm0,%xmm1
    469 	psrld	$4,%xmm1
    470 	pand	%xmm9,%xmm0
    471 	movdqa	%xmm11,%xmm2
    472 .byte	102,15,56,0,208
    473 	pxor	%xmm1,%xmm0
    474 	movdqa	%xmm10,%xmm3
    475 .byte	102,15,56,0,217
    476 	pxor	%xmm2,%xmm3
    477 	movdqa	%xmm10,%xmm4
    478 .byte	102,15,56,0,224
    479 	pxor	%xmm2,%xmm4
    480 	movdqa	%xmm10,%xmm2
    481 .byte	102,15,56,0,211
    482 	pxor	%xmm0,%xmm2
    483 	movdqa	%xmm10,%xmm3
    484 .byte	102,15,56,0,220
    485 	pxor	%xmm1,%xmm3
    486 	movdqa	%xmm13,%xmm4
    487 .byte	102,15,56,0,226
    488 	movdqa	%xmm12,%xmm0
    489 .byte	102,15,56,0,195
    490 	pxor	%xmm4,%xmm0
    491 
    492 
    493 	pxor	%xmm7,%xmm0
    494 	movdqa	%xmm0,%xmm7
    495 	.byte	0xf3,0xc3
    496 .cfi_endproc
    497 .size	_vpaes_schedule_round,.-_vpaes_schedule_round
    498 
    499 
    500 
    501 
    502 
    503 
    504 
    505 
    506 
    507 
    508 .type	_vpaes_schedule_transform,@function
    509 .align	16
    510 _vpaes_schedule_transform:
    511 .cfi_startproc
    512 	movdqa	%xmm9,%xmm1
    513 	pandn	%xmm0,%xmm1
    514 	psrld	$4,%xmm1
    515 	pand	%xmm9,%xmm0
    516 	movdqa	(%r11),%xmm2
    517 .byte	102,15,56,0,208
    518 	movdqa	16(%r11),%xmm0
    519 .byte	102,15,56,0,193
    520 	pxor	%xmm2,%xmm0
    521 	.byte	0xf3,0xc3
    522 .cfi_endproc
    523 .size	_vpaes_schedule_transform,.-_vpaes_schedule_transform
    524 
    525 
    526 
    527 
    528 
    529 
    530 
    531 
    532 
    533 
    534 
    535 
    536 
    537 
    538 
    539 
    540 
    541 
    542 
    543 
    544 
    545 
    546 
    547 
    548 .type	_vpaes_schedule_mangle,@function
    549 .align	16
    550 _vpaes_schedule_mangle:
    551 .cfi_startproc
    552 	movdqa	%xmm0,%xmm4
    553 	movdqa	.Lk_mc_forward(%rip),%xmm5
    554 	testq	%rcx,%rcx
    555 	jnz	.Lschedule_mangle_dec
    556 
    557 
    558 	addq	$16,%rdx
    559 	pxor	.Lk_s63(%rip),%xmm4
    560 .byte	102,15,56,0,229
    561 	movdqa	%xmm4,%xmm3
    562 .byte	102,15,56,0,229
    563 	pxor	%xmm4,%xmm3
    564 .byte	102,15,56,0,229
    565 	pxor	%xmm4,%xmm3
    566 
    567 	jmp	.Lschedule_mangle_both
    568 .align	16
    569 .Lschedule_mangle_dec:
    570 
    571 	leaq	.Lk_dksd(%rip),%r11
    572 	movdqa	%xmm9,%xmm1
    573 	pandn	%xmm4,%xmm1
    574 	psrld	$4,%xmm1
    575 	pand	%xmm9,%xmm4
    576 
    577 	movdqa	0(%r11),%xmm2
    578 .byte	102,15,56,0,212
    579 	movdqa	16(%r11),%xmm3
    580 .byte	102,15,56,0,217
    581 	pxor	%xmm2,%xmm3
    582 .byte	102,15,56,0,221
    583 
    584 	movdqa	32(%r11),%xmm2
    585 .byte	102,15,56,0,212
    586 	pxor	%xmm3,%xmm2
    587 	movdqa	48(%r11),%xmm3
    588 .byte	102,15,56,0,217
    589 	pxor	%xmm2,%xmm3
    590 .byte	102,15,56,0,221
    591 
    592 	movdqa	64(%r11),%xmm2
    593 .byte	102,15,56,0,212
    594 	pxor	%xmm3,%xmm2
    595 	movdqa	80(%r11),%xmm3
    596 .byte	102,15,56,0,217
    597 	pxor	%xmm2,%xmm3
    598 .byte	102,15,56,0,221
    599 
    600 	movdqa	96(%r11),%xmm2
    601 .byte	102,15,56,0,212
    602 	pxor	%xmm3,%xmm2
    603 	movdqa	112(%r11),%xmm3
    604 .byte	102,15,56,0,217
    605 	pxor	%xmm2,%xmm3
    606 
    607 	addq	$-16,%rdx
    608 
    609 .Lschedule_mangle_both:
    610 	movdqa	(%r8,%r10,1),%xmm1
    611 .byte	102,15,56,0,217
    612 	addq	$-16,%r8
    613 	andq	$0x30,%r8
    614 	movdqu	%xmm3,(%rdx)
    615 	.byte	0xf3,0xc3
    616 .cfi_endproc
    617 .size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle
    618 
    619 
    620 
    621 
    622 .globl	vpaes_set_encrypt_key
    623 .type	vpaes_set_encrypt_key,@function
    624 .align	16
    625 vpaes_set_encrypt_key:
    626 .cfi_startproc
    627 	movl	%esi,%eax
    628 	shrl	$5,%eax
    629 	addl	$5,%eax
    630 	movl	%eax,240(%rdx)
    631 
    632 	movl	$0,%ecx
    633 	movl	$0x30,%r8d
    634 	call	_vpaes_schedule_core
    635 	xorl	%eax,%eax
    636 	.byte	0xf3,0xc3
    637 .cfi_endproc
    638 .size	vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
    639 
    640 .globl	vpaes_set_decrypt_key
    641 .type	vpaes_set_decrypt_key,@function
    642 .align	16
    643 vpaes_set_decrypt_key:
    644 .cfi_startproc
    645 	movl	%esi,%eax
    646 	shrl	$5,%eax
    647 	addl	$5,%eax
    648 	movl	%eax,240(%rdx)
    649 	shll	$4,%eax
    650 	leaq	16(%rdx,%rax,1),%rdx
    651 
    652 	movl	$1,%ecx
    653 	movl	%esi,%r8d
    654 	shrl	$1,%r8d
    655 	andl	$32,%r8d
    656 	xorl	$32,%r8d
    657 	call	_vpaes_schedule_core
    658 	xorl	%eax,%eax
    659 	.byte	0xf3,0xc3
    660 .cfi_endproc
    661 .size	vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
    662 
    663 .globl	vpaes_encrypt
    664 .type	vpaes_encrypt,@function
    665 .align	16
    666 vpaes_encrypt:
    667 .cfi_startproc
    668 	movdqu	(%rdi),%xmm0
    669 	call	_vpaes_preheat
    670 	call	_vpaes_encrypt_core
    671 	movdqu	%xmm0,(%rsi)
    672 	.byte	0xf3,0xc3
    673 .cfi_endproc
    674 .size	vpaes_encrypt,.-vpaes_encrypt
    675 
    676 .globl	vpaes_decrypt
    677 .type	vpaes_decrypt,@function
    678 .align	16
    679 vpaes_decrypt:
    680 .cfi_startproc
    681 	movdqu	(%rdi),%xmm0
    682 	call	_vpaes_preheat
    683 	call	_vpaes_decrypt_core
    684 	movdqu	%xmm0,(%rsi)
    685 	.byte	0xf3,0xc3
    686 .cfi_endproc
    687 .size	vpaes_decrypt,.-vpaes_decrypt
    688 .globl	vpaes_cbc_encrypt
    689 .type	vpaes_cbc_encrypt,@function
    690 .align	16
    691 vpaes_cbc_encrypt:
    692 .cfi_startproc
    693 	xchgq	%rcx,%rdx
    694 	subq	$16,%rcx
    695 	jc	.Lcbc_abort
    696 	movdqu	(%r8),%xmm6
    697 	subq	%rdi,%rsi
    698 	call	_vpaes_preheat
    699 	cmpl	$0,%r9d
    700 	je	.Lcbc_dec_loop
    701 	jmp	.Lcbc_enc_loop
    702 .align	16
    703 .Lcbc_enc_loop:
    704 	movdqu	(%rdi),%xmm0
    705 	pxor	%xmm6,%xmm0
    706 	call	_vpaes_encrypt_core
    707 	movdqa	%xmm0,%xmm6
    708 	movdqu	%xmm0,(%rsi,%rdi,1)
    709 	leaq	16(%rdi),%rdi
    710 	subq	$16,%rcx
    711 	jnc	.Lcbc_enc_loop
    712 	jmp	.Lcbc_done
    713 .align	16
    714 .Lcbc_dec_loop:
    715 	movdqu	(%rdi),%xmm0
    716 	movdqa	%xmm0,%xmm7
    717 	call	_vpaes_decrypt_core
    718 	pxor	%xmm6,%xmm0
    719 	movdqa	%xmm7,%xmm6
    720 	movdqu	%xmm0,(%rsi,%rdi,1)
    721 	leaq	16(%rdi),%rdi
    722 	subq	$16,%rcx
    723 	jnc	.Lcbc_dec_loop
    724 .Lcbc_done:
    725 	movdqu	%xmm6,(%r8)
    726 .Lcbc_abort:
    727 	.byte	0xf3,0xc3
    728 .cfi_endproc
    729 .size	vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
    730 
    731 
    732 
    733 
    734 
    735 
    736 .type	_vpaes_preheat,@function
    737 .align	16
    738 _vpaes_preheat:
    739 .cfi_startproc
    740 	leaq	.Lk_s0F(%rip),%r10
    741 	movdqa	-32(%r10),%xmm10
    742 	movdqa	-16(%r10),%xmm11
    743 	movdqa	0(%r10),%xmm9
    744 	movdqa	48(%r10),%xmm13
    745 	movdqa	64(%r10),%xmm12
    746 	movdqa	80(%r10),%xmm15
    747 	movdqa	96(%r10),%xmm14
    748 	.byte	0xf3,0xc3
    749 .cfi_endproc
    750 .size	_vpaes_preheat,.-_vpaes_preheat
    751 
    752 
    753 
    754 
    755 
    756 .type	_vpaes_consts,@object
    757 .align	64
    758 _vpaes_consts:
    759 .Lk_inv:
    760 .quad	0x0E05060F0D080180, 0x040703090A0B0C02
    761 .quad	0x01040A060F0B0780, 0x030D0E0C02050809
    762 
    763 .Lk_s0F:
    764 .quad	0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
    765 
    766 .Lk_ipt:
    767 .quad	0xC2B2E8985A2A7000, 0xCABAE09052227808
    768 .quad	0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
    769 
    770 .Lk_sb1:
    771 .quad	0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
    772 .quad	0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
    773 .Lk_sb2:
    774 .quad	0xE27A93C60B712400, 0x5EB7E955BC982FCD
    775 .quad	0x69EB88400AE12900, 0xC2A163C8AB82234A
    776 .Lk_sbo:
    777 .quad	0xD0D26D176FBDC700, 0x15AABF7AC502A878
    778 .quad	0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
    779 
    780 .Lk_mc_forward:
    781 .quad	0x0407060500030201, 0x0C0F0E0D080B0A09
    782 .quad	0x080B0A0904070605, 0x000302010C0F0E0D
    783 .quad	0x0C0F0E0D080B0A09, 0x0407060500030201
    784 .quad	0x000302010C0F0E0D, 0x080B0A0904070605
    785 
    786 .Lk_mc_backward:
    787 .quad	0x0605040702010003, 0x0E0D0C0F0A09080B
    788 .quad	0x020100030E0D0C0F, 0x0A09080B06050407
    789 .quad	0x0E0D0C0F0A09080B, 0x0605040702010003
    790 .quad	0x0A09080B06050407, 0x020100030E0D0C0F
    791 
    792 .Lk_sr:
    793 .quad	0x0706050403020100, 0x0F0E0D0C0B0A0908
    794 .quad	0x030E09040F0A0500, 0x0B06010C07020D08
    795 .quad	0x0F060D040B020900, 0x070E050C030A0108
    796 .quad	0x0B0E0104070A0D00, 0x0306090C0F020508
    797 
    798 .Lk_rcon:
    799 .quad	0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
    800 
    801 .Lk_s63:
    802 .quad	0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
    803 
    804 .Lk_opt:
    805 .quad	0xFF9F4929D6B66000, 0xF7974121DEBE6808
    806 .quad	0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
    807 
    808 .Lk_deskew:
    809 .quad	0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
    810 .quad	0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
    811 
    812 
    813 
    814 
    815 
    816 .Lk_dksd:
    817 .quad	0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
    818 .quad	0x41C277F4B5368300, 0x5FDC69EAAB289D1E
    819 .Lk_dksb:
    820 .quad	0x9A4FCA1F8550D500, 0x03D653861CC94C99
    821 .quad	0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
    822 .Lk_dkse:
    823 .quad	0xD5031CCA1FC9D600, 0x53859A4C994F5086
    824 .quad	0xA23196054FDC7BE8, 0xCD5EF96A20B31487
    825 .Lk_dks9:
    826 .quad	0xB6116FC87ED9A700, 0x4AED933482255BFC
    827 .quad	0x4576516227143300, 0x8BB89FACE9DAFDCE
    828 
    829 
    830 
    831 
    832 
    833 .Lk_dipt:
    834 .quad	0x0F505B040B545F00, 0x154A411E114E451A
    835 .quad	0x86E383E660056500, 0x12771772F491F194
    836 
    837 .Lk_dsb9:
    838 .quad	0x851C03539A86D600, 0xCAD51F504F994CC9
    839 .quad	0xC03B1789ECD74900, 0x725E2C9EB2FBA565
    840 .Lk_dsbd:
    841 .quad	0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
    842 .quad	0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
    843 .Lk_dsbb:
    844 .quad	0xD022649296B44200, 0x602646F6B0F2D404
    845 .quad	0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
    846 .Lk_dsbe:
    847 .quad	0x46F2929626D4D000, 0x2242600464B4F6B0
    848 .quad	0x0C55A6CDFFAAC100, 0x9467F36B98593E32
    849 .Lk_dsbo:
    850 .quad	0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
    851 .quad	0x12D7560F93441D00, 0xCA4B8159D8C58E9C
    852 .byte	86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
    853 .align	64
    854 .size	_vpaes_consts,.-_vpaes_consts
    855