Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: nss/lib/freebl/intel-gcm-x86-masm.asm

Issue 254213002: Fix bugs in intel-gcm-x86-masm.asm and re-enable the Intel AES assembly (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/nss
Patch Set: Update to Shay's fix. Remove an unnecessary loop in intel-gcm-x64-masm.asm Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « nss/lib/freebl/intel-gcm-x64-masm.asm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; LICENSE: 1 ; LICENSE:
2 ; This submission to NSS is to be made available under the terms of the 2 ; This submission to NSS is to be made available under the terms of the
3 ; Mozilla Public License, v. 2.0. You can obtain one at http: 3 ; Mozilla Public License, v. 2.0. You can obtain one at http:
4 ; //mozilla.org/MPL/2.0/. 4 ; //mozilla.org/MPL/2.0/.
5 ;############################################################################### 5 ;###############################################################################
6 ; Copyright(c) 2014, Intel Corp. 6 ; Copyright(c) 2014, Intel Corp.
7 ; Developers and authors: 7 ; Developers and authors:
8 ; Shay Gueron and Vlad Krasnov 8 ; Shay Gueron and Vlad Krasnov
9 ; Intel Corporation, Israel Development Centre, Haifa, Israel 9 ; Intel Corporation, Israel Development Centre, Haifa, Israel
10 ; Please send feedback directly to crypto.feedback.alias@intel.com 10 ; Please send feedback directly to crypto.feedback.alias@intel.com
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 vaesenc TMP1, TMP1, XMMWORD PTR[12*16 + KS] 833 vaesenc TMP1, TMP1, XMMWORD PTR[12*16 + KS]
834 vaesenc TMP1, TMP1, XMMWORD PTR[13*16 + KS] 834 vaesenc TMP1, TMP1, XMMWORD PTR[13*16 + KS]
835 vmovdqu TMP2, XMMWORD PTR[14*16 + KS] 835 vmovdqu TMP2, XMMWORD PTR[14*16 + KS]
836 @@: 836 @@:
837 vaesenclast TMP1, TMP1, TMP2 837 vaesenclast TMP1, TMP1, TMP2
838 ; zero a temp location 838 ; zero a temp location
839 vpxor TMP2, TMP2, TMP2 839 vpxor TMP2, TMP2, TMP2
840 vmovdqa XMMWORD PTR[esp], TMP2 840 vmovdqa XMMWORD PTR[esp], TMP2
841 ; copy as many bytes as needed 841 ; copy as many bytes as needed
842 xor KS, KS 842 xor KS, KS
843 mov aluTMP, edx
843 @@: 844 @@:
844 cmp len, KS 845 cmp len, KS
845 je @f 846 je @f
846 mov di, [PT + KS] 847 mov dl, BYTE PTR[PT + KS]
847 mov [esp + KS], di 848 mov BYTE PTR[esp + KS], dl
848 inc KS 849 inc KS
849 jmp @b 850 jmp @b
850 @@: 851 @@:
851 vpxor TMP1, TMP1, XMMWORD PTR[esp] 852 vpxor TMP1, TMP1, XMMWORD PTR[esp]
852 vmovdqa XMMWORD PTR[esp], TMP1 853 vmovdqa XMMWORD PTR[esp], TMP1
853 xor KS, KS 854 xor KS, KS
854 @@: 855 @@:
855 cmp len, KS 856 cmp len, KS
856 je @f 857 je @f
857 mov di, [esp + KS] 858 mov dl, BYTE PTR[esp + KS]
858 mov [CT + KS], di 859 mov BYTE PTR[CT + KS], dl
859 inc KS 860 inc KS
860 jmp @b 861 jmp @b
861 @@: 862 @@:
862 cmp KS, 16 863 cmp KS, 16
863 je @f 864 je @f
864 mov BYTE PTR[esp + KS], 0 865 mov BYTE PTR[esp + KS], 0
865 inc KS 866 inc KS
866 jmp @b 867 jmp @b
867 @@: 868 @@:
869 mov edx, aluTMP
868 vmovdqa TMP1, XMMWORD PTR[esp] 870 vmovdqa TMP1, XMMWORD PTR[esp]
869 871
870 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] 872 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask]
871 vpxor TMP1, TMP1, T 873 vpxor TMP1, TMP1, T
872 874
873 vmovdqu TMP0, XMMWORD PTR[Htbl] 875 vmovdqu TMP0, XMMWORD PTR[Htbl]
874 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4 876 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4
875 vmovdqu T, TMP1 877 vmovdqu T, TMP1
876 878
877 LEncDataEnd: 879 LEncDataEnd:
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1143 cmp NR, 12 1145 cmp NR, 12
1144 je @f 1146 je @f
1145 vaesenc TMP1, TMP1, XMMWORD PTR[12*16 + KS] 1147 vaesenc TMP1, TMP1, XMMWORD PTR[12*16 + KS]
1146 vaesenc TMP1, TMP1, XMMWORD PTR[13*16 + KS] 1148 vaesenc TMP1, TMP1, XMMWORD PTR[13*16 + KS]
1147 vmovdqu TMP2, XMMWORD PTR[14*16 + KS] 1149 vmovdqu TMP2, XMMWORD PTR[14*16 + KS]
1148 @@: 1150 @@:
1149 vaesenclast xmm7, TMP1, TMP2 1151 vaesenclast xmm7, TMP1, TMP2
1150 1152
1151 ; copy as many bytes as needed 1153 ; copy as many bytes as needed
1152 xor KS, KS 1154 xor KS, KS
1155 mov aluTMP, edx
1153 @@: 1156 @@:
1154 cmp len, KS 1157 cmp len, KS
1155 je @f 1158 je @f
1156 mov di, [CT + KS] 1159 mov dl, BYTE PTR[CT + KS]
1157 mov [esp + KS], di 1160 mov BYTE PTR[esp + KS], dl
1158 inc KS 1161 inc KS
1159 jmp @b 1162 jmp @b
1160 @@: 1163 @@:
1161 cmp KS, 16 1164 cmp KS, 16
1162 je @f 1165 je @f
1163 mov BYTE PTR[esp + KS], 0 1166 mov BYTE PTR[esp + KS], 0
1164 inc KS 1167 inc KS
1165 jmp @b 1168 jmp @b
1166 @@: 1169 @@:
1167 1170 mov edx, aluTMP
1168 vmovdqa TMP1, XMMWORD PTR[esp] 1171 vmovdqa TMP1, XMMWORD PTR[esp]
1169 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] 1172 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask]
1170 vpxor TMP1, TMP1, T 1173 vpxor TMP1, TMP1, T
1171 1174
1172 vmovdqu TMP0, XMMWORD PTR[Htbl] 1175 vmovdqu TMP0, XMMWORD PTR[Htbl]
1173 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4 1176 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4
1174 vmovdqu T, TMP1 1177 vmovdqu T, TMP1
1175 1178
1176
1177 vpxor xmm7, xmm7, XMMWORD PTR[esp] 1179 vpxor xmm7, xmm7, XMMWORD PTR[esp]
1178 vmovdqa XMMWORD PTR[esp], xmm7 1180 vmovdqa XMMWORD PTR[esp], xmm7
1179 xor KS, KS 1181 xor KS, KS
1182 mov aluTMP, edx
1180 @@: 1183 @@:
1181 cmp len, KS 1184 cmp len, KS
1182 je @f 1185 je @f
1183 mov di, [esp + KS] 1186 mov dl, BYTE PTR[esp + KS]
1184 mov [PT + KS], di 1187 mov BYTE PTR[PT + KS], dl
1185 inc KS 1188 inc KS
1186 jmp @b 1189 jmp @b
1187 @@: 1190 @@:
1188 cmp KS, 16 1191 mov edx, aluTMP
agl 2014/04/30 21:30:44 Just highlighting that this version of the change
wtc 2014/04/30 21:36:58 This removal is also in the previous version of th
1189 je @f
1190 mov BYTE PTR[PT + KS], 0
1191 inc KS
1192 jmp @b
1193 @@:
1194 1192
1195 LDecDataEnd: 1193 LDecDataEnd:
1196 1194
1197 bswap aluCTR 1195 bswap aluCTR
1198 mov [16*16 + 2*16 + 3*4 + Gctx], aluCTR 1196 mov [16*16 + 2*16 + 3*4 + Gctx], aluCTR
1199 1197
1200 mov esp, ebp 1198 mov esp, ebp
1201 pop edi 1199 pop edi
1202 pop esi 1200 pop esi
1203 pop ebx 1201 pop ebx
1204 pop ebp 1202 pop ebp
1205 1203
1206 vzeroupper 1204 vzeroupper
1207 1205
1208 ret 1206 ret
1209 intel_aes_gcmDEC ENDP 1207 intel_aes_gcmDEC ENDP
1210 1208
1211 1209
1212 END 1210 END
OLDNEW
« no previous file with comments | « nss/lib/freebl/intel-gcm-x64-masm.asm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698