OLD | NEW |
1 default rel | 1 default rel |
2 %define XMMWORD | 2 %define XMMWORD |
3 %define YMMWORD | 3 %define YMMWORD |
4 %define ZMMWORD | 4 %define ZMMWORD |
5 section .text code align=64 | 5 section .text code align=64 |
6 | 6 |
7 | 7 |
8 EXTERN OPENSSL_ia32cap_P | 8 EXTERN OPENSSL_ia32cap_P |
9 | 9 |
10 ALIGN 64 | 10 ALIGN 64 |
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 | 1084 |
1085 | 1085 |
1086 | 1086 |
1087 | 1087 |
1088 | 1088 |
1089 | 1089 |
1090 | 1090 |
1091 | 1091 |
1092 | 1092 |
1093 | 1093 |
1094 » vbroadcasti128» ymm11,YMMWORD[$L$sigma] | 1094 » vbroadcasti128» ymm11,XMMWORD[$L$sigma] |
1095 » vbroadcasti128» ymm3,YMMWORD[rcx] | 1095 » vbroadcasti128» ymm3,XMMWORD[rcx] |
1096 » vbroadcasti128» ymm15,YMMWORD[16+rcx] | 1096 » vbroadcasti128» ymm15,XMMWORD[16+rcx] |
1097 » vbroadcasti128» ymm7,YMMWORD[r8] | 1097 » vbroadcasti128» ymm7,XMMWORD[r8] |
1098 lea rcx,[256+rsp] | 1098 lea rcx,[256+rsp] |
1099 lea rax,[512+rsp] | 1099 lea rax,[512+rsp] |
1100 lea r10,[$L$rot16] | 1100 lea r10,[$L$rot16] |
1101 lea r11,[$L$rot24] | 1101 lea r11,[$L$rot24] |
1102 | 1102 |
1103 vpshufd ymm8,ymm11,0x00 | 1103 vpshufd ymm8,ymm11,0x00 |
1104 vpshufd ymm9,ymm11,0x55 | 1104 vpshufd ymm9,ymm11,0x55 |
1105 vmovdqa YMMWORD[(128-256)+rcx],ymm8 | 1105 vmovdqa YMMWORD[(128-256)+rcx],ymm8 |
1106 vpshufd ymm10,ymm11,0xaa | 1106 vpshufd ymm10,ymm11,0xaa |
1107 vmovdqa YMMWORD[(160-256)+rcx],ymm9 | 1107 vmovdqa YMMWORD[(160-256)+rcx],ymm9 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1154 vmovdqa ymm15,YMMWORD[((480-512))+rax] | 1154 vmovdqa ymm15,YMMWORD[((480-512))+rax] |
1155 vmovdqa ymm4,YMMWORD[((512-512))+rax] | 1155 vmovdqa ymm4,YMMWORD[((512-512))+rax] |
1156 vmovdqa ymm5,YMMWORD[((544-512))+rax] | 1156 vmovdqa ymm5,YMMWORD[((544-512))+rax] |
1157 vmovdqa ymm6,YMMWORD[((576-512))+rax] | 1157 vmovdqa ymm6,YMMWORD[((576-512))+rax] |
1158 vmovdqa ymm7,YMMWORD[((608-512))+rax] | 1158 vmovdqa ymm7,YMMWORD[((608-512))+rax] |
1159 vpaddd ymm4,ymm4,YMMWORD[$L$eight] | 1159 vpaddd ymm4,ymm4,YMMWORD[$L$eight] |
1160 | 1160 |
1161 $L$oop_enter8x: | 1161 $L$oop_enter8x: |
1162 vmovdqa YMMWORD[64+rsp],ymm14 | 1162 vmovdqa YMMWORD[64+rsp],ymm14 |
1163 vmovdqa YMMWORD[96+rsp],ymm15 | 1163 vmovdqa YMMWORD[96+rsp],ymm15 |
1164 » vbroadcasti128» ymm15,YMMWORD[r10] | 1164 » vbroadcasti128» ymm15,XMMWORD[r10] |
1165 vmovdqa YMMWORD[(512-512)+rax],ymm4 | 1165 vmovdqa YMMWORD[(512-512)+rax],ymm4 |
1166 mov eax,10 | 1166 mov eax,10 |
1167 jmp NEAR $L$oop8x | 1167 jmp NEAR $L$oop8x |
1168 | 1168 |
1169 ALIGN 32 | 1169 ALIGN 32 |
1170 $L$oop8x: | 1170 $L$oop8x: |
1171 vpaddd ymm8,ymm8,ymm0 | 1171 vpaddd ymm8,ymm8,ymm0 |
1172 vpxor ymm4,ymm8,ymm4 | 1172 vpxor ymm4,ymm8,ymm4 |
1173 vpshufb ymm4,ymm4,ymm15 | 1173 vpshufb ymm4,ymm4,ymm15 |
1174 vpaddd ymm9,ymm9,ymm1 | 1174 vpaddd ymm9,ymm9,ymm1 |
1175 vpxor ymm5,ymm9,ymm5 | 1175 vpxor ymm5,ymm9,ymm5 |
1176 vpshufb ymm5,ymm5,ymm15 | 1176 vpshufb ymm5,ymm5,ymm15 |
1177 vpaddd ymm12,ymm12,ymm4 | 1177 vpaddd ymm12,ymm12,ymm4 |
1178 vpxor ymm0,ymm12,ymm0 | 1178 vpxor ymm0,ymm12,ymm0 |
1179 vpslld ymm14,ymm0,12 | 1179 vpslld ymm14,ymm0,12 |
1180 vpsrld ymm0,ymm0,20 | 1180 vpsrld ymm0,ymm0,20 |
1181 vpor ymm0,ymm14,ymm0 | 1181 vpor ymm0,ymm14,ymm0 |
1182 » vbroadcasti128» ymm14,YMMWORD[r11] | 1182 » vbroadcasti128» ymm14,XMMWORD[r11] |
1183 vpaddd ymm13,ymm13,ymm5 | 1183 vpaddd ymm13,ymm13,ymm5 |
1184 vpxor ymm1,ymm13,ymm1 | 1184 vpxor ymm1,ymm13,ymm1 |
1185 vpslld ymm15,ymm1,12 | 1185 vpslld ymm15,ymm1,12 |
1186 vpsrld ymm1,ymm1,20 | 1186 vpsrld ymm1,ymm1,20 |
1187 vpor ymm1,ymm15,ymm1 | 1187 vpor ymm1,ymm15,ymm1 |
1188 vpaddd ymm8,ymm8,ymm0 | 1188 vpaddd ymm8,ymm8,ymm0 |
1189 vpxor ymm4,ymm8,ymm4 | 1189 vpxor ymm4,ymm8,ymm4 |
1190 vpshufb ymm4,ymm4,ymm14 | 1190 vpshufb ymm4,ymm4,ymm14 |
1191 vpaddd ymm9,ymm9,ymm1 | 1191 vpaddd ymm9,ymm9,ymm1 |
1192 vpxor ymm5,ymm9,ymm5 | 1192 vpxor ymm5,ymm9,ymm5 |
1193 vpshufb ymm5,ymm5,ymm14 | 1193 vpshufb ymm5,ymm5,ymm14 |
1194 vpaddd ymm12,ymm12,ymm4 | 1194 vpaddd ymm12,ymm12,ymm4 |
1195 vpxor ymm0,ymm12,ymm0 | 1195 vpxor ymm0,ymm12,ymm0 |
1196 vpslld ymm15,ymm0,7 | 1196 vpslld ymm15,ymm0,7 |
1197 vpsrld ymm0,ymm0,25 | 1197 vpsrld ymm0,ymm0,25 |
1198 vpor ymm0,ymm15,ymm0 | 1198 vpor ymm0,ymm15,ymm0 |
1199 » vbroadcasti128» ymm15,YMMWORD[r10] | 1199 » vbroadcasti128» ymm15,XMMWORD[r10] |
1200 vpaddd ymm13,ymm13,ymm5 | 1200 vpaddd ymm13,ymm13,ymm5 |
1201 vpxor ymm1,ymm13,ymm1 | 1201 vpxor ymm1,ymm13,ymm1 |
1202 vpslld ymm14,ymm1,7 | 1202 vpslld ymm14,ymm1,7 |
1203 vpsrld ymm1,ymm1,25 | 1203 vpsrld ymm1,ymm1,25 |
1204 vpor ymm1,ymm14,ymm1 | 1204 vpor ymm1,ymm14,ymm1 |
1205 vmovdqa YMMWORD[rsp],ymm12 | 1205 vmovdqa YMMWORD[rsp],ymm12 |
1206 vmovdqa YMMWORD[32+rsp],ymm13 | 1206 vmovdqa YMMWORD[32+rsp],ymm13 |
1207 vmovdqa ymm12,YMMWORD[64+rsp] | 1207 vmovdqa ymm12,YMMWORD[64+rsp] |
1208 vmovdqa ymm13,YMMWORD[96+rsp] | 1208 vmovdqa ymm13,YMMWORD[96+rsp] |
1209 vpaddd ymm10,ymm10,ymm2 | 1209 vpaddd ymm10,ymm10,ymm2 |
1210 vpxor ymm6,ymm10,ymm6 | 1210 vpxor ymm6,ymm10,ymm6 |
1211 vpshufb ymm6,ymm6,ymm15 | 1211 vpshufb ymm6,ymm6,ymm15 |
1212 vpaddd ymm11,ymm11,ymm3 | 1212 vpaddd ymm11,ymm11,ymm3 |
1213 vpxor ymm7,ymm11,ymm7 | 1213 vpxor ymm7,ymm11,ymm7 |
1214 vpshufb ymm7,ymm7,ymm15 | 1214 vpshufb ymm7,ymm7,ymm15 |
1215 vpaddd ymm12,ymm12,ymm6 | 1215 vpaddd ymm12,ymm12,ymm6 |
1216 vpxor ymm2,ymm12,ymm2 | 1216 vpxor ymm2,ymm12,ymm2 |
1217 vpslld ymm14,ymm2,12 | 1217 vpslld ymm14,ymm2,12 |
1218 vpsrld ymm2,ymm2,20 | 1218 vpsrld ymm2,ymm2,20 |
1219 vpor ymm2,ymm14,ymm2 | 1219 vpor ymm2,ymm14,ymm2 |
1220 » vbroadcasti128» ymm14,YMMWORD[r11] | 1220 » vbroadcasti128» ymm14,XMMWORD[r11] |
1221 vpaddd ymm13,ymm13,ymm7 | 1221 vpaddd ymm13,ymm13,ymm7 |
1222 vpxor ymm3,ymm13,ymm3 | 1222 vpxor ymm3,ymm13,ymm3 |
1223 vpslld ymm15,ymm3,12 | 1223 vpslld ymm15,ymm3,12 |
1224 vpsrld ymm3,ymm3,20 | 1224 vpsrld ymm3,ymm3,20 |
1225 vpor ymm3,ymm15,ymm3 | 1225 vpor ymm3,ymm15,ymm3 |
1226 vpaddd ymm10,ymm10,ymm2 | 1226 vpaddd ymm10,ymm10,ymm2 |
1227 vpxor ymm6,ymm10,ymm6 | 1227 vpxor ymm6,ymm10,ymm6 |
1228 vpshufb ymm6,ymm6,ymm14 | 1228 vpshufb ymm6,ymm6,ymm14 |
1229 vpaddd ymm11,ymm11,ymm3 | 1229 vpaddd ymm11,ymm11,ymm3 |
1230 vpxor ymm7,ymm11,ymm7 | 1230 vpxor ymm7,ymm11,ymm7 |
1231 vpshufb ymm7,ymm7,ymm14 | 1231 vpshufb ymm7,ymm7,ymm14 |
1232 vpaddd ymm12,ymm12,ymm6 | 1232 vpaddd ymm12,ymm12,ymm6 |
1233 vpxor ymm2,ymm12,ymm2 | 1233 vpxor ymm2,ymm12,ymm2 |
1234 vpslld ymm15,ymm2,7 | 1234 vpslld ymm15,ymm2,7 |
1235 vpsrld ymm2,ymm2,25 | 1235 vpsrld ymm2,ymm2,25 |
1236 vpor ymm2,ymm15,ymm2 | 1236 vpor ymm2,ymm15,ymm2 |
1237 » vbroadcasti128» ymm15,YMMWORD[r10] | 1237 » vbroadcasti128» ymm15,XMMWORD[r10] |
1238 vpaddd ymm13,ymm13,ymm7 | 1238 vpaddd ymm13,ymm13,ymm7 |
1239 vpxor ymm3,ymm13,ymm3 | 1239 vpxor ymm3,ymm13,ymm3 |
1240 vpslld ymm14,ymm3,7 | 1240 vpslld ymm14,ymm3,7 |
1241 vpsrld ymm3,ymm3,25 | 1241 vpsrld ymm3,ymm3,25 |
1242 vpor ymm3,ymm14,ymm3 | 1242 vpor ymm3,ymm14,ymm3 |
1243 vpaddd ymm8,ymm8,ymm1 | 1243 vpaddd ymm8,ymm8,ymm1 |
1244 vpxor ymm7,ymm8,ymm7 | 1244 vpxor ymm7,ymm8,ymm7 |
1245 vpshufb ymm7,ymm7,ymm15 | 1245 vpshufb ymm7,ymm7,ymm15 |
1246 vpaddd ymm9,ymm9,ymm2 | 1246 vpaddd ymm9,ymm9,ymm2 |
1247 vpxor ymm4,ymm9,ymm4 | 1247 vpxor ymm4,ymm9,ymm4 |
1248 vpshufb ymm4,ymm4,ymm15 | 1248 vpshufb ymm4,ymm4,ymm15 |
1249 vpaddd ymm12,ymm12,ymm7 | 1249 vpaddd ymm12,ymm12,ymm7 |
1250 vpxor ymm1,ymm12,ymm1 | 1250 vpxor ymm1,ymm12,ymm1 |
1251 vpslld ymm14,ymm1,12 | 1251 vpslld ymm14,ymm1,12 |
1252 vpsrld ymm1,ymm1,20 | 1252 vpsrld ymm1,ymm1,20 |
1253 vpor ymm1,ymm14,ymm1 | 1253 vpor ymm1,ymm14,ymm1 |
1254 » vbroadcasti128» ymm14,YMMWORD[r11] | 1254 » vbroadcasti128» ymm14,XMMWORD[r11] |
1255 vpaddd ymm13,ymm13,ymm4 | 1255 vpaddd ymm13,ymm13,ymm4 |
1256 vpxor ymm2,ymm13,ymm2 | 1256 vpxor ymm2,ymm13,ymm2 |
1257 vpslld ymm15,ymm2,12 | 1257 vpslld ymm15,ymm2,12 |
1258 vpsrld ymm2,ymm2,20 | 1258 vpsrld ymm2,ymm2,20 |
1259 vpor ymm2,ymm15,ymm2 | 1259 vpor ymm2,ymm15,ymm2 |
1260 vpaddd ymm8,ymm8,ymm1 | 1260 vpaddd ymm8,ymm8,ymm1 |
1261 vpxor ymm7,ymm8,ymm7 | 1261 vpxor ymm7,ymm8,ymm7 |
1262 vpshufb ymm7,ymm7,ymm14 | 1262 vpshufb ymm7,ymm7,ymm14 |
1263 vpaddd ymm9,ymm9,ymm2 | 1263 vpaddd ymm9,ymm9,ymm2 |
1264 vpxor ymm4,ymm9,ymm4 | 1264 vpxor ymm4,ymm9,ymm4 |
1265 vpshufb ymm4,ymm4,ymm14 | 1265 vpshufb ymm4,ymm4,ymm14 |
1266 vpaddd ymm12,ymm12,ymm7 | 1266 vpaddd ymm12,ymm12,ymm7 |
1267 vpxor ymm1,ymm12,ymm1 | 1267 vpxor ymm1,ymm12,ymm1 |
1268 vpslld ymm15,ymm1,7 | 1268 vpslld ymm15,ymm1,7 |
1269 vpsrld ymm1,ymm1,25 | 1269 vpsrld ymm1,ymm1,25 |
1270 vpor ymm1,ymm15,ymm1 | 1270 vpor ymm1,ymm15,ymm1 |
1271 » vbroadcasti128» ymm15,YMMWORD[r10] | 1271 » vbroadcasti128» ymm15,XMMWORD[r10] |
1272 vpaddd ymm13,ymm13,ymm4 | 1272 vpaddd ymm13,ymm13,ymm4 |
1273 vpxor ymm2,ymm13,ymm2 | 1273 vpxor ymm2,ymm13,ymm2 |
1274 vpslld ymm14,ymm2,7 | 1274 vpslld ymm14,ymm2,7 |
1275 vpsrld ymm2,ymm2,25 | 1275 vpsrld ymm2,ymm2,25 |
1276 vpor ymm2,ymm14,ymm2 | 1276 vpor ymm2,ymm14,ymm2 |
1277 vmovdqa YMMWORD[64+rsp],ymm12 | 1277 vmovdqa YMMWORD[64+rsp],ymm12 |
1278 vmovdqa YMMWORD[96+rsp],ymm13 | 1278 vmovdqa YMMWORD[96+rsp],ymm13 |
1279 vmovdqa ymm12,YMMWORD[rsp] | 1279 vmovdqa ymm12,YMMWORD[rsp] |
1280 vmovdqa ymm13,YMMWORD[32+rsp] | 1280 vmovdqa ymm13,YMMWORD[32+rsp] |
1281 vpaddd ymm10,ymm10,ymm3 | 1281 vpaddd ymm10,ymm10,ymm3 |
1282 vpxor ymm5,ymm10,ymm5 | 1282 vpxor ymm5,ymm10,ymm5 |
1283 vpshufb ymm5,ymm5,ymm15 | 1283 vpshufb ymm5,ymm5,ymm15 |
1284 vpaddd ymm11,ymm11,ymm0 | 1284 vpaddd ymm11,ymm11,ymm0 |
1285 vpxor ymm6,ymm11,ymm6 | 1285 vpxor ymm6,ymm11,ymm6 |
1286 vpshufb ymm6,ymm6,ymm15 | 1286 vpshufb ymm6,ymm6,ymm15 |
1287 vpaddd ymm12,ymm12,ymm5 | 1287 vpaddd ymm12,ymm12,ymm5 |
1288 vpxor ymm3,ymm12,ymm3 | 1288 vpxor ymm3,ymm12,ymm3 |
1289 vpslld ymm14,ymm3,12 | 1289 vpslld ymm14,ymm3,12 |
1290 vpsrld ymm3,ymm3,20 | 1290 vpsrld ymm3,ymm3,20 |
1291 vpor ymm3,ymm14,ymm3 | 1291 vpor ymm3,ymm14,ymm3 |
1292 » vbroadcasti128» ymm14,YMMWORD[r11] | 1292 » vbroadcasti128» ymm14,XMMWORD[r11] |
1293 vpaddd ymm13,ymm13,ymm6 | 1293 vpaddd ymm13,ymm13,ymm6 |
1294 vpxor ymm0,ymm13,ymm0 | 1294 vpxor ymm0,ymm13,ymm0 |
1295 vpslld ymm15,ymm0,12 | 1295 vpslld ymm15,ymm0,12 |
1296 vpsrld ymm0,ymm0,20 | 1296 vpsrld ymm0,ymm0,20 |
1297 vpor ymm0,ymm15,ymm0 | 1297 vpor ymm0,ymm15,ymm0 |
1298 vpaddd ymm10,ymm10,ymm3 | 1298 vpaddd ymm10,ymm10,ymm3 |
1299 vpxor ymm5,ymm10,ymm5 | 1299 vpxor ymm5,ymm10,ymm5 |
1300 vpshufb ymm5,ymm5,ymm14 | 1300 vpshufb ymm5,ymm5,ymm14 |
1301 vpaddd ymm11,ymm11,ymm0 | 1301 vpaddd ymm11,ymm11,ymm0 |
1302 vpxor ymm6,ymm11,ymm6 | 1302 vpxor ymm6,ymm11,ymm6 |
1303 vpshufb ymm6,ymm6,ymm14 | 1303 vpshufb ymm6,ymm6,ymm14 |
1304 vpaddd ymm12,ymm12,ymm5 | 1304 vpaddd ymm12,ymm12,ymm5 |
1305 vpxor ymm3,ymm12,ymm3 | 1305 vpxor ymm3,ymm12,ymm3 |
1306 vpslld ymm15,ymm3,7 | 1306 vpslld ymm15,ymm3,7 |
1307 vpsrld ymm3,ymm3,25 | 1307 vpsrld ymm3,ymm3,25 |
1308 vpor ymm3,ymm15,ymm3 | 1308 vpor ymm3,ymm15,ymm3 |
1309 » vbroadcasti128» ymm15,YMMWORD[r10] | 1309 » vbroadcasti128» ymm15,XMMWORD[r10] |
1310 vpaddd ymm13,ymm13,ymm6 | 1310 vpaddd ymm13,ymm13,ymm6 |
1311 vpxor ymm0,ymm13,ymm0 | 1311 vpxor ymm0,ymm13,ymm0 |
1312 vpslld ymm14,ymm0,7 | 1312 vpslld ymm14,ymm0,7 |
1313 vpsrld ymm0,ymm0,25 | 1313 vpsrld ymm0,ymm0,25 |
1314 vpor ymm0,ymm14,ymm0 | 1314 vpor ymm0,ymm14,ymm0 |
1315 dec eax | 1315 dec eax |
1316 jnz NEAR $L$oop8x | 1316 jnz NEAR $L$oop8x |
1317 | 1317 |
1318 lea rax,[512+rsp] | 1318 lea rax,[512+rsp] |
1319 vpaddd ymm8,ymm8,YMMWORD[((128-256))+rcx] | 1319 vpaddd ymm8,ymm8,YMMWORD[((128-256))+rcx] |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1680 movaps xmm11,XMMWORD[32+r11] | 1680 movaps xmm11,XMMWORD[32+r11] |
1681 movaps xmm12,XMMWORD[48+r11] | 1681 movaps xmm12,XMMWORD[48+r11] |
1682 movaps xmm13,XMMWORD[64+r11] | 1682 movaps xmm13,XMMWORD[64+r11] |
1683 movaps xmm14,XMMWORD[80+r11] | 1683 movaps xmm14,XMMWORD[80+r11] |
1684 movaps xmm15,XMMWORD[96+r11] | 1684 movaps xmm15,XMMWORD[96+r11] |
1685 mov rsp,QWORD[640+rsp] | 1685 mov rsp,QWORD[640+rsp] |
1686 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 1686 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
1687 mov rsi,QWORD[16+rsp] | 1687 mov rsi,QWORD[16+rsp] |
1688 DB 0F3h,0C3h ;repret | 1688 DB 0F3h,0C3h ;repret |
1689 $L$SEH_end_ChaCha20_8x: | 1689 $L$SEH_end_ChaCha20_8x: |
OLD | NEW |