| OLD | NEW |
| 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 Loading... |
| 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 | |
| 870 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] | 871 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] |
| 871 vpxor TMP1, TMP1, T | 872 vpxor TMP1, TMP1, T |
| 872 | 873 |
| 873 vmovdqu TMP0, XMMWORD PTR[Htbl] | 874 vmovdqu TMP0, XMMWORD PTR[Htbl] |
| 874 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4 | 875 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4 |
| 875 vmovdqu T, TMP1 | 876 vmovdqu T, TMP1 |
| 876 | 877 |
| 877 LEncDataEnd: | 878 LEncDataEnd: |
| 878 inc aluCTR | 879 inc aluCTR |
| 879 bswap aluCTR | 880 bswap aluCTR |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1143 cmp NR, 12 | 1144 cmp NR, 12 |
| 1144 je @f | 1145 je @f |
| 1145 vaesenc TMP1, TMP1, XMMWORD PTR[12*16 + KS] | 1146 vaesenc TMP1, TMP1, XMMWORD PTR[12*16 + KS] |
| 1146 vaesenc TMP1, TMP1, XMMWORD PTR[13*16 + KS] | 1147 vaesenc TMP1, TMP1, XMMWORD PTR[13*16 + KS] |
| 1147 vmovdqu TMP2, XMMWORD PTR[14*16 + KS] | 1148 vmovdqu TMP2, XMMWORD PTR[14*16 + KS] |
| 1148 @@: | 1149 @@: |
| 1149 vaesenclast xmm7, TMP1, TMP2 | 1150 vaesenclast xmm7, TMP1, TMP2 |
| 1150 | 1151 |
| 1151 ; copy as many bytes as needed | 1152 ; copy as many bytes as needed |
| 1152 xor KS, KS | 1153 xor KS, KS |
| 1154 mov aluTMP, edx |
| 1153 @@: | 1155 @@: |
| 1154 cmp len, KS | 1156 cmp len, KS |
| 1155 je @f | 1157 je @f |
| 1156 mov di, [CT + KS] | 1158 mov dl, BYTE PTR[CT + KS] |
| 1157 mov [esp + KS], di | 1159 mov BYTE PTR[esp + KS], dl |
| 1158 inc KS | 1160 inc KS |
| 1159 jmp @b | 1161 jmp @b |
| 1160 @@: | 1162 @@: |
| 1161 cmp KS, 16 | 1163 cmp KS, 16 |
| 1162 je @f | 1164 je @f |
| 1163 mov BYTE PTR[esp + KS], 0 | 1165 mov BYTE PTR[esp + KS], 0 |
| 1164 inc KS | 1166 inc KS |
| 1165 jmp @b | 1167 jmp @b |
| 1166 @@: | 1168 @@: |
| 1167 | 1169 mov edx, aluTMP |
| 1168 vmovdqa TMP1, XMMWORD PTR[esp] | 1170 vmovdqa TMP1, XMMWORD PTR[esp] |
| 1169 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] | 1171 vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] |
| 1170 vpxor TMP1, TMP1, T | 1172 vpxor TMP1, TMP1, T |
| 1171 | 1173 |
| 1172 vmovdqu TMP0, XMMWORD PTR[Htbl] | 1174 vmovdqu TMP0, XMMWORD PTR[Htbl] |
| 1173 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4 | 1175 GFMUL TMP1, TMP1, TMP0, TMP5, TMP2, TMP3, TMP4 |
| 1174 vmovdqu T, TMP1 | 1176 vmovdqu T, TMP1 |
| 1175 | 1177 |
| 1176 | |
| 1177 vpxor xmm7, xmm7, XMMWORD PTR[esp] | 1178 vpxor xmm7, xmm7, XMMWORD PTR[esp] |
| 1178 vmovdqa XMMWORD PTR[esp], xmm7 | 1179 vmovdqa XMMWORD PTR[esp], xmm7 |
| 1179 xor KS, KS | 1180 xor KS, KS |
| 1181 mov aluTMP, edx |
| 1180 @@: | 1182 @@: |
| 1181 cmp len, KS | 1183 cmp len, KS |
| 1182 je @f | 1184 je @f |
| 1183 mov di, [esp + KS] | 1185 mov dl, BYTE PTR[esp + KS] |
| 1184 mov [PT + KS], di | 1186 mov BYTE PTR[PT + KS], dl |
| 1185 inc KS | 1187 inc KS |
| 1186 jmp @b | 1188 jmp @b |
| 1187 @@: | 1189 @@: |
| 1188 cmp KS, 16 | 1190 mov edx, aluTMP |
| 1189 je @f | |
| 1190 mov BYTE PTR[PT + KS], 0 | |
| 1191 inc KS | |
| 1192 jmp @b | |
| 1193 @@: | |
| 1194 | 1191 |
| 1195 LDecDataEnd: | 1192 LDecDataEnd: |
| 1196 | 1193 |
| 1197 bswap aluCTR | 1194 bswap aluCTR |
| 1198 mov [16*16 + 2*16 + 3*4 + Gctx], aluCTR | 1195 mov [16*16 + 2*16 + 3*4 + Gctx], aluCTR |
| 1199 | 1196 |
| 1200 mov esp, ebp | 1197 mov esp, ebp |
| 1201 pop edi | 1198 pop edi |
| 1202 pop esi | 1199 pop esi |
| 1203 pop ebx | 1200 pop ebx |
| 1204 pop ebp | 1201 pop ebp |
| 1205 | 1202 |
| 1206 vzeroupper | 1203 vzeroupper |
| 1207 | 1204 |
| 1208 ret | 1205 ret |
| 1209 intel_aes_gcmDEC ENDP | 1206 intel_aes_gcmDEC ENDP |
| 1210 | 1207 |
| 1211 | 1208 |
| 1212 END | 1209 END |
| OLD | NEW |