1 # WARNING: do not edit!
2 # Generated from openssl/crypto/aes/asm/vpaes-x86_64.pl
4 # Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
6 # Licensed under the OpenSSL license (the "License"). You may not use
7 # this file except in compliance with the License. You can obtain a copy
8 # in the file LICENSE in the source distribution or at
9 # https://www.openssl.org/source/license.html
28 .type _vpaes_encrypt_core,@function
36 movdqa .Lk_ipt(%rip),%xmm2
42 movdqa .Lk_ipt+16(%rip),%xmm0
47 leaq .Lk_mc_backward(%rip),%r10
60 movdqa -64(%r11,%r10,1),%xmm1
62 movdqa (%r11,%r10,1),%xmm4
103 movdqa -96(%r10),%xmm4
104 movdqa -80(%r10),%xmm0
105 .byte 102,15,56,0,226
107 .byte 102,15,56,0,195
108 movdqa 64(%r11,%r10,1),%xmm1
110 .byte 102,15,56,0,193
113 .size _vpaes_encrypt_core,.-_vpaes_encrypt_core
120 .type _vpaes_decrypt_core,@function
127 movdqa .Lk_dipt(%rip),%xmm2
134 .byte 102,15,56,0,208
135 movdqa .Lk_dipt+16(%rip),%xmm0
137 leaq .Lk_dsbd(%rip),%r10
138 .byte 102,15,56,0,193
141 movdqa .Lk_mc_forward+48(%rip),%xmm5
152 movdqa -32(%r10),%xmm4
153 movdqa -16(%r10),%xmm1
154 .byte 102,15,56,0,226
155 .byte 102,15,56,0,203
159 movdqa 16(%r10),%xmm1
161 .byte 102,15,56,0,226
162 .byte 102,15,56,0,197
163 .byte 102,15,56,0,203
165 movdqa 32(%r10),%xmm4
167 movdqa 48(%r10),%xmm1
169 .byte 102,15,56,0,226
170 .byte 102,15,56,0,197
171 .byte 102,15,56,0,203
173 movdqa 64(%r10),%xmm4
175 movdqa 80(%r10),%xmm1
177 .byte 102,15,56,0,226
178 .byte 102,15,56,0,197
179 .byte 102,15,56,0,203
182 .byte 102,15,58,15,237,12
193 .byte 102,15,56,0,208
196 .byte 102,15,56,0,217
199 .byte 102,15,56,0,224
202 .byte 102,15,56,0,211
205 .byte 102,15,56,0,220
211 movdqa 96(%r10),%xmm4
212 .byte 102,15,56,0,226
214 movdqa 112(%r10),%xmm0
215 movdqa -352(%r11),%xmm2
216 .byte 102,15,56,0,195
218 .byte 102,15,56,0,194
221 .size _vpaes_decrypt_core,.-_vpaes_decrypt_core
228 .type _vpaes_schedule_core,@function
230 _vpaes_schedule_core:
238 movdqa .Lk_rcon(%rip),%xmm8
243 leaq .Lk_ipt(%rip),%r11
244 call _vpaes_schedule_transform
247 leaq .Lk_sr(%rip),%r10
249 jnz .Lschedule_am_decrypting
255 .Lschedule_am_decrypting:
257 movdqa (%r8,%r10,1),%xmm1
258 .byte 102,15,56,0,217
280 call _vpaes_schedule_round
282 jz .Lschedule_mangle_last
283 call _vpaes_schedule_mangle
284 jmp .Loop_schedule_128
304 call _vpaes_schedule_transform
311 call _vpaes_schedule_round
312 .byte 102,15,58,15,198,8
313 call _vpaes_schedule_mangle
314 call _vpaes_schedule_192_smear
315 call _vpaes_schedule_mangle
316 call _vpaes_schedule_round
318 jz .Lschedule_mangle_last
319 call _vpaes_schedule_mangle
320 call _vpaes_schedule_192_smear
321 jmp .Loop_schedule_192
335 movdqu 16(%rdi),%xmm0
336 call _vpaes_schedule_transform
340 call _vpaes_schedule_mangle
344 call _vpaes_schedule_round
346 jz .Lschedule_mangle_last
347 call _vpaes_schedule_mangle
350 pshufd $0xFF,%xmm0,%xmm0
353 call _vpaes_schedule_low_round
356 jmp .Loop_schedule_256
370 .Lschedule_mangle_last:
372 leaq .Lk_deskew(%rip),%r11
374 jnz .Lschedule_mangle_last_dec
377 movdqa (%r8,%r10,1),%xmm1
378 .byte 102,15,56,0,193
379 leaq .Lk_opt(%rip),%r11
382 .Lschedule_mangle_last_dec:
384 pxor .Lk_s63(%rip),%xmm0
385 call _vpaes_schedule_transform
399 .size _vpaes_schedule_core,.-_vpaes_schedule_core
415 .type _vpaes_schedule_192_smear,@function
417 _vpaes_schedule_192_smear:
419 pshufd $0x80,%xmm6,%xmm1
420 pshufd $0xFE,%xmm7,%xmm0
428 .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
448 .type _vpaes_schedule_round,@function
450 _vpaes_schedule_round:
454 .byte 102,65,15,58,15,200,15
455 .byte 102,69,15,58,15,192,15
459 pshufd $0xFF,%xmm0,%xmm0
460 .byte 102,15,58,15,192,1
465 _vpaes_schedule_low_round:
473 pxor .Lk_s63(%rip),%xmm7
481 .byte 102,15,56,0,208
484 .byte 102,15,56,0,217
487 .byte 102,15,56,0,224
490 .byte 102,15,56,0,211
493 .byte 102,15,56,0,220
496 .byte 102,15,56,0,226
498 .byte 102,15,56,0,195
506 .size _vpaes_schedule_round,.-_vpaes_schedule_round
517 .type _vpaes_schedule_transform,@function
519 _vpaes_schedule_transform:
526 .byte 102,15,56,0,208
527 movdqa 16(%r11),%xmm0
528 .byte 102,15,56,0,193
532 .size _vpaes_schedule_transform,.-_vpaes_schedule_transform
557 .type _vpaes_schedule_mangle,@function
559 _vpaes_schedule_mangle:
562 movdqa .Lk_mc_forward(%rip),%xmm5
564 jnz .Lschedule_mangle_dec
568 pxor .Lk_s63(%rip),%xmm4
569 .byte 102,15,56,0,229
571 .byte 102,15,56,0,229
573 .byte 102,15,56,0,229
576 jmp .Lschedule_mangle_both
578 .Lschedule_mangle_dec:
580 leaq .Lk_dksd(%rip),%r11
587 .byte 102,15,56,0,212
588 movdqa 16(%r11),%xmm3
589 .byte 102,15,56,0,217
591 .byte 102,15,56,0,221
593 movdqa 32(%r11),%xmm2
594 .byte 102,15,56,0,212
596 movdqa 48(%r11),%xmm3
597 .byte 102,15,56,0,217
599 .byte 102,15,56,0,221
601 movdqa 64(%r11),%xmm2
602 .byte 102,15,56,0,212
604 movdqa 80(%r11),%xmm3
605 .byte 102,15,56,0,217
607 .byte 102,15,56,0,221
609 movdqa 96(%r11),%xmm2
610 .byte 102,15,56,0,212
612 movdqa 112(%r11),%xmm3
613 .byte 102,15,56,0,217
618 .Lschedule_mangle_both:
619 movdqa (%r8,%r10,1),%xmm1
620 .byte 102,15,56,0,217
626 .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
631 .globl vpaes_set_encrypt_key
632 .type vpaes_set_encrypt_key,@function
634 vpaes_set_encrypt_key:
643 call _vpaes_schedule_core
647 .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
649 .globl vpaes_set_decrypt_key
650 .type vpaes_set_decrypt_key,@function
652 vpaes_set_decrypt_key:
659 leaq 16(%rdx,%rax,1),%rdx
666 call _vpaes_schedule_core
670 .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
673 .type vpaes_encrypt,@function
679 call _vpaes_encrypt_core
683 .size vpaes_encrypt,.-vpaes_encrypt
686 .type vpaes_decrypt,@function
692 call _vpaes_decrypt_core
696 .size vpaes_decrypt,.-vpaes_decrypt
697 .globl vpaes_cbc_encrypt
698 .type vpaes_cbc_encrypt,@function
715 call _vpaes_encrypt_core
717 movdqu %xmm0,(%rsi,%rdi,1)
726 call _vpaes_decrypt_core
729 movdqu %xmm0,(%rsi,%rdi,1)
738 .size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
745 .type _vpaes_preheat,@function
749 leaq .Lk_s0F(%rip),%r10
750 movdqa -32(%r10),%xmm10
751 movdqa -16(%r10),%xmm11
753 movdqa 48(%r10),%xmm13
754 movdqa 64(%r10),%xmm12
755 movdqa 80(%r10),%xmm15
756 movdqa 96(%r10),%xmm14
759 .size _vpaes_preheat,.-_vpaes_preheat
765 .type _vpaes_consts,@object
769 .quad 0x0E05060F0D080180, 0x040703090A0B0C02
770 .quad 0x01040A060F0B0780, 0x030D0E0C02050809
773 .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
776 .quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
777 .quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
780 .quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
781 .quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
783 .quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
784 .quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
786 .quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
787 .quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
790 .quad 0x0407060500030201, 0x0C0F0E0D080B0A09
791 .quad 0x080B0A0904070605, 0x000302010C0F0E0D
792 .quad 0x0C0F0E0D080B0A09, 0x0407060500030201
793 .quad 0x000302010C0F0E0D, 0x080B0A0904070605
796 .quad 0x0605040702010003, 0x0E0D0C0F0A09080B
797 .quad 0x020100030E0D0C0F, 0x0A09080B06050407
798 .quad 0x0E0D0C0F0A09080B, 0x0605040702010003
799 .quad 0x0A09080B06050407, 0x020100030E0D0C0F
802 .quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
803 .quad 0x030E09040F0A0500, 0x0B06010C07020D08
804 .quad 0x0F060D040B020900, 0x070E050C030A0108
805 .quad 0x0B0E0104070A0D00, 0x0306090C0F020508
808 .quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
811 .quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
814 .quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
815 .quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
818 .quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
819 .quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
826 .quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
827 .quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
829 .quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
830 .quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
832 .quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
833 .quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
835 .quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
836 .quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
843 .quad 0x0F505B040B545F00, 0x154A411E114E451A
844 .quad 0x86E383E660056500, 0x12771772F491F194
847 .quad 0x851C03539A86D600, 0xCAD51F504F994CC9
848 .quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
850 .quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
851 .quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
853 .quad 0xD022649296B44200, 0x602646F6B0F2D404
854 .quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
856 .quad 0x46F2929626D4D000, 0x2242600464B4F6B0
857 .quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
859 .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
860 .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
861 .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
863 .size _vpaes_consts,.-_vpaes_consts