Skip to content

Commit 85f3fb9

Browse files
authored
Merge pull request #7409 from SparkiDev/asm_x64_rip_fix
SHA-256 x64 ASM - fix use of %rip
2 parents fe671f7 + d2b9a36 commit 85f3fb9

3 files changed

Lines changed: 319 additions & 259 deletions

File tree

wolfcrypt/src/chacha_asm.S

Lines changed: 75 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* chacha_asm.S */
22
/*
3-
* Copyright (C) 2006-2023 wolfSSL Inc.
3+
* Copyright (C) 2006-2024 wolfSSL Inc.
44
*
55
* This file is part of wolfSSL.
66
*
@@ -536,9 +536,19 @@ chacha_encrypt_avx1:
536536
.p2align 4
537537
_chacha_encrypt_avx1:
538538
#endif /* __APPLE__ */
539+
pushq %r12
540+
pushq %r13
541+
pushq %r14
542+
pushq %r15
539543
subq $0x190, %rsp
540544
movq %rsp, %r9
541545
leaq 256(%rsp), %r10
546+
leaq L_chacha20_avx1_rotl8(%rip), %r12
547+
leaq L_chacha20_avx1_rotl16(%rip), %r13
548+
leaq L_chacha20_avx1_add(%rip), %r14
549+
leaq L_chacha20_avx1_four(%rip), %r15
550+
addq $15, %r9
551+
addq $15, %r10
542552
andq $-16, %r9
543553
andq $-16, %r10
544554
movl %ecx, %eax
@@ -560,7 +570,7 @@ _chacha_encrypt_avx1:
560570
vpshufd $0x00, 52(%rdi), %xmm13
561571
vpshufd $0x00, 56(%rdi), %xmm14
562572
vpshufd $0x00, 60(%rdi), %xmm15
563-
vpaddd L_chacha20_avx1_add(%rip), %xmm12, %xmm12
573+
vpaddd (%r14), %xmm12, %xmm12
564574
vmovdqa %xmm0, (%r9)
565575
vmovdqa %xmm1, 16(%r9)
566576
vmovdqa %xmm2, 32(%r9)
@@ -584,22 +594,22 @@ L_chacha20_avx1_loop128:
584594
vpaddd %xmm4, %xmm0, %xmm0
585595
vpxor %xmm0, %xmm12, %xmm12
586596
vmovdqa 48(%r10), %xmm11
587-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm12, %xmm12
597+
vpshufb (%r13), %xmm12, %xmm12
588598
vpaddd %xmm12, %xmm8, %xmm8
589599
vpxor %xmm8, %xmm4, %xmm4
590600
vpaddd %xmm5, %xmm1, %xmm1
591601
vpxor %xmm1, %xmm13, %xmm13
592-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm13, %xmm13
602+
vpshufb (%r13), %xmm13, %xmm13
593603
vpaddd %xmm13, %xmm9, %xmm9
594604
vpxor %xmm9, %xmm5, %xmm5
595605
vpaddd %xmm6, %xmm2, %xmm2
596606
vpxor %xmm2, %xmm14, %xmm14
597-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm14, %xmm14
607+
vpshufb (%r13), %xmm14, %xmm14
598608
vpaddd %xmm14, %xmm10, %xmm10
599609
vpxor %xmm10, %xmm6, %xmm6
600610
vpaddd %xmm7, %xmm3, %xmm3
601611
vpxor %xmm3, %xmm15, %xmm15
602-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm15, %xmm15
612+
vpshufb (%r13), %xmm15, %xmm15
603613
vpaddd %xmm15, %xmm11, %xmm11
604614
vpxor %xmm11, %xmm7, %xmm7
605615
vmovdqa %xmm11, 48(%r10)
@@ -618,22 +628,22 @@ L_chacha20_avx1_loop128:
618628
vpaddd %xmm4, %xmm0, %xmm0
619629
vpxor %xmm0, %xmm12, %xmm12
620630
vmovdqa 48(%r10), %xmm11
621-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm12, %xmm12
631+
vpshufb (%r12), %xmm12, %xmm12
622632
vpaddd %xmm12, %xmm8, %xmm8
623633
vpxor %xmm8, %xmm4, %xmm4
624634
vpaddd %xmm5, %xmm1, %xmm1
625635
vpxor %xmm1, %xmm13, %xmm13
626-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm13, %xmm13
636+
vpshufb (%r12), %xmm13, %xmm13
627637
vpaddd %xmm13, %xmm9, %xmm9
628638
vpxor %xmm9, %xmm5, %xmm5
629639
vpaddd %xmm6, %xmm2, %xmm2
630640
vpxor %xmm2, %xmm14, %xmm14
631-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm14, %xmm14
641+
vpshufb (%r12), %xmm14, %xmm14
632642
vpaddd %xmm14, %xmm10, %xmm10
633643
vpxor %xmm10, %xmm6, %xmm6
634644
vpaddd %xmm7, %xmm3, %xmm3
635645
vpxor %xmm3, %xmm15, %xmm15
636-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm15, %xmm15
646+
vpshufb (%r12), %xmm15, %xmm15
637647
vpaddd %xmm15, %xmm11, %xmm11
638648
vpxor %xmm11, %xmm7, %xmm7
639649
vmovdqa %xmm11, 48(%r10)
@@ -652,22 +662,22 @@ L_chacha20_avx1_loop128:
652662
vpaddd %xmm5, %xmm0, %xmm0
653663
vpxor %xmm0, %xmm15, %xmm15
654664
vmovdqa 48(%r10), %xmm11
655-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm15, %xmm15
665+
vpshufb (%r13), %xmm15, %xmm15
656666
vpaddd %xmm15, %xmm10, %xmm10
657667
vpxor %xmm10, %xmm5, %xmm5
658668
vpaddd %xmm6, %xmm1, %xmm1
659669
vpxor %xmm1, %xmm12, %xmm12
660-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm12, %xmm12
670+
vpshufb (%r13), %xmm12, %xmm12
661671
vpaddd %xmm12, %xmm11, %xmm11
662672
vpxor %xmm11, %xmm6, %xmm6
663673
vpaddd %xmm7, %xmm2, %xmm2
664674
vpxor %xmm2, %xmm13, %xmm13
665-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm13, %xmm13
675+
vpshufb (%r13), %xmm13, %xmm13
666676
vpaddd %xmm13, %xmm8, %xmm8
667677
vpxor %xmm8, %xmm7, %xmm7
668678
vpaddd %xmm4, %xmm3, %xmm3
669679
vpxor %xmm3, %xmm14, %xmm14
670-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm14, %xmm14
680+
vpshufb (%r13), %xmm14, %xmm14
671681
vpaddd %xmm14, %xmm9, %xmm9
672682
vpxor %xmm9, %xmm4, %xmm4
673683
vmovdqa %xmm11, 48(%r10)
@@ -686,22 +696,22 @@ L_chacha20_avx1_loop128:
686696
vpaddd %xmm5, %xmm0, %xmm0
687697
vpxor %xmm0, %xmm15, %xmm15
688698
vmovdqa 48(%r10), %xmm11
689-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm15, %xmm15
699+
vpshufb (%r12), %xmm15, %xmm15
690700
vpaddd %xmm15, %xmm10, %xmm10
691701
vpxor %xmm10, %xmm5, %xmm5
692702
vpaddd %xmm6, %xmm1, %xmm1
693703
vpxor %xmm1, %xmm12, %xmm12
694-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm12, %xmm12
704+
vpshufb (%r12), %xmm12, %xmm12
695705
vpaddd %xmm12, %xmm11, %xmm11
696706
vpxor %xmm11, %xmm6, %xmm6
697707
vpaddd %xmm7, %xmm2, %xmm2
698708
vpxor %xmm2, %xmm13, %xmm13
699-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm13, %xmm13
709+
vpshufb (%r12), %xmm13, %xmm13
700710
vpaddd %xmm13, %xmm8, %xmm8
701711
vpxor %xmm8, %xmm7, %xmm7
702712
vpaddd %xmm4, %xmm3, %xmm3
703713
vpxor %xmm3, %xmm14, %xmm14
704-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm14, %xmm14
714+
vpshufb (%r12), %xmm14, %xmm14
705715
vpaddd %xmm14, %xmm9, %xmm9
706716
vpxor %xmm9, %xmm4, %xmm4
707717
vmovdqa %xmm11, 48(%r10)
@@ -835,7 +845,7 @@ L_chacha20_avx1_loop128:
835845
vmovdqa 192(%r9), %xmm12
836846
addq $0x100, %rsi
837847
addq $0x100, %rdx
838-
vpaddd L_chacha20_avx1_four(%rip), %xmm12, %xmm12
848+
vpaddd (%r15), %xmm12, %xmm12
839849
subl $0x100, %ecx
840850
vmovdqa %xmm12, 192(%r9)
841851
cmpl $0x100, %ecx
@@ -876,15 +886,15 @@ L_chacha20_avx1_block_start:
876886
L_chacha20_avx1_block_crypt_start:
877887
vpaddd %xmm1, %xmm0, %xmm0
878888
vpxor %xmm0, %xmm3, %xmm3
879-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3
889+
vpshufb (%r13), %xmm3, %xmm3
880890
vpaddd %xmm3, %xmm2, %xmm2
881891
vpxor %xmm2, %xmm1, %xmm1
882892
vpsrld $20, %xmm1, %xmm4
883893
vpslld $12, %xmm1, %xmm1
884894
vpxor %xmm4, %xmm1, %xmm1
885895
vpaddd %xmm1, %xmm0, %xmm0
886896
vpxor %xmm0, %xmm3, %xmm3
887-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3
897+
vpshufb (%r12), %xmm3, %xmm3
888898
vpaddd %xmm3, %xmm2, %xmm2
889899
vpxor %xmm2, %xmm1, %xmm1
890900
vpsrld $25, %xmm1, %xmm4
@@ -895,15 +905,15 @@ L_chacha20_avx1_block_crypt_start:
895905
vpshufd $0x93, %xmm3, %xmm3
896906
vpaddd %xmm1, %xmm0, %xmm0
897907
vpxor %xmm0, %xmm3, %xmm3
898-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3
908+
vpshufb (%r13), %xmm3, %xmm3
899909
vpaddd %xmm3, %xmm2, %xmm2
900910
vpxor %xmm2, %xmm1, %xmm1
901911
vpsrld $20, %xmm1, %xmm4
902912
vpslld $12, %xmm1, %xmm1
903913
vpxor %xmm4, %xmm1, %xmm1
904914
vpaddd %xmm1, %xmm0, %xmm0
905915
vpxor %xmm0, %xmm3, %xmm3
906-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3
916+
vpshufb (%r12), %xmm3, %xmm3
907917
vpaddd %xmm3, %xmm2, %xmm2
908918
vpxor %xmm2, %xmm1, %xmm1
909919
vpsrld $25, %xmm1, %xmm4
@@ -952,15 +962,15 @@ L_chacha20_avx1_block_done:
952962
L_chacha20_avx1_partial_crypt_start:
953963
vpaddd %xmm1, %xmm0, %xmm0
954964
vpxor %xmm0, %xmm3, %xmm3
955-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3
965+
vpshufb (%r13), %xmm3, %xmm3
956966
vpaddd %xmm3, %xmm2, %xmm2
957967
vpxor %xmm2, %xmm1, %xmm1
958968
vpsrld $20, %xmm1, %xmm4
959969
vpslld $12, %xmm1, %xmm1
960970
vpxor %xmm4, %xmm1, %xmm1
961971
vpaddd %xmm1, %xmm0, %xmm0
962972
vpxor %xmm0, %xmm3, %xmm3
963-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3
973+
vpshufb (%r12), %xmm3, %xmm3
964974
vpaddd %xmm3, %xmm2, %xmm2
965975
vpxor %xmm2, %xmm1, %xmm1
966976
vpsrld $25, %xmm1, %xmm4
@@ -971,15 +981,15 @@ L_chacha20_avx1_partial_crypt_start:
971981
vpshufd $0x93, %xmm3, %xmm3
972982
vpaddd %xmm1, %xmm0, %xmm0
973983
vpxor %xmm0, %xmm3, %xmm3
974-
vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3
984+
vpshufb (%r13), %xmm3, %xmm3
975985
vpaddd %xmm3, %xmm2, %xmm2
976986
vpxor %xmm2, %xmm1, %xmm1
977987
vpsrld $20, %xmm1, %xmm4
978988
vpslld $12, %xmm1, %xmm1
979989
vpxor %xmm4, %xmm1, %xmm1
980990
vpaddd %xmm1, %xmm0, %xmm0
981991
vpxor %xmm0, %xmm3, %xmm3
982-
vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3
992+
vpshufb (%r12), %xmm3, %xmm3
983993
vpaddd %xmm3, %xmm2, %xmm2
984994
vpxor %xmm2, %xmm1, %xmm1
985995
vpsrld $25, %xmm1, %xmm4
@@ -1023,7 +1033,12 @@ L_chacha20_avx1_partial_end64:
10231033
subl %r11d, %r8d
10241034
movl %r8d, 76(%rdi)
10251035
L_chacha20_avx1_partial_done:
1036+
vzeroupper
10261037
addq $0x190, %rsp
1038+
popq %r15
1039+
popq %r14
1040+
popq %r13
1041+
popq %r12
10271042
repz retq
10281043
#ifndef __APPLE__
10291044
.size chacha_encrypt_avx1,.-chacha_encrypt_avx1
@@ -1094,9 +1109,18 @@ chacha_encrypt_avx2:
10941109
.p2align 4
10951110
_chacha_encrypt_avx2:
10961111
#endif /* __APPLE__ */
1097-
subq $0x310, %rsp
1112+
pushq %r12
1113+
pushq %r13
1114+
pushq %r14
1115+
subq $0x320, %rsp
10981116
movq %rsp, %r9
1117+
leaq L_chacha20_avx2_rotl8(%rip), %r11
1118+
leaq L_chacha20_avx2_rotl16(%rip), %r12
1119+
leaq L_chacha20_avx2_add(%rip), %r13
1120+
leaq L_chacha20_avx2_eight(%rip), %r14
10991121
leaq 512(%rsp), %r10
1122+
addq $31, %r9
1123+
addq $31, %r10
11001124
andq $-32, %r9
11011125
andq $-32, %r10
11021126
movl %ecx, %eax
@@ -1118,7 +1142,7 @@ _chacha_encrypt_avx2:
11181142
vpbroadcastd 52(%rdi), %ymm13
11191143
vpbroadcastd 56(%rdi), %ymm14
11201144
vpbroadcastd 60(%rdi), %ymm15
1121-
vpaddd L_chacha20_avx2_add(%rip), %ymm12, %ymm12
1145+
vpaddd (%r13), %ymm12, %ymm12
11221146
vmovdqa %ymm0, (%r9)
11231147
vmovdqa %ymm1, 32(%r9)
11241148
vmovdqa %ymm2, 64(%r9)
@@ -1142,22 +1166,22 @@ L_chacha20_avx2_loop256:
11421166
vpaddd %ymm4, %ymm0, %ymm0
11431167
vpxor %ymm0, %ymm12, %ymm12
11441168
vmovdqa 96(%r10), %ymm11
1145-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm12, %ymm12
1169+
vpshufb (%r12), %ymm12, %ymm12
11461170
vpaddd %ymm12, %ymm8, %ymm8
11471171
vpxor %ymm8, %ymm4, %ymm4
11481172
vpaddd %ymm5, %ymm1, %ymm1
11491173
vpxor %ymm1, %ymm13, %ymm13
1150-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm13, %ymm13
1174+
vpshufb (%r12), %ymm13, %ymm13
11511175
vpaddd %ymm13, %ymm9, %ymm9
11521176
vpxor %ymm9, %ymm5, %ymm5
11531177
vpaddd %ymm6, %ymm2, %ymm2
11541178
vpxor %ymm2, %ymm14, %ymm14
1155-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm14, %ymm14
1179+
vpshufb (%r12), %ymm14, %ymm14
11561180
vpaddd %ymm14, %ymm10, %ymm10
11571181
vpxor %ymm10, %ymm6, %ymm6
11581182
vpaddd %ymm7, %ymm3, %ymm3
11591183
vpxor %ymm3, %ymm15, %ymm15
1160-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm15, %ymm15
1184+
vpshufb (%r12), %ymm15, %ymm15
11611185
vpaddd %ymm15, %ymm11, %ymm11
11621186
vpxor %ymm11, %ymm7, %ymm7
11631187
vmovdqa %ymm11, 96(%r10)
@@ -1176,22 +1200,22 @@ L_chacha20_avx2_loop256:
11761200
vpaddd %ymm4, %ymm0, %ymm0
11771201
vpxor %ymm0, %ymm12, %ymm12
11781202
vmovdqa 96(%r10), %ymm11
1179-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm12, %ymm12
1203+
vpshufb (%r11), %ymm12, %ymm12
11801204
vpaddd %ymm12, %ymm8, %ymm8
11811205
vpxor %ymm8, %ymm4, %ymm4
11821206
vpaddd %ymm5, %ymm1, %ymm1
11831207
vpxor %ymm1, %ymm13, %ymm13
1184-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm13, %ymm13
1208+
vpshufb (%r11), %ymm13, %ymm13
11851209
vpaddd %ymm13, %ymm9, %ymm9
11861210
vpxor %ymm9, %ymm5, %ymm5
11871211
vpaddd %ymm6, %ymm2, %ymm2
11881212
vpxor %ymm2, %ymm14, %ymm14
1189-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm14, %ymm14
1213+
vpshufb (%r11), %ymm14, %ymm14
11901214
vpaddd %ymm14, %ymm10, %ymm10
11911215
vpxor %ymm10, %ymm6, %ymm6
11921216
vpaddd %ymm7, %ymm3, %ymm3
11931217
vpxor %ymm3, %ymm15, %ymm15
1194-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm15, %ymm15
1218+
vpshufb (%r11), %ymm15, %ymm15
11951219
vpaddd %ymm15, %ymm11, %ymm11
11961220
vpxor %ymm11, %ymm7, %ymm7
11971221
vmovdqa %ymm11, 96(%r10)
@@ -1210,22 +1234,22 @@ L_chacha20_avx2_loop256:
12101234
vpaddd %ymm5, %ymm0, %ymm0
12111235
vpxor %ymm0, %ymm15, %ymm15
12121236
vmovdqa 96(%r10), %ymm11
1213-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm15, %ymm15
1237+
vpshufb (%r12), %ymm15, %ymm15
12141238
vpaddd %ymm15, %ymm10, %ymm10
12151239
vpxor %ymm10, %ymm5, %ymm5
12161240
vpaddd %ymm6, %ymm1, %ymm1
12171241
vpxor %ymm1, %ymm12, %ymm12
1218-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm12, %ymm12
1242+
vpshufb (%r12), %ymm12, %ymm12
12191243
vpaddd %ymm12, %ymm11, %ymm11
12201244
vpxor %ymm11, %ymm6, %ymm6
12211245
vpaddd %ymm7, %ymm2, %ymm2
12221246
vpxor %ymm2, %ymm13, %ymm13
1223-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm13, %ymm13
1247+
vpshufb (%r12), %ymm13, %ymm13
12241248
vpaddd %ymm13, %ymm8, %ymm8
12251249
vpxor %ymm8, %ymm7, %ymm7
12261250
vpaddd %ymm4, %ymm3, %ymm3
12271251
vpxor %ymm3, %ymm14, %ymm14
1228-
vpshufb L_chacha20_avx2_rotl16(%rip), %ymm14, %ymm14
1252+
vpshufb (%r12), %ymm14, %ymm14
12291253
vpaddd %ymm14, %ymm9, %ymm9
12301254
vpxor %ymm9, %ymm4, %ymm4
12311255
vmovdqa %ymm11, 96(%r10)
@@ -1244,22 +1268,22 @@ L_chacha20_avx2_loop256:
12441268
vpaddd %ymm5, %ymm0, %ymm0
12451269
vpxor %ymm0, %ymm15, %ymm15
12461270
vmovdqa 96(%r10), %ymm11
1247-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm15, %ymm15
1271+
vpshufb (%r11), %ymm15, %ymm15
12481272
vpaddd %ymm15, %ymm10, %ymm10
12491273
vpxor %ymm10, %ymm5, %ymm5
12501274
vpaddd %ymm6, %ymm1, %ymm1
12511275
vpxor %ymm1, %ymm12, %ymm12
1252-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm12, %ymm12
1276+
vpshufb (%r11), %ymm12, %ymm12
12531277
vpaddd %ymm12, %ymm11, %ymm11
12541278
vpxor %ymm11, %ymm6, %ymm6
12551279
vpaddd %ymm7, %ymm2, %ymm2
12561280
vpxor %ymm2, %ymm13, %ymm13
1257-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm13, %ymm13
1281+
vpshufb (%r11), %ymm13, %ymm13
12581282
vpaddd %ymm13, %ymm8, %ymm8
12591283
vpxor %ymm8, %ymm7, %ymm7
12601284
vpaddd %ymm4, %ymm3, %ymm3
12611285
vpxor %ymm3, %ymm14, %ymm14
1262-
vpshufb L_chacha20_avx2_rotl8(%rip), %ymm14, %ymm14
1286+
vpshufb (%r11), %ymm14, %ymm14
12631287
vpaddd %ymm14, %ymm9, %ymm9
12641288
vpxor %ymm9, %ymm4, %ymm4
12651289
vmovdqa %ymm11, 96(%r10)
@@ -1409,7 +1433,7 @@ L_chacha20_avx2_loop256:
14091433
vmovdqa 384(%r9), %ymm12
14101434
addq $0x200, %rsi
14111435
addq $0x200, %rdx
1412-
vpaddd L_chacha20_avx2_eight(%rip), %ymm12, %ymm12
1436+
vpaddd (%r14), %ymm12, %ymm12
14131437
subl $0x200, %ecx
14141438
vmovdqa %ymm12, 384(%r9)
14151439
cmpl $0x200, %ecx
@@ -1440,7 +1464,11 @@ L_chacha20_avx2_end256:
14401464
#else
14411465
callq _chacha_encrypt_avx1
14421466
#endif /* __APPLE__ */
1443-
addq $0x310, %rsp
1467+
vzeroupper
1468+
addq $0x320, %rsp
1469+
popq %r14
1470+
popq %r13
1471+
popq %r12
14441472
repz retq
14451473
#ifndef __APPLE__
14461474
.size chacha_encrypt_avx2,.-chacha_encrypt_avx2

0 commit comments

Comments
 (0)