diff options
author | Sam Roberts <vieuxtech@gmail.com> | 2018-11-22 11:47:07 -0800 |
---|---|---|
committer | Sam Roberts <vieuxtech@gmail.com> | 2019-01-22 13:33:54 -0800 |
commit | 807ed7883a12423270450776f015a7c2348c0913 (patch) | |
tree | 00ec21dd290b29c782680ffc2f97e6d59fd2ab2f /deps/openssl/config/archs/VC-WIN64A/asm | |
parent | 57119fbdb200702d6e2cf23428de4c458ae86bbc (diff) | |
download | android-node-v8-807ed7883a12423270450776f015a7c2348c0913.tar.gz android-node-v8-807ed7883a12423270450776f015a7c2348c0913.tar.bz2 android-node-v8-807ed7883a12423270450776f015a7c2348c0913.zip |
deps: update archs files for OpenSSL-1.1.1a
`cd deps/openssl/config; make` updates all archs dependant files.
PR-URL: https://github.com/nodejs/node/pull/25381
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
Diffstat (limited to 'deps/openssl/config/archs/VC-WIN64A/asm')
37 files changed, 13036 insertions, 1364 deletions
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm index e06b3546c0..df32726a24 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm @@ -1,3 +1,5 @@ +#! /usr/bin/env perl + package configdata; use strict; @@ -9,120 +11,192 @@ our @ISA = qw(Exporter); our @EXPORT = qw(%config %target %disabled %withargs %unified_info @disablables); our %config = ( + AR => "lib", + ARFLAGS => [ "/nologo" ], + AS => "nasm", + ASFLAGS => [ "-g" ], + CC => "gcc", + CFLAGS => [ "/W3 /wd4090 /nologo /O2" ], + CPP => "\$(CC) /EP /C", + CPPDEFINES => [ ], + CPPFLAGS => [ ], + CPPINCLUDES => [ ], + CXXFLAGS => [ ], + HASHBANGPERL => "/usr/bin/env perl", + LD => "link", + LDFLAGS => [ "/nologo /debug" ], + LDLIBS => [ ], + MT => "mt", + MTFLAGS => [ "-nologo" ], + PERL => "/usr/bin/perl", + RANLIB => "ranlib", + RC => "rc", b32 => "0", b64 => "1", b64l => "0", - baseaddr => "0xFB00000", bn_ll => "0", build_file => "makefile", - build_file_templates => [ "Configurations/windows-makefile.tmpl", "Configurations/common.tmpl" ], - build_infos => [ "./build.info", "crypto/build.info", "ssl/build.info", "engines/build.info", "apps/build.info", "test/build.info", "util/build.info", "tools/build.info", "fuzz/build.info", "crypto/objects/build.info", "crypto/md4/build.info", "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", "crypto/poly1305/build.info", "crypto/blake2/build.info", "crypto/des/build.info", "crypto/aes/build.info", "crypto/rc2/build.info", "crypto/rc4/build.info", "crypto/idea/build.info", "crypto/bf/build.info", "crypto/cast/build.info", "crypto/camellia/build.info", "crypto/seed/build.info", "crypto/chacha/build.info", "crypto/modes/build.info", "crypto/bn/build.info", "crypto/ec/build.info", "crypto/rsa/build.info", "crypto/dsa/build.info", "crypto/dh/build.info", "crypto/dso/build.info", "crypto/engine/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", "crypto/rand/build.info", "crypto/err/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", "crypto/pem/build.info", "crypto/x509/build.info", "crypto/x509v3/build.info", "crypto/conf/build.info", "crypto/txt_db/build.info", "crypto/pkcs7/build.info", "crypto/pkcs12/build.info", "crypto/ocsp/build.info", "crypto/ui/build.info", "crypto/cms/build.info", "crypto/ts/build.info", "crypto/srp/build.info", "crypto/cmac/build.info", "crypto/ct/build.info", "crypto/async/build.info", "crypto/kdf/build.info" ], + build_file_templates => [ "Configurations/common0.tmpl", "Configurations/windows-makefile.tmpl", "Configurations/common.tmpl" ], + build_infos => [ "./build.info", "crypto/build.info", "ssl/build.info", "engines/build.info", "apps/build.info", "test/build.info", "util/build.info", "tools/build.info", "fuzz/build.info", "crypto/objects/build.info", "crypto/md4/build.info", "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", "crypto/poly1305/build.info", "crypto/blake2/build.info", "crypto/siphash/build.info", "crypto/sm3/build.info", "crypto/des/build.info", "crypto/aes/build.info", "crypto/rc2/build.info", "crypto/rc4/build.info", "crypto/idea/build.info", "crypto/aria/build.info", "crypto/bf/build.info", "crypto/cast/build.info", "crypto/camellia/build.info", "crypto/seed/build.info", "crypto/sm4/build.info", "crypto/chacha/build.info", "crypto/modes/build.info", "crypto/bn/build.info", "crypto/ec/build.info", "crypto/rsa/build.info", "crypto/dsa/build.info", "crypto/dh/build.info", "crypto/sm2/build.info", "crypto/dso/build.info", "crypto/engine/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", "crypto/rand/build.info", "crypto/err/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", "crypto/pem/build.info", "crypto/x509/build.info", "crypto/x509v3/build.info", "crypto/conf/build.info", "crypto/txt_db/build.info", "crypto/pkcs7/build.info", "crypto/pkcs12/build.info", "crypto/ocsp/build.info", "crypto/ui/build.info", "crypto/cms/build.info", "crypto/ts/build.info", "crypto/srp/build.info", "crypto/cmac/build.info", "crypto/ct/build.info", "crypto/async/build.info", "crypto/kdf/build.info", "crypto/store/build.info", "test/ossl_shim/build.info" ], build_type => "release", builddir => ".", - cc => "cl", - cflags => "", - conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf" ], - cross_compile_prefix => "", - defines => [ "DSO_WIN32", "NDEBUG", "OPENSSL_THREADS", "OPENSSL_NO_DYNAMIC_ENGINE", "OPENSSL_PIC", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "PADLOCK_ASM", "POLY1305_ASM" ], + cflags => [ "-Wa,--noexecstack" ], + conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ], + cppflags => [ ], + cxxflags => [ ], + defines => [ "NDEBUG" ], dirs => [ "crypto", "ssl", "engines", "apps", "test", "util", "tools", "fuzz" ], dynamic_engines => "0", engdirs => [ ], - ex_libs => "", + ex_libs => [ ], export_var_as_fn => "1", - fips => "0", - fipslibdir => "/usr/local/ssl/fips-2.0/lib/", - hashbangperl => "/usr/bin/env perl", + includes => [ ], + lflags => [ ], + lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "PADLOCK_ASM", "POLY1305_ASM" ], libdir => "", major => "1", - makedepprog => "", - minor => "1.0", + minor => "1.1", openssl_algorithm_defines => [ "OPENSSL_NO_COMP", "OPENSSL_NO_MD2", "OPENSSL_NO_RC5" ], openssl_api_defines => [ ], - openssl_other_defines => [ "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", "OPENSSL_NO_HEARTBEATS", "OPENSSL_NO_MSAN", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL_TRACE", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_WEAK_SSL_CIPHERS", "OPENSSL_NO_AFALGENG" ], + openssl_other_defines => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", "OPENSSL_NO_HEARTBEATS", "OPENSSL_NO_MSAN", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL_TRACE", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_WEAK_SSL_CIPHERS", "OPENSSL_NO_DYNAMIC_ENGINE", "OPENSSL_NO_AFALGENG" ], openssl_sys_defines => [ "OPENSSL_SYS_WIN64A" ], openssl_thread_defines => [ "OPENSSL_THREADS" ], openssldir => "", - options => " no-afalgeng no-asan no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl-trace no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - perl => "/usr/bin/perl", + options => " no-afalgeng no-asan no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl-trace no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic", + perl_archname => "x86_64-linux-gnu-thread-multi", + perl_cmd => "/usr/bin/perl", + perl_version => "5.26.2", perlargv => [ "no-comp", "no-shared", "no-afalgeng", "VC-WIN64A" ], + perlenv => { + "AR" => undef, + "ARFLAGS" => undef, + "AS" => undef, + "ASFLAGS" => undef, + "BUILDFILE" => undef, + "CC" => "gcc", + "CFLAGS" => undef, + "CPP" => undef, + "CPPDEFINES" => undef, + "CPPFLAGS" => undef, + "CPPINCLUDES" => undef, + "CROSS_COMPILE" => undef, + "CXX" => undef, + "CXXFLAGS" => undef, + "HASHBANGPERL" => undef, + "LD" => undef, + "LDFLAGS" => undef, + "LDLIBS" => undef, + "MT" => undef, + "MTFLAGS" => undef, + "OPENSSL_LOCAL_CONFIG_DIR" => undef, + "PERL" => undef, + "RANLIB" => undef, + "RC" => undef, + "RCFLAGS" => undef, + "RM" => undef, + "WINDRES" => undef, + "__CNF_CFLAGS" => undef, + "__CNF_CPPDEFINES" => undef, + "__CNF_CPPFLAGS" => undef, + "__CNF_CPPINCLUDES" => undef, + "__CNF_CXXFLAGS" => undef, + "__CNF_LDFLAGS" => undef, + "__CNF_LDLIBS" => undef, + }, prefix => "", processor => "", rc4_int => "unsigned int", - sdirs => [ "objects", "md4", "md5", "sha", "mdc2", "hmac", "ripemd", "whrlpool", "poly1305", "blake2", "des", "aes", "rc2", "rc4", "idea", "bf", "cast", "camellia", "seed", "chacha", "modes", "bn", "ec", "rsa", "dsa", "dh", "dso", "engine", "buffer", "bio", "stack", "lhash", "rand", "err", "evp", "asn1", "pem", "x509", "x509v3", "conf", "txt_db", "pkcs7", "pkcs12", "ocsp", "ui", "cms", "ts", "srp", "cmac", "ct", "async", "kdf" ], - shared_ldflag => "", + sdirs => [ "objects", "md4", "md5", "sha", "mdc2", "hmac", "ripemd", "whrlpool", "poly1305", "blake2", "siphash", "sm3", "des", "aes", "rc2", "rc4", "idea", "aria", "bf", "cast", "camellia", "seed", "sm4", "chacha", "modes", "bn", "ec", "rsa", "dsa", "dh", "sm2", "dso", "engine", "buffer", "bio", "stack", "lhash", "rand", "err", "evp", "asn1", "pem", "x509", "x509v3", "conf", "txt_db", "pkcs7", "pkcs12", "ocsp", "ui", "cms", "ts", "srp", "cmac", "ct", "async", "kdf", "store" ], shlib_major => "1", shlib_minor => "1", shlib_version_history => "", shlib_version_number => "1.1", sourcedir => ".", target => "VC-WIN64A", - version => "1.1.0j", - version_num => "0x101000afL", + tdirs => [ "ossl_shim" ], + version => "1.1.1a", + version_num => "0x1010101fL", ); our %target = ( - _conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf" ], + AR => "lib", + ARFLAGS => "/nologo", + AS => "nasm", + ASFLAGS => "-g", + CC => "cl", + CFLAGS => "/W3 /wd4090 /nologo /O2", + CPP => "\$(CC) /EP /C", + HASHBANGPERL => "/usr/bin/env perl", + LD => "link", + LDFLAGS => "/nologo /debug", + MT => "mt", + MTFLAGS => "-nologo", + RANLIB => "CODE(0x564034626450)", + RC => "rc", + _conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ], aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s", aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o", apps_aux_src => "win32_init.c", + apps_init_src => "", apps_obj => "win32_init.o", - ar => "lib", - arflags => "/nologo", aroutflag => "/out:", - as => "nasm", - asflags => "-f win64 -DNEAR -Ox -g", - asoutflag => "-o", + asflags => "-Ox -f win64 -DNEAR", + asoutflag => "-o ", bf_asm_src => "bf_enc.c", bf_obj => "bf_enc.o", - bin_cflags => "/Zi /Fdapp /MT", + bin_cflags => "/Zi /Fdapp.pdb /MT", bin_lflags => "/subsystem:console /opt:ref", bn_asm_src => "bn_asm.c x86_64-mont.s x86_64-mont5.s x86_64-gf2m.s rsaz_exp.c rsaz-x86_64.s rsaz-avx2.s", bn_obj => "bn_asm.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o", - bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN", + bn_ops => "EXPORT_VAR_AS_FN SIXTY_FOUR_BIT", build_file => "makefile", - build_scheme => [ "unified", "windows", "VC-W64" ], + build_scheme => [ "unified", "windows", "VC-common" ], cast_asm_src => "c_enc.c", cast_obj => "c_enc.o", - cc => "cl", - cflags => "-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DUNICODE -D_UNICODE /O2", + cflags => "/Gs0 /GF /Gy", chacha_asm_src => "chacha-x86_64.s", chacha_obj => "chacha-x86_64.o", cmll_asm_src => "cmll-x86_64.s cmll_misc.c", cmll_obj => "cmll-x86_64.o cmll_misc.o", coutflag => "/Fo", + cppflags => "", cpuid_asm_src => "x86_64cpuid.s", cpuid_obj => "x86_64cpuid.o", - defines => [ ], + defines => [ "OPENSSL_SYS_WIN32", "WIN32_LEAN_AND_MEAN", "UNICODE", "_UNICODE", "_CRT_SECURE_NO_DEPRECATE", "_WINSOCK_DEPRECATED_NO_WARNINGS" ], des_asm_src => "des_enc.c fcrypt_b.c", des_obj => "des_enc.o fcrypt_b.o", - dso_cflags => "/Zi /Fddso", + disable => [ ], + dso_cflags => "/Zi /Fddso.pdb", dso_extension => ".dll", - dso_scheme => "WIN32", - ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s", - ec_obj => "ecp_nistz256.o ecp_nistz256-x86_64.o", + dso_scheme => "win32", + ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s", + ec_obj => "ecp_nistz256.o ecp_nistz256-x86_64.o x25519-x86_64.o", + enable => [ ], ex_libs => "ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib", exe_extension => "", - ld => "link", - lflags => "/nologo /debug", - lib_cflags => "/Zi /Fdossl_static /MT /Zl", - loutflag => "/out:", + includes => [ ], + keccak1600_asm_src => "keccak1600-x86_64.s", + keccak1600_obj => "keccak1600-x86_64.o", + ldoutflag => "/out:", + lflags => "", + lib_cflags => "/Zi /Fdossl_static.pdb /MT /Zl", + lib_cppflags => "", + lib_defines => [ "L_ENDIAN" ], md5_asm_src => "md5-x86_64.s", md5_obj => "md5-x86_64.o", modes_asm_src => "ghash-x86_64.s aesni-gcm-x86_64.s", modes_obj => "ghash-x86_64.o aesni-gcm-x86_64.o", - mt => "mt", - mtflags => "-nologo", + module_cflags => "", + module_cxxflags => "", + module_ldflags => "/dll", mtinflag => "-manifest ", mtoutflag => "-outputresource:", multilib => "-x64", - nm => "nm", padlock_asm_src => "e_padlock-x86_64.s", padlock_obj => "e_padlock-x86_64.o", perlasm_scheme => "auto", poly1305_asm_src => "poly1305-x86_64.s", poly1305_obj => "poly1305-x86_64.o", - ranlib => "\$(CROSS_COMPILE)ranlib", - rc => "rc", rc4_asm_src => "rc4-x86_64.s rc4-md5-x86_64.s", rc4_obj => "rc4-x86_64.o rc4-md5-x86_64.o", rc5_asm_src => "rc5_enc.c", @@ -151,17 +225,19 @@ our %target = ( ); our %available_protocols = ( - tls => [ "ssl3", "tls1", "tls1_1", "tls1_2" ], + tls => [ "ssl3", "tls1", "tls1_1", "tls1_2", "tls1_3" ], dtls => [ "dtls1", "dtls1_2" ], ); our @disablables = ( "afalgeng", + "aria", "asan", "asm", "async", "autoalginit", "autoerrinit", + "autoload-config", "bf", "blake2", "camellia", @@ -176,6 +252,7 @@ our @disablables = ( "ct", "deprecated", "des", + "devcryptoeng", "dgram", "dh", "dsa", @@ -190,6 +267,7 @@ our @disablables = ( "egd", "engine", "err", + "external-tests", "filenames", "fuzz-libfuzzer", "fuzz-afl", @@ -220,6 +298,10 @@ our @disablables = ( "sctp", "seed", "shared", + "siphash", + "sm2", + "sm3", + "sm4", "sock", "srp", "srtp", @@ -228,11 +310,12 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "tests", "threads", "tls", "ts", "ubsan", - "ui", + "ui-console", "unit-test", "whirlpool", "weak-ssl-ciphers", @@ -246,6 +329,7 @@ our @disablables = ( "tls1_1-method", "tls1_2", "tls1_2-method", + "tls1_3", "dtls1", "dtls1-method", "dtls1_2", @@ -258,13 +342,14 @@ our %disabled = ( "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "devcryptoeng" => "default", "dynamic-engine" => "forced", "ec_nistp_64_gcc_128" => "default", "egd" => "default", + "external-tests" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", "heartbeats" => "default", - "makedepend" => "unavailable", "md2" => "default", "msan" => "default", "rc5" => "default", @@ -292,14 +377,6 @@ our %unified_info = ( "crypto/include/internal/dso_conf.h", "include/openssl/opensslconf.h", ], - "apps/app_rand.o" => - [ - "apps/progs.h", - ], - "apps/apps.o" => - [ - "apps/progs.h", - ], "apps/asn1pars.o" => [ "apps/progs.h", @@ -382,16 +459,13 @@ our %unified_info = ( ], "apps/openssl" => [ + "apps/libapps.a", "libssl", ], "apps/openssl.o" => [ "apps/progs.h", ], - "apps/opt.o" => - [ - "apps/progs.h", - ], "apps/passwd.o" => [ "apps/progs.h", @@ -448,10 +522,6 @@ our %unified_info = ( [ "apps/progs.h", ], - "apps/s_cb.o" => - [ - "apps/progs.h", - ], "apps/s_client.o" => [ "apps/progs.h", @@ -460,10 +530,6 @@ our %unified_info = ( [ "apps/progs.h", ], - "apps/s_socket.o" => - [ - "apps/progs.h", - ], "apps/s_time.o" => [ "apps/progs.h", @@ -488,19 +554,19 @@ our %unified_info = ( [ "apps/progs.h", ], - "apps/ts.o" => + "apps/storeutl.o" => [ "apps/progs.h", ], - "apps/verify.o" => + "apps/ts.o" => [ "apps/progs.h", ], - "apps/version.o" => + "apps/verify.o" => [ "apps/progs.h", ], - "apps/win32_init.o" => + "apps/version.o" => [ "apps/progs.h", ], @@ -615,6 +681,7 @@ our %unified_info = ( "fuzz/asn1-test" => [ "libcrypto", + "libssl", ], "fuzz/asn1parse-test" => [ @@ -628,6 +695,11 @@ our %unified_info = ( [ "libcrypto", ], + "fuzz/client-test" => + [ + "libcrypto", + "libssl", + ], "fuzz/cms-test" => [ "libcrypto", @@ -657,10 +729,18 @@ our %unified_info = ( [ "configdata.pm", ], + "libcrypto.def" => + [ + "util/libcrypto.num", + ], "libssl" => [ "libcrypto", ], + "libssl.def" => + [ + "util/libssl.num", + ], "test/aborttest" => [ "libcrypto", @@ -668,11 +748,38 @@ our %unified_info = ( "test/afalgtest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/asn1_decode_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/asn1_encode_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/asn1_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", + ], + "test/asn1_string_table_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/asn1_time_test" => + [ + "libcrypto", + "test/libtestutil.a", ], "test/asynciotest" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/asynctest" => [ @@ -682,22 +789,32 @@ our %unified_info = ( [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/bftest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/bio_callback_test" => + [ + "libcrypto", + "test/libtestutil.a", ], "test/bio_enc_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/bioprinttest" => [ "libcrypto", + "test/libtestutil.a", ], "test/bntest" => [ "libcrypto", + "test/libtestutil.a", ], "test/buildtest_aes" => [ @@ -829,11 +946,6 @@ our %unified_info = ( "libcrypto", "libssl", ], - "test/buildtest_err" => - [ - "libcrypto", - "libssl", - ], "test/buildtest_evp" => [ "libcrypto", @@ -929,6 +1041,11 @@ our %unified_info = ( "libcrypto", "libssl", ], + "test/buildtest_rand_drbg" => + [ + "libcrypto", + "libssl", + ], "test/buildtest_rc2" => [ "libcrypto", @@ -989,6 +1106,11 @@ our %unified_info = ( "libcrypto", "libssl", ], + "test/buildtest_store" => + [ + "libcrypto", + "libssl", + ], "test/buildtest_symhacks" => [ "libcrypto", @@ -1037,262 +1159,2127 @@ our %unified_info = ( "test/casttest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/chacha_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", + ], + "test/cipher_overhead_test" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", + ], + "test/cipherbytes_test" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", ], "test/cipherlist_test" => [ "libcrypto", "libssl", + "test/libtestutil.a", + ], + "test/ciphername_test" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", ], "test/clienthellotest" => [ "libcrypto", "libssl", + "test/libtestutil.a", + ], + "test/cmsapitest" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/conf_include_test" => + [ + "libcrypto", + "test/libtestutil.a", ], "test/constant_time_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/crltest" => [ "libcrypto", + "test/libtestutil.a", ], "test/ct_test" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/ctype_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", + ], + "test/curve448_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", ], "test/d2i_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/danetest" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/destest" => [ "libcrypto", + "test/libtestutil.a", ], "test/dhtest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/drbg_cavs_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/drbgtest" => + [ + "libcrypto.a", + "test/libtestutil.a", + ], + "test/dsa_no_digest_size_test" => + [ + "libcrypto", + "test/libtestutil.a", ], "test/dsatest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/dtls_mtu_test" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", ], "test/dtlstest" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/dtlsv1listentest" => [ "libssl", + "test/libtestutil.a", ], "test/ecdsatest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/ecstresstest" => + [ + "libcrypto", + "test/libtestutil.a", ], "test/ectest" => [ "libcrypto", + "test/libtestutil.a", ], "test/enginetest" => [ "libcrypto", + "test/libtestutil.a", ], "test/errtest" => [ "libcrypto", + "test/libtestutil.a", ], "test/evp_extra_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/evp_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/exdatatest" => [ "libcrypto", + "test/libtestutil.a", ], "test/exptest" => [ "libcrypto", + "test/libtestutil.a", ], "test/fatalerrtest" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/gmdifftest" => [ "libcrypto", + "test/libtestutil.a", ], - "test/heartbeat_test" => + "test/gosttest" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/hmactest" => [ "libcrypto", + "test/libtestutil.a", ], "test/ideatest" => [ "libcrypto", + "test/libtestutil.a", ], "test/igetest" => [ "libcrypto", + "test/libtestutil.a", ], - "test/md2test" => + "test/lhash_test" => [ "libcrypto", + "test/libtestutil.a", ], - "test/md4test" => + "test/libtestutil.a" => + [ + "libcrypto", + ], + "test/md2test" => [ "libcrypto", + "test/libtestutil.a", ], - "test/md5test" => + "test/mdc2_internal_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/mdc2test" => [ "libcrypto", + "test/libtestutil.a", ], "test/memleaktest" => [ "libcrypto", + "test/libtestutil.a", ], - "test/ocspapitest" => + "test/modes_internal_test" => [ - "libcrypto", + "libcrypto.a", + "test/libtestutil.a", ], - "test/p5_crpt2_test" => + "test/ocspapitest" => [ "libcrypto", + "test/libtestutil.a", ], "test/packettest" => [ "libcrypto", + "test/libtestutil.a", ], "test/pbelutest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/pemtest" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/pkey_meth_kdf_test" => + [ + "libcrypto", + "test/libtestutil.a", ], - "test/randtest" => + "test/pkey_meth_test" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/poly1305_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", ], "test/rc2test" => [ "libcrypto", + "test/libtestutil.a", ], "test/rc4test" => [ "libcrypto", + "test/libtestutil.a", ], "test/rc5test" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/rdrand_sanitytest" => + [ + "libcrypto.a", + "test/libtestutil.a", + ], + "test/recordlentest" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", ], - "test/rmdtest" => + "test/rsa_mp_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/rsa_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/sanitytest" => [ "libcrypto", + "test/libtestutil.a", ], "test/secmemtest" => [ "libcrypto", + "test/libtestutil.a", ], - "test/sha1test" => + "test/servername_test" => [ "libcrypto", + "libssl", + "test/libtestutil.a", ], - "test/sha256t" => + "test/siphash_internal_test" => [ - "libcrypto", + "libcrypto.a", + "test/libtestutil.a", ], - "test/sha512t" => + "test/sm2_internal_test" => [ - "libcrypto", + "libcrypto.a", + "test/libtestutil.a", + ], + "test/sm4_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", ], "test/srptest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/ssl_cert_table_internal_test" => + [ + "libcrypto", + "test/libtestutil.a", ], "test/ssl_test" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/ssl_test_ctx_test" => [ "libcrypto", + "libssl", + "test/libtestutil.a", ], "test/sslapitest" => [ "libcrypto", "libssl", + "test/libtestutil.a", + ], + "test/sslbuffertest" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", ], "test/sslcorrupttest" => [ "libcrypto", "libssl", + "test/libtestutil.a", ], "test/ssltest_old" => [ "libcrypto", "libssl", ], + "test/stack_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/sysdefaulttest" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", + ], + "test/test_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], "test/threadstest" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/time_offset_test" => + [ + "libcrypto", + "test/libtestutil.a", + ], + "test/tls13ccstest" => + [ + "libcrypto", + "libssl", + "test/libtestutil.a", + ], + "test/tls13encryptiontest" => + [ + "libcrypto", + "libssl.a", + "test/libtestutil.a", + ], + "test/uitest" => + [ + "apps/libapps.a", + "libcrypto", + "libssl", + "test/libtestutil.a", ], "test/v3ext" => [ "libcrypto", + "test/libtestutil.a", ], "test/v3nametest" => [ "libcrypto", + "test/libtestutil.a", ], "test/verify_extra_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/versions" => [ "libcrypto", ], - "test/wp_test" => + "test/wpackettest" => + [ + "libcrypto", + "libssl.a", + "test/libtestutil.a", + ], + "test/x509_check_cert_pkey_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/x509_dup_cert_test" => [ "libcrypto", + "test/libtestutil.a", + ], + "test/x509_internal_test" => + [ + "libcrypto.a", + "test/libtestutil.a", ], "test/x509_time_test" => [ "libcrypto", + "test/libtestutil.a", ], "test/x509aux" => [ "libcrypto", + "test/libtestutil.a", ], }, + "dirinfo" => + { + "apps" => + { + "products" => + { + "bin" => + [ + "apps/openssl", + ], + "lib" => + [ + "apps/libapps.a", + ], + "script" => + [ + "apps/CA.pl", + "apps/tsget.pl", + ], + }, + }, + "crypto" => + { + "deps" => + [ + "crypto/cpt_err.o", + "crypto/cryptlib.o", + "crypto/ctype.o", + "crypto/cversion.o", + "crypto/ebcdic.o", + "crypto/ex_data.o", + "crypto/getenv.o", + "crypto/init.o", + "crypto/mem.o", + "crypto/mem_dbg.o", + "crypto/mem_sec.o", + "crypto/o_dir.o", + "crypto/o_fips.o", + "crypto/o_fopen.o", + "crypto/o_init.o", + "crypto/o_str.o", + "crypto/o_time.o", + "crypto/threads_none.o", + "crypto/threads_pthread.o", + "crypto/threads_win.o", + "crypto/uid.o", + "crypto/x86_64cpuid.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/aes" => + { + "deps" => + [ + "crypto/aes/aes-x86_64.o", + "crypto/aes/aes_cfb.o", + "crypto/aes/aes_ecb.o", + "crypto/aes/aes_ige.o", + "crypto/aes/aes_misc.o", + "crypto/aes/aes_ofb.o", + "crypto/aes/aes_wrap.o", + "crypto/aes/aesni-mb-x86_64.o", + "crypto/aes/aesni-sha1-x86_64.o", + "crypto/aes/aesni-sha256-x86_64.o", + "crypto/aes/aesni-x86_64.o", + "crypto/aes/bsaes-x86_64.o", + "crypto/aes/vpaes-x86_64.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/aria" => + { + "deps" => + [ + "crypto/aria/aria.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/asn1" => + { + "deps" => + [ + "crypto/asn1/a_bitstr.o", + "crypto/asn1/a_d2i_fp.o", + "crypto/asn1/a_digest.o", + "crypto/asn1/a_dup.o", + "crypto/asn1/a_gentm.o", + "crypto/asn1/a_i2d_fp.o", + "crypto/asn1/a_int.o", + "crypto/asn1/a_mbstr.o", + "crypto/asn1/a_object.o", + "crypto/asn1/a_octet.o", + "crypto/asn1/a_print.o", + "crypto/asn1/a_sign.o", + "crypto/asn1/a_strex.o", + "crypto/asn1/a_strnid.o", + "crypto/asn1/a_time.o", + "crypto/asn1/a_type.o", + "crypto/asn1/a_utctm.o", + "crypto/asn1/a_utf8.o", + "crypto/asn1/a_verify.o", + "crypto/asn1/ameth_lib.o", + "crypto/asn1/asn1_err.o", + "crypto/asn1/asn1_gen.o", + "crypto/asn1/asn1_item_list.o", + "crypto/asn1/asn1_lib.o", + "crypto/asn1/asn1_par.o", + "crypto/asn1/asn_mime.o", + "crypto/asn1/asn_moid.o", + "crypto/asn1/asn_mstbl.o", + "crypto/asn1/asn_pack.o", + "crypto/asn1/bio_asn1.o", + "crypto/asn1/bio_ndef.o", + "crypto/asn1/d2i_pr.o", + "crypto/asn1/d2i_pu.o", + "crypto/asn1/evp_asn1.o", + "crypto/asn1/f_int.o", + "crypto/asn1/f_string.o", + "crypto/asn1/i2d_pr.o", + "crypto/asn1/i2d_pu.o", + "crypto/asn1/n_pkey.o", + "crypto/asn1/nsseq.o", + "crypto/asn1/p5_pbe.o", + "crypto/asn1/p5_pbev2.o", + "crypto/asn1/p5_scrypt.o", + "crypto/asn1/p8_pkey.o", + "crypto/asn1/t_bitst.o", + "crypto/asn1/t_pkey.o", + "crypto/asn1/t_spki.o", + "crypto/asn1/tasn_dec.o", + "crypto/asn1/tasn_enc.o", + "crypto/asn1/tasn_fre.o", + "crypto/asn1/tasn_new.o", + "crypto/asn1/tasn_prn.o", + "crypto/asn1/tasn_scn.o", + "crypto/asn1/tasn_typ.o", + "crypto/asn1/tasn_utl.o", + "crypto/asn1/x_algor.o", + "crypto/asn1/x_bignum.o", + "crypto/asn1/x_info.o", + "crypto/asn1/x_int64.o", + "crypto/asn1/x_long.o", + "crypto/asn1/x_pkey.o", + "crypto/asn1/x_sig.o", + "crypto/asn1/x_spki.o", + "crypto/asn1/x_val.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/async" => + { + "deps" => + [ + "crypto/async/async.o", + "crypto/async/async_err.o", + "crypto/async/async_wait.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/async/arch" => + { + "deps" => + [ + "crypto/async/arch/async_null.o", + "crypto/async/arch/async_posix.o", + "crypto/async/arch/async_win.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/bf" => + { + "deps" => + [ + "crypto/bf/bf_cfb64.o", + "crypto/bf/bf_ecb.o", + "crypto/bf/bf_enc.o", + "crypto/bf/bf_ofb64.o", + "crypto/bf/bf_skey.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/bio" => + { + "deps" => + [ + "crypto/bio/b_addr.o", + "crypto/bio/b_dump.o", + "crypto/bio/b_print.o", + "crypto/bio/b_sock.o", + "crypto/bio/b_sock2.o", + "crypto/bio/bf_buff.o", + "crypto/bio/bf_lbuf.o", + "crypto/bio/bf_nbio.o", + "crypto/bio/bf_null.o", + "crypto/bio/bio_cb.o", + "crypto/bio/bio_err.o", + "crypto/bio/bio_lib.o", + "crypto/bio/bio_meth.o", + "crypto/bio/bss_acpt.o", + "crypto/bio/bss_bio.o", + "crypto/bio/bss_conn.o", + "crypto/bio/bss_dgram.o", + "crypto/bio/bss_fd.o", + "crypto/bio/bss_file.o", + "crypto/bio/bss_log.o", + "crypto/bio/bss_mem.o", + "crypto/bio/bss_null.o", + "crypto/bio/bss_sock.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/blake2" => + { + "deps" => + [ + "crypto/blake2/blake2b.o", + "crypto/blake2/blake2s.o", + "crypto/blake2/m_blake2b.o", + "crypto/blake2/m_blake2s.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/bn" => + { + "deps" => + [ + "crypto/bn/bn_add.o", + "crypto/bn/bn_asm.o", + "crypto/bn/bn_blind.o", + "crypto/bn/bn_const.o", + "crypto/bn/bn_ctx.o", + "crypto/bn/bn_depr.o", + "crypto/bn/bn_dh.o", + "crypto/bn/bn_div.o", + "crypto/bn/bn_err.o", + "crypto/bn/bn_exp.o", + "crypto/bn/bn_exp2.o", + "crypto/bn/bn_gcd.o", + "crypto/bn/bn_gf2m.o", + "crypto/bn/bn_intern.o", + "crypto/bn/bn_kron.o", + "crypto/bn/bn_lib.o", + "crypto/bn/bn_mod.o", + "crypto/bn/bn_mont.o", + "crypto/bn/bn_mpi.o", + "crypto/bn/bn_mul.o", + "crypto/bn/bn_nist.o", + "crypto/bn/bn_prime.o", + "crypto/bn/bn_print.o", + "crypto/bn/bn_rand.o", + "crypto/bn/bn_recp.o", + "crypto/bn/bn_shift.o", + "crypto/bn/bn_sqr.o", + "crypto/bn/bn_sqrt.o", + "crypto/bn/bn_srp.o", + "crypto/bn/bn_word.o", + "crypto/bn/bn_x931p.o", + "crypto/bn/rsaz-avx2.o", + "crypto/bn/rsaz-x86_64.o", + "crypto/bn/rsaz_exp.o", + "crypto/bn/x86_64-gf2m.o", + "crypto/bn/x86_64-mont.o", + "crypto/bn/x86_64-mont5.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/buffer" => + { + "deps" => + [ + "crypto/buffer/buf_err.o", + "crypto/buffer/buffer.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/camellia" => + { + "deps" => + [ + "crypto/camellia/cmll-x86_64.o", + "crypto/camellia/cmll_cfb.o", + "crypto/camellia/cmll_ctr.o", + "crypto/camellia/cmll_ecb.o", + "crypto/camellia/cmll_misc.o", + "crypto/camellia/cmll_ofb.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/cast" => + { + "deps" => + [ + "crypto/cast/c_cfb64.o", + "crypto/cast/c_ecb.o", + "crypto/cast/c_enc.o", + "crypto/cast/c_ofb64.o", + "crypto/cast/c_skey.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/chacha" => + { + "deps" => + [ + "crypto/chacha/chacha-x86_64.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/cmac" => + { + "deps" => + [ + "crypto/cmac/cm_ameth.o", + "crypto/cmac/cm_pmeth.o", + "crypto/cmac/cmac.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/cms" => + { + "deps" => + [ + "crypto/cms/cms_asn1.o", + "crypto/cms/cms_att.o", + "crypto/cms/cms_cd.o", + "crypto/cms/cms_dd.o", + "crypto/cms/cms_enc.o", + "crypto/cms/cms_env.o", + "crypto/cms/cms_err.o", + "crypto/cms/cms_ess.o", + "crypto/cms/cms_io.o", + "crypto/cms/cms_kari.o", + "crypto/cms/cms_lib.o", + "crypto/cms/cms_pwri.o", + "crypto/cms/cms_sd.o", + "crypto/cms/cms_smime.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/conf" => + { + "deps" => + [ + "crypto/conf/conf_api.o", + "crypto/conf/conf_def.o", + "crypto/conf/conf_err.o", + "crypto/conf/conf_lib.o", + "crypto/conf/conf_mall.o", + "crypto/conf/conf_mod.o", + "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ct" => + { + "deps" => + [ + "crypto/ct/ct_b64.o", + "crypto/ct/ct_err.o", + "crypto/ct/ct_log.o", + "crypto/ct/ct_oct.o", + "crypto/ct/ct_policy.o", + "crypto/ct/ct_prn.o", + "crypto/ct/ct_sct.o", + "crypto/ct/ct_sct_ctx.o", + "crypto/ct/ct_vfy.o", + "crypto/ct/ct_x509v3.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/des" => + { + "deps" => + [ + "crypto/des/cbc_cksm.o", + "crypto/des/cbc_enc.o", + "crypto/des/cfb64ede.o", + "crypto/des/cfb64enc.o", + "crypto/des/cfb_enc.o", + "crypto/des/des_enc.o", + "crypto/des/ecb3_enc.o", + "crypto/des/ecb_enc.o", + "crypto/des/fcrypt.o", + "crypto/des/fcrypt_b.o", + "crypto/des/ofb64ede.o", + "crypto/des/ofb64enc.o", + "crypto/des/ofb_enc.o", + "crypto/des/pcbc_enc.o", + "crypto/des/qud_cksm.o", + "crypto/des/rand_key.o", + "crypto/des/set_key.o", + "crypto/des/str2key.o", + "crypto/des/xcbc_enc.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/dh" => + { + "deps" => + [ + "crypto/dh/dh_ameth.o", + "crypto/dh/dh_asn1.o", + "crypto/dh/dh_check.o", + "crypto/dh/dh_depr.o", + "crypto/dh/dh_err.o", + "crypto/dh/dh_gen.o", + "crypto/dh/dh_kdf.o", + "crypto/dh/dh_key.o", + "crypto/dh/dh_lib.o", + "crypto/dh/dh_meth.o", + "crypto/dh/dh_pmeth.o", + "crypto/dh/dh_prn.o", + "crypto/dh/dh_rfc5114.o", + "crypto/dh/dh_rfc7919.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/dsa" => + { + "deps" => + [ + "crypto/dsa/dsa_ameth.o", + "crypto/dsa/dsa_asn1.o", + "crypto/dsa/dsa_depr.o", + "crypto/dsa/dsa_err.o", + "crypto/dsa/dsa_gen.o", + "crypto/dsa/dsa_key.o", + "crypto/dsa/dsa_lib.o", + "crypto/dsa/dsa_meth.o", + "crypto/dsa/dsa_ossl.o", + "crypto/dsa/dsa_pmeth.o", + "crypto/dsa/dsa_prn.o", + "crypto/dsa/dsa_sign.o", + "crypto/dsa/dsa_vrf.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/dso" => + { + "deps" => + [ + "crypto/dso/dso_dl.o", + "crypto/dso/dso_dlfcn.o", + "crypto/dso/dso_err.o", + "crypto/dso/dso_lib.o", + "crypto/dso/dso_openssl.o", + "crypto/dso/dso_vms.o", + "crypto/dso/dso_win32.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ec" => + { + "deps" => + [ + "crypto/ec/curve25519.o", + "crypto/ec/ec2_oct.o", + "crypto/ec/ec2_smpl.o", + "crypto/ec/ec_ameth.o", + "crypto/ec/ec_asn1.o", + "crypto/ec/ec_check.o", + "crypto/ec/ec_curve.o", + "crypto/ec/ec_cvt.o", + "crypto/ec/ec_err.o", + "crypto/ec/ec_key.o", + "crypto/ec/ec_kmeth.o", + "crypto/ec/ec_lib.o", + "crypto/ec/ec_mult.o", + "crypto/ec/ec_oct.o", + "crypto/ec/ec_pmeth.o", + "crypto/ec/ec_print.o", + "crypto/ec/ecdh_kdf.o", + "crypto/ec/ecdh_ossl.o", + "crypto/ec/ecdsa_ossl.o", + "crypto/ec/ecdsa_sign.o", + "crypto/ec/ecdsa_vrf.o", + "crypto/ec/eck_prn.o", + "crypto/ec/ecp_mont.o", + "crypto/ec/ecp_nist.o", + "crypto/ec/ecp_nistp224.o", + "crypto/ec/ecp_nistp256.o", + "crypto/ec/ecp_nistp521.o", + "crypto/ec/ecp_nistputil.o", + "crypto/ec/ecp_nistz256-x86_64.o", + "crypto/ec/ecp_nistz256.o", + "crypto/ec/ecp_oct.o", + "crypto/ec/ecp_smpl.o", + "crypto/ec/ecx_meth.o", + "crypto/ec/x25519-x86_64.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ec/curve448" => + { + "deps" => + [ + "crypto/ec/curve448/curve448.o", + "crypto/ec/curve448/curve448_tables.o", + "crypto/ec/curve448/eddsa.o", + "crypto/ec/curve448/f_generic.o", + "crypto/ec/curve448/scalar.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ec/curve448/arch_32" => + { + "deps" => + [ + "crypto/ec/curve448/arch_32/f_impl.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/engine" => + { + "deps" => + [ + "crypto/engine/eng_all.o", + "crypto/engine/eng_cnf.o", + "crypto/engine/eng_ctrl.o", + "crypto/engine/eng_dyn.o", + "crypto/engine/eng_err.o", + "crypto/engine/eng_fat.o", + "crypto/engine/eng_init.o", + "crypto/engine/eng_lib.o", + "crypto/engine/eng_list.o", + "crypto/engine/eng_openssl.o", + "crypto/engine/eng_pkey.o", + "crypto/engine/eng_rdrand.o", + "crypto/engine/eng_table.o", + "crypto/engine/tb_asnmth.o", + "crypto/engine/tb_cipher.o", + "crypto/engine/tb_dh.o", + "crypto/engine/tb_digest.o", + "crypto/engine/tb_dsa.o", + "crypto/engine/tb_eckey.o", + "crypto/engine/tb_pkmeth.o", + "crypto/engine/tb_rand.o", + "crypto/engine/tb_rsa.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/err" => + { + "deps" => + [ + "crypto/err/err.o", + "crypto/err/err_all.o", + "crypto/err/err_prn.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/evp" => + { + "deps" => + [ + "crypto/evp/bio_b64.o", + "crypto/evp/bio_enc.o", + "crypto/evp/bio_md.o", + "crypto/evp/bio_ok.o", + "crypto/evp/c_allc.o", + "crypto/evp/c_alld.o", + "crypto/evp/cmeth_lib.o", + "crypto/evp/digest.o", + "crypto/evp/e_aes.o", + "crypto/evp/e_aes_cbc_hmac_sha1.o", + "crypto/evp/e_aes_cbc_hmac_sha256.o", + "crypto/evp/e_aria.o", + "crypto/evp/e_bf.o", + "crypto/evp/e_camellia.o", + "crypto/evp/e_cast.o", + "crypto/evp/e_chacha20_poly1305.o", + "crypto/evp/e_des.o", + "crypto/evp/e_des3.o", + "crypto/evp/e_idea.o", + "crypto/evp/e_null.o", + "crypto/evp/e_old.o", + "crypto/evp/e_rc2.o", + "crypto/evp/e_rc4.o", + "crypto/evp/e_rc4_hmac_md5.o", + "crypto/evp/e_rc5.o", + "crypto/evp/e_seed.o", + "crypto/evp/e_sm4.o", + "crypto/evp/e_xcbc_d.o", + "crypto/evp/encode.o", + "crypto/evp/evp_cnf.o", + "crypto/evp/evp_enc.o", + "crypto/evp/evp_err.o", + "crypto/evp/evp_key.o", + "crypto/evp/evp_lib.o", + "crypto/evp/evp_pbe.o", + "crypto/evp/evp_pkey.o", + "crypto/evp/m_md2.o", + "crypto/evp/m_md4.o", + "crypto/evp/m_md5.o", + "crypto/evp/m_md5_sha1.o", + "crypto/evp/m_mdc2.o", + "crypto/evp/m_null.o", + "crypto/evp/m_ripemd.o", + "crypto/evp/m_sha1.o", + "crypto/evp/m_sha3.o", + "crypto/evp/m_sigver.o", + "crypto/evp/m_wp.o", + "crypto/evp/names.o", + "crypto/evp/p5_crpt.o", + "crypto/evp/p5_crpt2.o", + "crypto/evp/p_dec.o", + "crypto/evp/p_enc.o", + "crypto/evp/p_lib.o", + "crypto/evp/p_open.o", + "crypto/evp/p_seal.o", + "crypto/evp/p_sign.o", + "crypto/evp/p_verify.o", + "crypto/evp/pbe_scrypt.o", + "crypto/evp/pmeth_fn.o", + "crypto/evp/pmeth_gn.o", + "crypto/evp/pmeth_lib.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/hmac" => + { + "deps" => + [ + "crypto/hmac/hm_ameth.o", + "crypto/hmac/hm_pmeth.o", + "crypto/hmac/hmac.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/idea" => + { + "deps" => + [ + "crypto/idea/i_cbc.o", + "crypto/idea/i_cfb64.o", + "crypto/idea/i_ecb.o", + "crypto/idea/i_ofb64.o", + "crypto/idea/i_skey.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/kdf" => + { + "deps" => + [ + "crypto/kdf/hkdf.o", + "crypto/kdf/kdf_err.o", + "crypto/kdf/scrypt.o", + "crypto/kdf/tls1_prf.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/lhash" => + { + "deps" => + [ + "crypto/lhash/lh_stats.o", + "crypto/lhash/lhash.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/md4" => + { + "deps" => + [ + "crypto/md4/md4_dgst.o", + "crypto/md4/md4_one.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/md5" => + { + "deps" => + [ + "crypto/md5/md5-x86_64.o", + "crypto/md5/md5_dgst.o", + "crypto/md5/md5_one.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/mdc2" => + { + "deps" => + [ + "crypto/mdc2/mdc2_one.o", + "crypto/mdc2/mdc2dgst.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/modes" => + { + "deps" => + [ + "crypto/modes/aesni-gcm-x86_64.o", + "crypto/modes/cbc128.o", + "crypto/modes/ccm128.o", + "crypto/modes/cfb128.o", + "crypto/modes/ctr128.o", + "crypto/modes/cts128.o", + "crypto/modes/gcm128.o", + "crypto/modes/ghash-x86_64.o", + "crypto/modes/ocb128.o", + "crypto/modes/ofb128.o", + "crypto/modes/wrap128.o", + "crypto/modes/xts128.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/objects" => + { + "deps" => + [ + "crypto/objects/o_names.o", + "crypto/objects/obj_dat.o", + "crypto/objects/obj_err.o", + "crypto/objects/obj_lib.o", + "crypto/objects/obj_xref.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ocsp" => + { + "deps" => + [ + "crypto/ocsp/ocsp_asn.o", + "crypto/ocsp/ocsp_cl.o", + "crypto/ocsp/ocsp_err.o", + "crypto/ocsp/ocsp_ext.o", + "crypto/ocsp/ocsp_ht.o", + "crypto/ocsp/ocsp_lib.o", + "crypto/ocsp/ocsp_prn.o", + "crypto/ocsp/ocsp_srv.o", + "crypto/ocsp/ocsp_vfy.o", + "crypto/ocsp/v3_ocsp.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/pem" => + { + "deps" => + [ + "crypto/pem/pem_all.o", + "crypto/pem/pem_err.o", + "crypto/pem/pem_info.o", + "crypto/pem/pem_lib.o", + "crypto/pem/pem_oth.o", + "crypto/pem/pem_pk8.o", + "crypto/pem/pem_pkey.o", + "crypto/pem/pem_sign.o", + "crypto/pem/pem_x509.o", + "crypto/pem/pem_xaux.o", + "crypto/pem/pvkfmt.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/pkcs12" => + { + "deps" => + [ + "crypto/pkcs12/p12_add.o", + "crypto/pkcs12/p12_asn.o", + "crypto/pkcs12/p12_attr.o", + "crypto/pkcs12/p12_crpt.o", + "crypto/pkcs12/p12_crt.o", + "crypto/pkcs12/p12_decr.o", + "crypto/pkcs12/p12_init.o", + "crypto/pkcs12/p12_key.o", + "crypto/pkcs12/p12_kiss.o", + "crypto/pkcs12/p12_mutl.o", + "crypto/pkcs12/p12_npas.o", + "crypto/pkcs12/p12_p8d.o", + "crypto/pkcs12/p12_p8e.o", + "crypto/pkcs12/p12_sbag.o", + "crypto/pkcs12/p12_utl.o", + "crypto/pkcs12/pk12err.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/pkcs7" => + { + "deps" => + [ + "crypto/pkcs7/bio_pk7.o", + "crypto/pkcs7/pk7_asn1.o", + "crypto/pkcs7/pk7_attr.o", + "crypto/pkcs7/pk7_doit.o", + "crypto/pkcs7/pk7_lib.o", + "crypto/pkcs7/pk7_mime.o", + "crypto/pkcs7/pk7_smime.o", + "crypto/pkcs7/pkcs7err.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/poly1305" => + { + "deps" => + [ + "crypto/poly1305/poly1305-x86_64.o", + "crypto/poly1305/poly1305.o", + "crypto/poly1305/poly1305_ameth.o", + "crypto/poly1305/poly1305_pmeth.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/rand" => + { + "deps" => + [ + "crypto/rand/drbg_ctr.o", + "crypto/rand/drbg_lib.o", + "crypto/rand/rand_egd.o", + "crypto/rand/rand_err.o", + "crypto/rand/rand_lib.o", + "crypto/rand/rand_unix.o", + "crypto/rand/rand_vms.o", + "crypto/rand/rand_win.o", + "crypto/rand/randfile.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/rc2" => + { + "deps" => + [ + "crypto/rc2/rc2_cbc.o", + "crypto/rc2/rc2_ecb.o", + "crypto/rc2/rc2_skey.o", + "crypto/rc2/rc2cfb64.o", + "crypto/rc2/rc2ofb64.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/rc4" => + { + "deps" => + [ + "crypto/rc4/rc4-md5-x86_64.o", + "crypto/rc4/rc4-x86_64.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ripemd" => + { + "deps" => + [ + "crypto/ripemd/rmd_dgst.o", + "crypto/ripemd/rmd_one.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/rsa" => + { + "deps" => + [ + "crypto/rsa/rsa_ameth.o", + "crypto/rsa/rsa_asn1.o", + "crypto/rsa/rsa_chk.o", + "crypto/rsa/rsa_crpt.o", + "crypto/rsa/rsa_depr.o", + "crypto/rsa/rsa_err.o", + "crypto/rsa/rsa_gen.o", + "crypto/rsa/rsa_lib.o", + "crypto/rsa/rsa_meth.o", + "crypto/rsa/rsa_mp.o", + "crypto/rsa/rsa_none.o", + "crypto/rsa/rsa_oaep.o", + "crypto/rsa/rsa_ossl.o", + "crypto/rsa/rsa_pk1.o", + "crypto/rsa/rsa_pmeth.o", + "crypto/rsa/rsa_prn.o", + "crypto/rsa/rsa_pss.o", + "crypto/rsa/rsa_saos.o", + "crypto/rsa/rsa_sign.o", + "crypto/rsa/rsa_ssl.o", + "crypto/rsa/rsa_x931.o", + "crypto/rsa/rsa_x931g.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/seed" => + { + "deps" => + [ + "crypto/seed/seed.o", + "crypto/seed/seed_cbc.o", + "crypto/seed/seed_cfb.o", + "crypto/seed/seed_ecb.o", + "crypto/seed/seed_ofb.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/sha" => + { + "deps" => + [ + "crypto/sha/keccak1600-x86_64.o", + "crypto/sha/sha1-mb-x86_64.o", + "crypto/sha/sha1-x86_64.o", + "crypto/sha/sha1_one.o", + "crypto/sha/sha1dgst.o", + "crypto/sha/sha256-mb-x86_64.o", + "crypto/sha/sha256-x86_64.o", + "crypto/sha/sha256.o", + "crypto/sha/sha512-x86_64.o", + "crypto/sha/sha512.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/siphash" => + { + "deps" => + [ + "crypto/siphash/siphash.o", + "crypto/siphash/siphash_ameth.o", + "crypto/siphash/siphash_pmeth.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/sm2" => + { + "deps" => + [ + "crypto/sm2/sm2_crypt.o", + "crypto/sm2/sm2_err.o", + "crypto/sm2/sm2_pmeth.o", + "crypto/sm2/sm2_sign.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/sm3" => + { + "deps" => + [ + "crypto/sm3/m_sm3.o", + "crypto/sm3/sm3.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/sm4" => + { + "deps" => + [ + "crypto/sm4/sm4.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/srp" => + { + "deps" => + [ + "crypto/srp/srp_lib.o", + "crypto/srp/srp_vfy.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/stack" => + { + "deps" => + [ + "crypto/stack/stack.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/store" => + { + "deps" => + [ + "crypto/store/loader_file.o", + "crypto/store/store_err.o", + "crypto/store/store_init.o", + "crypto/store/store_lib.o", + "crypto/store/store_register.o", + "crypto/store/store_strings.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ts" => + { + "deps" => + [ + "crypto/ts/ts_asn1.o", + "crypto/ts/ts_conf.o", + "crypto/ts/ts_err.o", + "crypto/ts/ts_lib.o", + "crypto/ts/ts_req_print.o", + "crypto/ts/ts_req_utils.o", + "crypto/ts/ts_rsp_print.o", + "crypto/ts/ts_rsp_sign.o", + "crypto/ts/ts_rsp_utils.o", + "crypto/ts/ts_rsp_verify.o", + "crypto/ts/ts_verify_ctx.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/txt_db" => + { + "deps" => + [ + "crypto/txt_db/txt_db.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/ui" => + { + "deps" => + [ + "crypto/ui/ui_err.o", + "crypto/ui/ui_lib.o", + "crypto/ui/ui_null.o", + "crypto/ui/ui_openssl.o", + "crypto/ui/ui_util.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/whrlpool" => + { + "deps" => + [ + "crypto/whrlpool/wp-x86_64.o", + "crypto/whrlpool/wp_dgst.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/x509" => + { + "deps" => + [ + "crypto/x509/by_dir.o", + "crypto/x509/by_file.o", + "crypto/x509/t_crl.o", + "crypto/x509/t_req.o", + "crypto/x509/t_x509.o", + "crypto/x509/x509_att.o", + "crypto/x509/x509_cmp.o", + "crypto/x509/x509_d2.o", + "crypto/x509/x509_def.o", + "crypto/x509/x509_err.o", + "crypto/x509/x509_ext.o", + "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", + "crypto/x509/x509_obj.o", + "crypto/x509/x509_r2x.o", + "crypto/x509/x509_req.o", + "crypto/x509/x509_set.o", + "crypto/x509/x509_trs.o", + "crypto/x509/x509_txt.o", + "crypto/x509/x509_v3.o", + "crypto/x509/x509_vfy.o", + "crypto/x509/x509_vpm.o", + "crypto/x509/x509cset.o", + "crypto/x509/x509name.o", + "crypto/x509/x509rset.o", + "crypto/x509/x509spki.o", + "crypto/x509/x509type.o", + "crypto/x509/x_all.o", + "crypto/x509/x_attrib.o", + "crypto/x509/x_crl.o", + "crypto/x509/x_exten.o", + "crypto/x509/x_name.o", + "crypto/x509/x_pubkey.o", + "crypto/x509/x_req.o", + "crypto/x509/x_x509.o", + "crypto/x509/x_x509a.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "crypto/x509v3" => + { + "deps" => + [ + "crypto/x509v3/pcy_cache.o", + "crypto/x509v3/pcy_data.o", + "crypto/x509v3/pcy_lib.o", + "crypto/x509v3/pcy_map.o", + "crypto/x509v3/pcy_node.o", + "crypto/x509v3/pcy_tree.o", + "crypto/x509v3/v3_addr.o", + "crypto/x509v3/v3_admis.o", + "crypto/x509v3/v3_akey.o", + "crypto/x509v3/v3_akeya.o", + "crypto/x509v3/v3_alt.o", + "crypto/x509v3/v3_asid.o", + "crypto/x509v3/v3_bcons.o", + "crypto/x509v3/v3_bitst.o", + "crypto/x509v3/v3_conf.o", + "crypto/x509v3/v3_cpols.o", + "crypto/x509v3/v3_crld.o", + "crypto/x509v3/v3_enum.o", + "crypto/x509v3/v3_extku.o", + "crypto/x509v3/v3_genn.o", + "crypto/x509v3/v3_ia5.o", + "crypto/x509v3/v3_info.o", + "crypto/x509v3/v3_int.o", + "crypto/x509v3/v3_lib.o", + "crypto/x509v3/v3_ncons.o", + "crypto/x509v3/v3_pci.o", + "crypto/x509v3/v3_pcia.o", + "crypto/x509v3/v3_pcons.o", + "crypto/x509v3/v3_pku.o", + "crypto/x509v3/v3_pmaps.o", + "crypto/x509v3/v3_prn.o", + "crypto/x509v3/v3_purp.o", + "crypto/x509v3/v3_skey.o", + "crypto/x509v3/v3_sxnet.o", + "crypto/x509v3/v3_tlsf.o", + "crypto/x509v3/v3_utl.o", + "crypto/x509v3/v3err.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "engines" => + { + "deps" => + [ + "engines/e_capi.o", + "engines/e_padlock-x86_64.o", + "engines/e_padlock.o", + ], + "products" => + { + "lib" => + [ + "libcrypto", + ], + }, + }, + "fuzz" => + { + "products" => + { + "bin" => + [ + "fuzz/asn1-test", + "fuzz/asn1parse-test", + "fuzz/bignum-test", + "fuzz/bndiv-test", + "fuzz/client-test", + "fuzz/cms-test", + "fuzz/conf-test", + "fuzz/crl-test", + "fuzz/ct-test", + "fuzz/server-test", + "fuzz/x509-test", + ], + }, + }, + "ssl" => + { + "deps" => + [ + "ssl/bio_ssl.o", + "ssl/d1_lib.o", + "ssl/d1_msg.o", + "ssl/d1_srtp.o", + "ssl/methods.o", + "ssl/packet.o", + "ssl/pqueue.o", + "ssl/s3_cbc.o", + "ssl/s3_enc.o", + "ssl/s3_lib.o", + "ssl/s3_msg.o", + "ssl/ssl_asn1.o", + "ssl/ssl_cert.o", + "ssl/ssl_ciph.o", + "ssl/ssl_conf.o", + "ssl/ssl_err.o", + "ssl/ssl_init.o", + "ssl/ssl_lib.o", + "ssl/ssl_mcnf.o", + "ssl/ssl_rsa.o", + "ssl/ssl_sess.o", + "ssl/ssl_stat.o", + "ssl/ssl_txt.o", + "ssl/ssl_utst.o", + "ssl/t1_enc.o", + "ssl/t1_lib.o", + "ssl/t1_trce.o", + "ssl/tls13_enc.o", + "ssl/tls_srp.o", + ], + "products" => + { + "lib" => + [ + "libssl", + ], + }, + }, + "ssl/record" => + { + "deps" => + [ + "ssl/record/dtls1_bitmap.o", + "ssl/record/rec_layer_d1.o", + "ssl/record/rec_layer_s3.o", + "ssl/record/ssl3_buffer.o", + "ssl/record/ssl3_record.o", + "ssl/record/ssl3_record_tls13.o", + ], + "products" => + { + "lib" => + [ + "libssl", + ], + }, + }, + "ssl/statem" => + { + "deps" => + [ + "ssl/statem/extensions.o", + "ssl/statem/extensions_clnt.o", + "ssl/statem/extensions_cust.o", + "ssl/statem/extensions_srvr.o", + "ssl/statem/statem.o", + "ssl/statem/statem_clnt.o", + "ssl/statem/statem_dtls.o", + "ssl/statem/statem_lib.o", + "ssl/statem/statem_srvr.o", + ], + "products" => + { + "lib" => + [ + "libssl", + ], + }, + }, + "test/testutil" => + { + "deps" => + [ + "test/testutil/basic_output.o", + "test/testutil/cb.o", + "test/testutil/driver.o", + "test/testutil/format_output.o", + "test/testutil/init.o", + "test/testutil/main.o", + "test/testutil/output_helpers.o", + "test/testutil/stanza.o", + "test/testutil/tap_bio.o", + "test/testutil/test_cleanup.o", + "test/testutil/tests.o", + ], + "products" => + { + "lib" => + [ + "test/libtestutil.a", + ], + }, + }, + "tools" => + { + "products" => + { + "script" => + [ + "tools/c_rehash.pl", + ], + }, + }, + }, "engines" => [ ], @@ -1312,6 +3299,11 @@ our %unified_info = ( ], "generate" => { + "apps/openssl.rc" => + [ + "util/mkrc.pl", + "openssl", + ], "apps/progs.h" => [ "apps/progs.pl", @@ -1321,8 +3313,8 @@ our %unified_info = ( [ "crypto/aes/asm/aes-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/aes/aes-armv4.S" => @@ -1388,8 +3380,8 @@ our %unified_info = ( [ "crypto/aes/asm/aesni-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/aes/aesni-x86_64.s" => @@ -1436,8 +3428,8 @@ our %unified_info = ( [ "crypto/aes/asm/vpaes-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/aes/vpaes-x86_64.s" => @@ -1463,8 +3455,8 @@ our %unified_info = ( [ "crypto/bf/asm/bf-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/bn/alpha-mont.S" => @@ -1491,15 +3483,15 @@ our %unified_info = ( [ "crypto/bn/asm/bn-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/bn/bn-ia64.s" => [ "crypto/bn/asm/ia64.S", ], - "crypto/bn/bn-mips.s" => + "crypto/bn/bn-mips.S" => [ "crypto/bn/asm/mips.pl", "\$(PERLASM_SCHEME)", @@ -1513,17 +3505,17 @@ our %unified_info = ( [ "crypto/bn/asm/co-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/bn/ia64-mont.s" => [ "crypto/bn/asm/ia64-mont.pl", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], - "crypto/bn/mips-mont.s" => + "crypto/bn/mips-mont.S" => [ "crypto/bn/asm/mips-mont.pl", "\$(PERLASM_SCHEME)", @@ -1592,16 +3584,16 @@ our %unified_info = ( [ "crypto/bn/asm/x86-gf2m.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/bn/x86-mont.s" => [ "crypto/bn/asm/x86-mont.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/bn/x86_64-gf2m.s" => @@ -1623,15 +3615,16 @@ our %unified_info = ( [ "util/mkbuildinf.pl", "\"\$(CC)", - "\$(CFLAGS_Q)\"", + "\$(LIB_CFLAGS)", + "\$(CPPFLAGS_Q)\"", "\"\$(PLATFORM)\"", ], "crypto/camellia/cmll-x86.s" => [ "crypto/camellia/asm/cmll-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/camellia/cmll-x86_64.s" => @@ -1648,8 +3641,8 @@ our %unified_info = ( [ "crypto/cast/asm/cast-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/chacha/chacha-armv4.S" => @@ -1676,8 +3669,8 @@ our %unified_info = ( [ "crypto/chacha/asm/chacha-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/chacha/chacha-x86_64.s" => @@ -1689,15 +3682,15 @@ our %unified_info = ( [ "crypto/des/asm/crypt586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/des/des-586.s" => [ "crypto/des/asm/des-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/des/des_enc-sparc.S" => [ @@ -1723,6 +3716,11 @@ our %unified_info = ( "crypto/ec/asm/ecp_nistz256-avx2.pl", "\$(PERLASM_SCHEME)", ], + "crypto/ec/ecp_nistz256-ppc64.s" => + [ + "crypto/ec/asm/ecp_nistz256-ppc64.pl", + "\$(PERLASM_SCHEME)", + ], "crypto/ec/ecp_nistz256-sparcv9.S" => [ "crypto/ec/asm/ecp_nistz256-sparcv9.pl", @@ -1732,8 +3730,8 @@ our %unified_info = ( [ "crypto/ec/asm/ecp_nistz256-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/ec/ecp_nistz256-x86_64.s" => @@ -1741,6 +3739,16 @@ our %unified_info = ( "crypto/ec/asm/ecp_nistz256-x86_64.pl", "\$(PERLASM_SCHEME)", ], + "crypto/ec/x25519-ppc64.s" => + [ + "crypto/ec/asm/x25519-ppc64.pl", + "\$(PERLASM_SCHEME)", + ], + "crypto/ec/x25519-x86_64.s" => + [ + "crypto/ec/asm/x25519-x86_64.pl", + "\$(PERLASM_SCHEME)", + ], "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S", @@ -1757,8 +3765,8 @@ our %unified_info = ( [ "crypto/md5/asm/md5-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/md5/md5-sparcv9.S" => [ @@ -1788,8 +3796,8 @@ our %unified_info = ( "crypto/modes/ghash-ia64.s" => [ "crypto/modes/asm/ghash-ia64.pl", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/modes/ghash-parisc.s" => [ @@ -1810,8 +3818,8 @@ our %unified_info = ( [ "crypto/modes/asm/ghash-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/modes/ghash-x86_64.s" => @@ -1873,8 +3881,8 @@ our %unified_info = ( [ "crypto/poly1305/asm/poly1305-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/poly1305/poly1305-x86_64.s" => @@ -1891,8 +3899,8 @@ our %unified_info = ( [ "crypto/rc4/asm/rc4-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/rc4/rc4-md5-x86_64.s" => @@ -1919,15 +3927,45 @@ our %unified_info = ( [ "crypto/ripemd/asm/rmd-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", + ], + "crypto/s390xcpuid.S" => + [ + "crypto/s390xcpuid.pl", + "\$(PERLASM_SCHEME)", + ], + "crypto/sha/keccak1600-armv4.S" => + [ + "crypto/sha/asm/keccak1600-armv4.pl", + "\$(PERLASM_SCHEME)", + ], + "crypto/sha/keccak1600-armv8.S" => + [ + "crypto/sha/asm/keccak1600-armv8.pl", + "\$(PERLASM_SCHEME)", + ], + "crypto/sha/keccak1600-ppc64.s" => + [ + "crypto/sha/asm/keccak1600-ppc64.pl", + "\$(PERLASM_SCHEME)", + ], + "crypto/sha/keccak1600-s390x.S" => + [ + "crypto/sha/asm/keccak1600-s390x.pl", + "\$(PERLASM_SCHEME)", + ], + "crypto/sha/keccak1600-x86_64.s" => + [ + "crypto/sha/asm/keccak1600-x86_64.pl", + "\$(PERLASM_SCHEME)", ], "crypto/sha/sha1-586.s" => [ "crypto/sha/asm/sha1-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/sha/sha1-alpha.S" => @@ -1948,8 +3986,8 @@ our %unified_info = ( "crypto/sha/sha1-ia64.s" => [ "crypto/sha/asm/sha1-ia64.pl", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/sha/sha1-mb-x86_64.s" => [ @@ -1990,8 +4028,8 @@ our %unified_info = ( [ "crypto/sha/asm/sha256-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/sha/sha256-armv4.S" => @@ -2007,8 +4045,8 @@ our %unified_info = ( "crypto/sha/sha256-ia64.s" => [ "crypto/sha/asm/sha512-ia64.pl", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/sha/sha256-mb-x86_64.s" => [ @@ -2054,8 +4092,8 @@ our %unified_info = ( [ "crypto/sha/asm/sha512-586.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/sha/sha512-armv4.S" => @@ -2071,8 +4109,8 @@ our %unified_info = ( "crypto/sha/sha512-ia64.s" => [ "crypto/sha/asm/sha512-ia64.pl", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", ], "crypto/sha/sha512-mips.S" => [ @@ -2128,8 +4166,8 @@ our %unified_info = ( [ "crypto/whrlpool/asm/wp-mmx.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "crypto/whrlpool/wp-x86_64.s" => @@ -2146,16 +4184,16 @@ our %unified_info = ( [ "crypto/x86cpuid.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "engines/e_padlock-x86.s" => [ "engines/asm/e_padlock-x86.pl", "\$(PERLASM_SCHEME)", - "\$(CFLAGS)", "\$(LIB_CFLAGS)", + "\$(LIB_CPPFLAGS)", "\$(PROCESSOR)", ], "engines/e_padlock-x86_64.s" => @@ -2167,6 +4205,28 @@ our %unified_info = ( [ "include/openssl/opensslconf.h.in", ], + "libcrypto.def" => + [ + "util/mkdef.pl", + "crypto", + "32", + ], + "libcrypto.rc" => + [ + "util/mkrc.pl", + "libcrypto", + ], + "libssl.def" => + [ + "util/mkdef.pl", + "ssl", + "32", + ], + "libssl.rc" => + [ + "util/mkrc.pl", + "libssl", + ], "test/buildtest_aes.c" => [ "test/generate_buildtest.pl", @@ -2297,11 +4357,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "engine", ], - "test/buildtest_err.c" => - [ - "test/generate_buildtest.pl", - "err", - ], "test/buildtest_evp.c" => [ "test/generate_buildtest.pl", @@ -2397,6 +4452,11 @@ our %unified_info = ( "test/generate_buildtest.pl", "rand", ], + "test/buildtest_rand_drbg.c" => + [ + "test/generate_buildtest.pl", + "rand_drbg", + ], "test/buildtest_rc2.c" => [ "test/generate_buildtest.pl", @@ -2457,6 +4517,11 @@ our %unified_info = ( "test/generate_buildtest.pl", "stack", ], + "test/buildtest_store.c" => + [ + "test/generate_buildtest.pl", + "store", + ], "test/buildtest_symhacks.c" => [ "test/generate_buildtest.pl", @@ -2509,13 +4574,11 @@ our %unified_info = ( [ ".", "include", - "apps", ], "apps/apps.o" => [ ".", "include", - "apps", ], "apps/asn1pars.o" => [ @@ -2523,6 +4586,11 @@ our %unified_info = ( "include", "apps", ], + "apps/bf_prefix.o" => + [ + ".", + "include", + ], "apps/ca.o" => [ ".", @@ -2647,7 +4715,6 @@ our %unified_info = ( [ ".", "include", - "apps", ], "apps/passwd.o" => [ @@ -2735,7 +4802,6 @@ our %unified_info = ( [ ".", "include", - "apps", ], "apps/s_client.o" => [ @@ -2753,7 +4819,6 @@ our %unified_info = ( [ ".", "include", - "apps", ], "apps/s_time.o" => [ @@ -2791,6 +4856,12 @@ our %unified_info = ( "include", "apps", ], + "apps/storeutl.o" => + [ + ".", + "include", + "apps", + ], "apps/ts.o" => [ ".", @@ -2813,7 +4884,6 @@ our %unified_info = ( [ ".", "include", - "apps", ], "apps/x509.o" => [ @@ -2825,6 +4895,10 @@ our %unified_info = ( [ "crypto", ], + "crypto/aes/aes-mips.o" => + [ + "crypto", + ], "crypto/aes/aes-s390x.o" => [ "crypto", @@ -2927,6 +5001,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/aria/aria.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/arm64cpuid.o" => [ "crypto", @@ -3067,6 +5147,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/asn1/asn1_item_list.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/asn1/asn1_lib.o" => [ ".", @@ -3549,6 +5635,10 @@ our %unified_info = ( [ "crypto", ], + "crypto/bn/bn-mips.o" => + [ + "crypto", + ], "crypto/bn/bn_add.o" => [ ".", @@ -3736,6 +5826,10 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/bn/mips-mont.o" => + [ + "crypto", + ], "crypto/bn/rsaz-avx2.o" => [ ".", @@ -4118,6 +6212,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/ctype.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cversion.o" => [ ".", @@ -4225,12 +6325,6 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/des/rpc_enc.o" => - [ - ".", - "crypto/include", - "include", - ], "crypto/des/set_key.o" => [ ".", @@ -4327,7 +6421,7 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/dllmain.o" => + "crypto/dh/dh_rfc7919.o" => [ ".", "crypto/include", @@ -4465,11 +6559,53 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/ec/ec2_mult.o" => + "crypto/ec/curve448/arch_32/f_impl.o" => + [ + ".", + "crypto/include", + "include", + "crypto/ec/curve448/arch_32", + "crypto/ec/curve448", + ], + "crypto/ec/curve448/curve448.o" => [ ".", "crypto/include", "include", + "crypto/ec/curve448/arch_32", + "crypto/ec/curve448", + ], + "crypto/ec/curve448/curve448_tables.o" => + [ + ".", + "crypto/include", + "include", + "crypto/ec/curve448/arch_32", + "crypto/ec/curve448", + ], + "crypto/ec/curve448/eddsa.o" => + [ + ".", + "crypto/include", + "include", + "crypto/ec/curve448/arch_32", + "crypto/ec/curve448", + ], + "crypto/ec/curve448/f_generic.o" => + [ + ".", + "crypto/include", + "include", + "crypto/ec/curve448/arch_32", + "crypto/ec/curve448", + ], + "crypto/ec/curve448/scalar.o" => + [ + ".", + "crypto/include", + "include", + "crypto/ec/curve448/arch_32", + "crypto/ec/curve448", ], "crypto/ec/ec2_oct.o" => [ @@ -4675,19 +6811,19 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/engine/eng_all.o" => + "crypto/ec/x25519-x86_64.o" => [ ".", "crypto/include", "include", ], - "crypto/engine/eng_cnf.o" => + "crypto/engine/eng_all.o" => [ ".", "crypto/include", "include", ], - "crypto/engine/eng_cryptodev.o" => + "crypto/engine/eng_cnf.o" => [ ".", "crypto/include", @@ -4901,6 +7037,14 @@ our %unified_info = ( "include", "crypto/modes", ], + "crypto/evp/e_aria.o" => + [ + ".", + "crypto/include", + "include", + "crypto", + "crypto/modes", + ], "crypto/evp/e_bf.o" => [ ".", @@ -4989,6 +7133,14 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/evp/e_sm4.o" => + [ + ".", + "crypto/include", + "include", + "crypto", + "crypto/modes", + ], "crypto/evp/e_xcbc_d.o" => [ ".", @@ -5091,6 +7243,13 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/evp/m_sha3.o" => + [ + ".", + "crypto/include", + "include", + "crypto", + ], "crypto/evp/m_sigver.o" => [ ".", @@ -5163,25 +7322,25 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/evp/pmeth_fn.o" => + "crypto/evp/pbe_scrypt.o" => [ ".", "crypto/include", "include", ], - "crypto/evp/pmeth_gn.o" => + "crypto/evp/pmeth_fn.o" => [ ".", "crypto/include", "include", ], - "crypto/evp/pmeth_lib.o" => + "crypto/evp/pmeth_gn.o" => [ ".", "crypto/include", "include", ], - "crypto/evp/scrypt.o" => + "crypto/evp/pmeth_lib.o" => [ ".", "crypto/include", @@ -5273,6 +7432,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/kdf/scrypt.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/kdf/tls1_prf.o" => [ ".", @@ -5788,6 +7953,10 @@ our %unified_info = ( [ "crypto", ], + "crypto/poly1305/poly1305-mips.o" => + [ + "crypto", + ], "crypto/poly1305/poly1305-s390x.o" => [ "crypto", @@ -5808,7 +7977,25 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/rand/md_rand.o" => + "crypto/poly1305/poly1305_ameth.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/poly1305/poly1305_pmeth.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/rand/drbg_ctr.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/rand/drbg_lib.o" => [ ".", "crypto/include", @@ -5964,13 +8151,13 @@ our %unified_info = ( "crypto/include", "include", ], - "crypto/rsa/rsa_none.o" => + "crypto/rsa/rsa_mp.o" => [ ".", "crypto/include", "include", ], - "crypto/rsa/rsa_null.o" => + "crypto/rsa/rsa_none.o" => [ ".", "crypto/include", @@ -6042,6 +8229,10 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/s390xcpuid.o" => + [ + "crypto", + ], "crypto/seed/seed.o" => [ ".", @@ -6072,6 +8263,16 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/sha/keccak1600-armv4.o" => + [ + "crypto", + ], + "crypto/sha/keccak1600-x86_64.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto", @@ -6086,6 +8287,10 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/sha/sha1-mips.o" => + [ + "crypto", + ], "crypto/sha/sha1-s390x.o" => [ "crypto", @@ -6126,6 +8331,10 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/sha/sha256-mips.o" => + [ + "crypto", + ], "crypto/sha/sha256-s390x.o" => [ "crypto", @@ -6154,6 +8363,10 @@ our %unified_info = ( [ "crypto", ], + "crypto/sha/sha512-mips.o" => + [ + "crypto", + ], "crypto/sha/sha512-s390x.o" => [ "crypto", @@ -6174,6 +8387,66 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/siphash/siphash.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/siphash/siphash_ameth.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/siphash/siphash_pmeth.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm2/sm2_crypt.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm2/sm2_err.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm2/sm2_pmeth.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm2/sm2_sign.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm3/m_sm3.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm3/sm3.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/sm4/sm4.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/srp/srp_lib.o" => [ ".", @@ -6192,6 +8465,42 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/store/loader_file.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/store/store_err.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/store/store_init.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/store/store_lib.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/store/store_register.o" => + [ + ".", + "crypto/include", + "include", + ], + "crypto/store/store_strings.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/threads_none.o" => [ ".", @@ -6294,6 +8603,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/ui/ui_null.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/ui/ui_openssl.o" => [ ".", @@ -6582,6 +8897,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509v3/v3_admis.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509v3/v3_akey.o" => [ ".", @@ -6796,6 +9117,10 @@ our %unified_info = ( [ "include", ], + "fuzz/client.o" => + [ + "include", + ], "fuzz/cms.o" => [ "include", @@ -6853,6 +9178,11 @@ our %unified_info = ( ".", "include", ], + "ssl/packet.o" => + [ + ".", + "include", + ], "ssl/pqueue.o" => [ ".", @@ -6883,6 +9213,11 @@ our %unified_info = ( ".", "include", ], + "ssl/record/ssl3_record_tls13.o" => + [ + ".", + "include", + ], "ssl/s3_cbc.o" => [ ".", @@ -6968,6 +9303,26 @@ our %unified_info = ( ".", "include", ], + "ssl/statem/extensions.o" => + [ + ".", + "include", + ], + "ssl/statem/extensions_clnt.o" => + [ + ".", + "include", + ], + "ssl/statem/extensions_cust.o" => + [ + ".", + "include", + ], + "ssl/statem/extensions_srvr.o" => + [ + ".", + "include", + ], "ssl/statem/statem.o" => [ ".", @@ -6998,22 +9353,17 @@ our %unified_info = ( ".", "include", ], - "ssl/t1_ext.o" => - [ - ".", - "include", - ], "ssl/t1_lib.o" => [ ".", "include", ], - "ssl/t1_reneg.o" => + "ssl/t1_trce.o" => [ ".", "include", ], - "ssl/t1_trce.o" => + "ssl/tls13_enc.o" => [ ".", "include", @@ -7029,8 +9379,29 @@ our %unified_info = ( ], "test/afalgtest.o" => [ + "include", + ], + "test/asn1_decode_test.o" => + [ + "include", + ], + "test/asn1_encode_test.o" => + [ + "include", + ], + "test/asn1_internal_test.o" => + [ ".", "include", + "crypto/include", + ], + "test/asn1_string_table_test.o" => + [ + "include", + ], + "test/asn1_time_test.o" => + [ + "include", ], "test/asynciotest.o" => [ @@ -7038,7 +9409,6 @@ our %unified_info = ( ], "test/asynctest.o" => [ - ".", "include", ], "test/bad_dtls_test.o" => @@ -7049,6 +9419,10 @@ our %unified_info = ( [ "include", ], + "test/bio_callback_test.o" => + [ + "include", + ], "test/bio_enc_test.o" => [ "include", @@ -7059,8 +9433,6 @@ our %unified_info = ( ], "test/bntest.o" => [ - ".", - "crypto/include", "include", ], "test/buildtest_aes.o" => @@ -7167,10 +9539,6 @@ our %unified_info = ( [ "include", ], - "test/buildtest_err.o" => - [ - "include", - ], "test/buildtest_evp.o" => [ "include", @@ -7247,6 +9615,10 @@ our %unified_info = ( [ "include", ], + "test/buildtest_rand_drbg.o" => + [ + "include", + ], "test/buildtest_rc2.o" => [ "include", @@ -7295,6 +9667,10 @@ our %unified_info = ( [ "include", ], + "test/buildtest_store.o" => + [ + "include", + ], "test/buildtest_symhacks.o" => [ "include", @@ -7335,18 +9711,43 @@ our %unified_info = ( [ "include", ], - "test/cipherlist_test.o" => + "test/chacha_internal_test.o" => + [ + ".", + "include", + "crypto/include", + ], + "test/cipher_overhead_test.o" => [ ".", "include", ], + "test/cipherbytes_test.o" => + [ + "include", + ], + "test/cipherlist_test.o" => + [ + "include", + ], + "test/ciphername_test.o" => + [ + "include", + ], "test/clienthellotest.o" => [ "include", ], + "test/cmsapitest.o" => + [ + "include", + ], + "test/conf_include_test.o" => + [ + "include", + ], "test/constant_time_test.o" => [ - ".", "include", ], "test/crltest.o" => @@ -7355,13 +9756,23 @@ our %unified_info = ( ], "test/ct_test.o" => [ + "include", + ], + "test/ctype_internal_test.o" => + [ + ".", "crypto/include", "include", ], - "test/d2i_test.o" => + "test/curve448_internal_test.o" => [ ".", "include", + "crypto/ec/curve448", + ], + "test/d2i_test.o" => + [ + "include", ], "test/danetest.o" => [ @@ -7375,24 +9786,51 @@ our %unified_info = ( [ "include", ], + "test/drbg_cavs_data.o" => + [ + "include", + "test", + ".", + ], + "test/drbg_cavs_test.o" => + [ + "include", + "test", + ".", + ], + "test/drbgtest.o" => + [ + "include", + ], + "test/dsa_no_digest_size_test.o" => + [ + "include", + ], "test/dsatest.o" => [ "include", ], + "test/dtls_mtu_test.o" => + [ + ".", + "include", + ], "test/dtlstest.o" => [ "include", - "test", ], "test/dtlsv1listentest.o" => [ - ".", "include", ], "test/ecdsatest.o" => [ "include", ], + "test/ecstresstest.o" => + [ + "include", + ], "test/ectest.o" => [ "include", @@ -7408,6 +9846,7 @@ our %unified_info = ( "test/evp_extra_test.o" => [ "include", + "crypto/include", ], "test/evp_test.o" => [ @@ -7424,18 +9863,17 @@ our %unified_info = ( "test/fatalerrtest.o" => [ "include", - ".", ], "test/gmdifftest.o" => [ "include", ], - "test/handshake_helper.o" => + "test/gosttest.o" => [ - ".", "include", + ".", ], - "test/heartbeat_test.o" => + "test/handshake_helper.o" => [ ".", "include", @@ -7450,19 +9888,19 @@ our %unified_info = ( ], "test/igetest.o" => [ - ".", "include", ], - "test/md2test.o" => + "test/lhash_test.o" => [ "include", ], - "test/md4test.o" => + "test/md2test.o" => [ "include", ], - "test/md5test.o" => + "test/mdc2_internal_test.o" => [ + ".", "include", ], "test/mdc2test.o" => @@ -7473,12 +9911,12 @@ our %unified_info = ( [ "include", ], - "test/ocspapitest.o" => + "test/modes_internal_test.o" => [ - "include", ".", + "include", ], - "test/p5_crpt2_test.o" => + "test/ocspapitest.o" => [ "include", ], @@ -7490,10 +9928,24 @@ our %unified_info = ( [ "include", ], - "test/randtest.o" => + "test/pemtest.o" => + [ + "include", + ], + "test/pkey_meth_kdf_test.o" => + [ + "include", + ], + "test/pkey_meth_test.o" => [ "include", ], + "test/poly1305_internal_test.o" => + [ + ".", + "include", + "crypto/include", + ], "test/rc2test.o" => [ "include", @@ -7506,7 +9958,11 @@ our %unified_info = ( [ "include", ], - "test/rmdtest.o" => + "test/rdrand_sanitytest.o" => + [ + "include", + ], + "test/recordlentest.o" => [ "include", ], @@ -7514,9 +9970,12 @@ our %unified_info = ( [ "include", ], + "test/rsa_mp_test.o" => + [ + "include", + ], "test/rsa_test.o" => [ - ".", "include", ], "test/sanitytest.o" => @@ -7527,35 +9986,46 @@ our %unified_info = ( [ "include", ], - "test/sha1test.o" => + "test/servername_test.o" => [ "include", ], - "test/sha256t.o" => + "test/siphash_internal_test.o" => [ + ".", "include", + "crypto/include", ], - "test/sha512t.o" => + "test/sm2_internal_test.o" => [ "include", + "crypto/include", + ], + "test/sm4_internal_test.o" => + [ + ".", + "include", + "crypto/include", ], "test/srptest.o" => [ "include", ], - "test/ssl_test.o" => + "test/ssl_cert_table_internal_test.o" => [ ".", "include", ], + "test/ssl_test.o" => + [ + "include", + ], "test/ssl_test_ctx.o" => [ - ".", "include", ], "test/ssl_test_ctx_test.o" => [ - ".", "include", ], "test/sslapitest.o" => @@ -7563,10 +10033,13 @@ our %unified_info = ( "include", ".", ], + "test/sslbuffertest.o" => + [ + "include", + ], "test/sslcorrupttest.o" => [ "include", - "test", ], "test/ssltest_old.o" => [ @@ -7575,22 +10048,88 @@ our %unified_info = ( ], "test/ssltestlib.o" => [ - "test", ".", "include", ], - "test/testutil.o" => + "test/stack_test.o" => + [ + "include", + ], + "test/sysdefaulttest.o" => + [ + "include", + ], + "test/test_test.o" => + [ + "include", + ], + "test/testutil/basic_output.o" => + [ + "include", + ], + "test/testutil/cb.o" => + [ + "include", + ], + "test/testutil/driver.o" => + [ + "include", + ], + "test/testutil/format_output.o" => + [ + "include", + ], + "test/testutil/init.o" => + [ + "include", + ], + "test/testutil/main.o" => + [ + "include", + ], + "test/testutil/output_helpers.o" => + [ + "include", + ], + "test/testutil/stanza.o" => + [ + "include", + ], + "test/testutil/tap_bio.o" => + [ + "include", + ], + "test/testutil/test_cleanup.o" => + [ + "include", + ], + "test/testutil/tests.o" => [ - "crypto/include", - "test", "include", - ".", ], "test/threadstest.o" => [ + "include", + ], + "test/time_offset_test.o" => + [ + "include", + ], + "test/tls13ccstest.o" => + [ + "include", + ], + "test/tls13encryptiontest.o" => + [ ".", "include", ], + "test/uitest.o" => + [ + ".", + "include", + "apps", + ], "test/v3ext.o" => [ "include", @@ -7607,7 +10146,11 @@ our %unified_info = ( [ "include", ], - "test/wp_test.o" => + "test/wpackettest.o" => + [ + "include", + ], + "test/x509_check_cert_pkey_test.o" => [ "include", ], @@ -7615,11 +10158,15 @@ our %unified_info = ( [ "include", ], - "test/x509_time_test.o" => + "test/x509_internal_test.o" => [ ".", "include", ], + "test/x509_time_test.o" => + [ + "include", + ], "test/x509aux.o" => [ "include", @@ -7648,27 +10195,13 @@ our %unified_info = ( }, "libraries" => [ + "apps/libapps.a", "libcrypto", "libssl", + "test/libtestutil.a", ], - "ordinals" => - { - "libcrypto" => - [ - "crypto", - "util/libcrypto.num", - ], - "libssl" => - [ - "ssl", - "util/libssl.num", - ], - }, "overrides" => [ - "crypto/bn/bn-mips3.o", - "crypto/bn/pa-risc2.c", - "crypto/bn/pa-risc2W.o", ], "programs" => [ @@ -7677,6 +10210,7 @@ our %unified_info = ( "fuzz/asn1parse-test", "fuzz/bignum-test", "fuzz/bndiv-test", + "fuzz/client-test", "fuzz/cms-test", "fuzz/conf-test", "fuzz/crl-test", @@ -7685,10 +10219,16 @@ our %unified_info = ( "fuzz/x509-test", "test/aborttest", "test/afalgtest", + "test/asn1_decode_test", + "test/asn1_encode_test", + "test/asn1_internal_test", + "test/asn1_string_table_test", + "test/asn1_time_test", "test/asynciotest", "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_callback_test", "test/bio_enc_test", "test/bioprinttest", "test/bntest", @@ -7718,7 +10258,6 @@ our %unified_info = ( "test/buildtest_ecdh", "test/buildtest_ecdsa", "test/buildtest_engine", - "test/buildtest_err", "test/buildtest_evp", "test/buildtest_hmac", "test/buildtest_idea", @@ -7738,6 +10277,7 @@ our %unified_info = ( "test/buildtest_pkcs12", "test/buildtest_pkcs7", "test/buildtest_rand", + "test/buildtest_rand_drbg", "test/buildtest_rc2", "test/buildtest_rc4", "test/buildtest_ripemd", @@ -7750,6 +10290,7 @@ our %unified_info = ( "test/buildtest_ssl", "test/buildtest_ssl2", "test/buildtest_stack", + "test/buildtest_store", "test/buildtest_symhacks", "test/buildtest_tls1", "test/buildtest_ts", @@ -7760,19 +10301,32 @@ our %unified_info = ( "test/buildtest_x509_vfy", "test/buildtest_x509v3", "test/casttest", + "test/chacha_internal_test", + "test/cipher_overhead_test", + "test/cipherbytes_test", "test/cipherlist_test", + "test/ciphername_test", "test/clienthellotest", + "test/cmsapitest", + "test/conf_include_test", "test/constant_time_test", "test/crltest", "test/ct_test", + "test/ctype_internal_test", + "test/curve448_internal_test", "test/d2i_test", "test/danetest", "test/destest", "test/dhtest", + "test/drbg_cavs_test", + "test/drbgtest", + "test/dsa_no_digest_size_test", "test/dsatest", + "test/dtls_mtu_test", "test/dtlstest", "test/dtlsv1listentest", "test/ecdsatest", + "test/ecstresstest", "test/ectest", "test/enginetest", "test/errtest", @@ -7782,55 +10336,66 @@ our %unified_info = ( "test/exptest", "test/fatalerrtest", "test/gmdifftest", - "test/heartbeat_test", + "test/gosttest", "test/hmactest", "test/ideatest", "test/igetest", + "test/lhash_test", "test/md2test", - "test/md4test", - "test/md5test", + "test/mdc2_internal_test", "test/mdc2test", "test/memleaktest", + "test/modes_internal_test", "test/ocspapitest", - "test/p5_crpt2_test", "test/packettest", "test/pbelutest", - "test/randtest", + "test/pemtest", + "test/pkey_meth_kdf_test", + "test/pkey_meth_test", + "test/poly1305_internal_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rmdtest", + "test/rdrand_sanitytest", + "test/recordlentest", "test/rsa_complex", + "test/rsa_mp_test", "test/rsa_test", "test/sanitytest", "test/secmemtest", - "test/sha1test", - "test/sha256t", - "test/sha512t", + "test/servername_test", + "test/siphash_internal_test", + "test/sm2_internal_test", + "test/sm4_internal_test", "test/srptest", + "test/ssl_cert_table_internal_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", + "test/sslbuffertest", "test/sslcorrupttest", "test/ssltest_old", + "test/stack_test", + "test/sysdefaulttest", + "test/test_test", "test/threadstest", + "test/time_offset_test", + "test/tls13ccstest", + "test/tls13encryptiontest", + "test/uitest", "test/v3ext", "test/v3nametest", "test/verify_extra_test", "test/versions", - "test/wp_test", + "test/wpackettest", + "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", + "test/x509_internal_test", "test/x509_time_test", "test/x509aux", ], "rawlines" => [ - "crypto/md5\\md5-ia64.asm: crypto/md5\\asm\\md5-ia64.S", - " \$(CC) \$(CFLAGS) -EP crypto/md5\\asm\\md5-ia64.S > \$\@.i && move /Y \$\@.i \$\@", - "crypto/rc4\\rc4-ia64.asm: crypto/rc4\\asm\\rc4-ia64.pl", - " \$(PERL) crypto/rc4\\asm\\rc4-ia64.pl \$\@.S", - " \$(CC) -DSZ=4 -EP \$\@.S > \$\@.i && move /Y \$\@.i \$\@", - " del /Q \$\@.S", ], "rename" => { @@ -7843,10 +10408,6 @@ our %unified_info = ( ], "shared_sources" => { - "libcrypto" => - [ - "crypto/dllmain.o", - ], }, "sources" => { @@ -7866,6 +10427,10 @@ our %unified_info = ( [ "apps/asn1pars.c", ], + "apps/bf_prefix.o" => + [ + "apps/bf_prefix.c", + ], "apps/ca.o" => [ "apps/ca.c", @@ -7934,6 +10499,16 @@ our %unified_info = ( [ "apps/genrsa.c", ], + "apps/libapps.a" => + [ + "apps/app_rand.o", + "apps/apps.o", + "apps/bf_prefix.o", + "apps/opt.o", + "apps/s_cb.o", + "apps/s_socket.o", + "apps/win32_init.o", + ], "apps/nseq.o" => [ "apps/nseq.c", @@ -7944,8 +10519,6 @@ our %unified_info = ( ], "apps/openssl" => [ - "apps/app_rand.o", - "apps/apps.o", "apps/asn1pars.o", "apps/ca.o", "apps/ciphers.o", @@ -7967,7 +10540,7 @@ our %unified_info = ( "apps/nseq.o", "apps/ocsp.o", "apps/openssl.o", - "apps/opt.o", + "apps/openssl.res", "apps/passwd.o", "apps/pkcs12.o", "apps/pkcs7.o", @@ -7981,26 +10554,28 @@ our %unified_info = ( "apps/req.o", "apps/rsa.o", "apps/rsautl.o", - "apps/s_cb.o", "apps/s_client.o", "apps/s_server.o", - "apps/s_socket.o", "apps/s_time.o", "apps/sess_id.o", "apps/smime.o", "apps/speed.o", "apps/spkac.o", "apps/srp.o", + "apps/storeutl.o", "apps/ts.o", "apps/verify.o", "apps/version.o", - "apps/win32_init.o", "apps/x509.o", ], "apps/openssl.o" => [ "apps/openssl.c", ], + "apps/openssl.res" => + [ + "apps/openssl.rc", + ], "apps/opt.o" => [ "apps/opt.c", @@ -8097,6 +10672,10 @@ our %unified_info = ( [ "apps/srp.c", ], + "apps/storeutl.o" => + [ + "apps/storeutl.c", + ], "apps/ts.o" => [ "apps/ts.c", @@ -8173,6 +10752,10 @@ our %unified_info = ( [ "crypto/aes/vpaes-x86_64.s", ], + "crypto/aria/aria.o" => + [ + "crypto/aria/aria.c", + ], "crypto/asn1/a_bitstr.o" => [ "crypto/asn1/a_bitstr.c", @@ -8261,6 +10844,10 @@ our %unified_info = ( [ "crypto/asn1/asn1_gen.c", ], + "crypto/asn1/asn1_item_list.o" => + [ + "crypto/asn1/asn1_item_list.c", + ], "crypto/asn1/asn1_lib.o" => [ "crypto/asn1/asn1_lib.c", @@ -8929,6 +11516,10 @@ our %unified_info = ( [ "crypto/ct/ct_x509v3.c", ], + "crypto/ctype.o" => + [ + "crypto/ctype.c", + ], "crypto/cversion.o" => [ "crypto/cversion.c", @@ -8997,10 +11588,6 @@ our %unified_info = ( [ "crypto/des/rand_key.c", ], - "crypto/des/rpc_enc.o" => - [ - "crypto/des/rpc_enc.c", - ], "crypto/des/set_key.o" => [ "crypto/des/set_key.c", @@ -9065,9 +11652,9 @@ our %unified_info = ( [ "crypto/dh/dh_rfc5114.c", ], - "crypto/dllmain.o" => + "crypto/dh/dh_rfc7919.o" => [ - "crypto/dllmain.c", + "crypto/dh/dh_rfc7919.c", ], "crypto/dsa/dsa_ameth.o" => [ @@ -9157,9 +11744,29 @@ our %unified_info = ( [ "crypto/ec/curve25519.c", ], - "crypto/ec/ec2_mult.o" => + "crypto/ec/curve448/arch_32/f_impl.o" => [ - "crypto/ec/ec2_mult.c", + "crypto/ec/curve448/arch_32/f_impl.c", + ], + "crypto/ec/curve448/curve448.o" => + [ + "crypto/ec/curve448/curve448.c", + ], + "crypto/ec/curve448/curve448_tables.o" => + [ + "crypto/ec/curve448/curve448_tables.c", + ], + "crypto/ec/curve448/eddsa.o" => + [ + "crypto/ec/curve448/eddsa.c", + ], + "crypto/ec/curve448/f_generic.o" => + [ + "crypto/ec/curve448/f_generic.c", + ], + "crypto/ec/curve448/scalar.o" => + [ + "crypto/ec/curve448/scalar.c", ], "crypto/ec/ec2_oct.o" => [ @@ -9289,6 +11896,10 @@ our %unified_info = ( [ "crypto/ec/ecx_meth.c", ], + "crypto/ec/x25519-x86_64.o" => + [ + "crypto/ec/x25519-x86_64.s", + ], "crypto/engine/eng_all.o" => [ "crypto/engine/eng_all.c", @@ -9297,10 +11908,6 @@ our %unified_info = ( [ "crypto/engine/eng_cnf.c", ], - "crypto/engine/eng_cryptodev.o" => - [ - "crypto/engine/eng_cryptodev.c", - ], "crypto/engine/eng_ctrl.o" => [ "crypto/engine/eng_ctrl.c", @@ -9437,6 +12044,10 @@ our %unified_info = ( [ "crypto/evp/e_aes_cbc_hmac_sha256.c", ], + "crypto/evp/e_aria.o" => + [ + "crypto/evp/e_aria.c", + ], "crypto/evp/e_bf.o" => [ "crypto/evp/e_bf.c", @@ -9493,6 +12104,10 @@ our %unified_info = ( [ "crypto/evp/e_seed.c", ], + "crypto/evp/e_sm4.o" => + [ + "crypto/evp/e_sm4.c", + ], "crypto/evp/e_xcbc_d.o" => [ "crypto/evp/e_xcbc_d.c", @@ -9561,6 +12176,10 @@ our %unified_info = ( [ "crypto/evp/m_sha1.c", ], + "crypto/evp/m_sha3.o" => + [ + "crypto/evp/m_sha3.c", + ], "crypto/evp/m_sigver.o" => [ "crypto/evp/m_sigver.c", @@ -9609,6 +12228,10 @@ our %unified_info = ( [ "crypto/evp/p_verify.c", ], + "crypto/evp/pbe_scrypt.o" => + [ + "crypto/evp/pbe_scrypt.c", + ], "crypto/evp/pmeth_fn.o" => [ "crypto/evp/pmeth_fn.c", @@ -9621,10 +12244,6 @@ our %unified_info = ( [ "crypto/evp/pmeth_lib.c", ], - "crypto/evp/scrypt.o" => - [ - "crypto/evp/scrypt.c", - ], "crypto/ex_data.o" => [ "crypto/ex_data.c", @@ -9677,6 +12296,10 @@ our %unified_info = ( [ "crypto/kdf/kdf_err.c", ], + "crypto/kdf/scrypt.o" => + [ + "crypto/kdf/scrypt.c", + ], "crypto/kdf/tls1_prf.o" => [ "crypto/kdf/tls1_prf.c", @@ -10009,9 +12632,21 @@ our %unified_info = ( [ "crypto/poly1305/poly1305.c", ], - "crypto/rand/md_rand.o" => + "crypto/poly1305/poly1305_ameth.o" => + [ + "crypto/poly1305/poly1305_ameth.c", + ], + "crypto/poly1305/poly1305_pmeth.o" => + [ + "crypto/poly1305/poly1305_pmeth.c", + ], + "crypto/rand/drbg_ctr.o" => [ - "crypto/rand/md_rand.c", + "crypto/rand/drbg_ctr.c", + ], + "crypto/rand/drbg_lib.o" => + [ + "crypto/rand/drbg_lib.c", ], "crypto/rand/rand_egd.o" => [ @@ -10113,13 +12748,13 @@ our %unified_info = ( [ "crypto/rsa/rsa_meth.c", ], - "crypto/rsa/rsa_none.o" => + "crypto/rsa/rsa_mp.o" => [ - "crypto/rsa/rsa_none.c", + "crypto/rsa/rsa_mp.c", ], - "crypto/rsa/rsa_null.o" => + "crypto/rsa/rsa_none.o" => [ - "crypto/rsa/rsa_null.c", + "crypto/rsa/rsa_none.c", ], "crypto/rsa/rsa_oaep.o" => [ @@ -10185,6 +12820,10 @@ our %unified_info = ( [ "crypto/seed/seed_ofb.c", ], + "crypto/sha/keccak1600-x86_64.o" => + [ + "crypto/sha/keccak1600-x86_64.s", + ], "crypto/sha/sha1-mb-x86_64.o" => [ "crypto/sha/sha1-mb-x86_64.s", @@ -10221,6 +12860,46 @@ our %unified_info = ( [ "crypto/sha/sha512.c", ], + "crypto/siphash/siphash.o" => + [ + "crypto/siphash/siphash.c", + ], + "crypto/siphash/siphash_ameth.o" => + [ + "crypto/siphash/siphash_ameth.c", + ], + "crypto/siphash/siphash_pmeth.o" => + [ + "crypto/siphash/siphash_pmeth.c", + ], + "crypto/sm2/sm2_crypt.o" => + [ + "crypto/sm2/sm2_crypt.c", + ], + "crypto/sm2/sm2_err.o" => + [ + "crypto/sm2/sm2_err.c", + ], + "crypto/sm2/sm2_pmeth.o" => + [ + "crypto/sm2/sm2_pmeth.c", + ], + "crypto/sm2/sm2_sign.o" => + [ + "crypto/sm2/sm2_sign.c", + ], + "crypto/sm3/m_sm3.o" => + [ + "crypto/sm3/m_sm3.c", + ], + "crypto/sm3/sm3.o" => + [ + "crypto/sm3/sm3.c", + ], + "crypto/sm4/sm4.o" => + [ + "crypto/sm4/sm4.c", + ], "crypto/srp/srp_lib.o" => [ "crypto/srp/srp_lib.c", @@ -10233,6 +12912,30 @@ our %unified_info = ( [ "crypto/stack/stack.c", ], + "crypto/store/loader_file.o" => + [ + "crypto/store/loader_file.c", + ], + "crypto/store/store_err.o" => + [ + "crypto/store/store_err.c", + ], + "crypto/store/store_init.o" => + [ + "crypto/store/store_init.c", + ], + "crypto/store/store_lib.o" => + [ + "crypto/store/store_lib.c", + ], + "crypto/store/store_register.o" => + [ + "crypto/store/store_register.c", + ], + "crypto/store/store_strings.o" => + [ + "crypto/store/store_strings.c", + ], "crypto/threads_none.o" => [ "crypto/threads_none.c", @@ -10301,6 +13004,10 @@ our %unified_info = ( [ "crypto/ui/ui_lib.c", ], + "crypto/ui/ui_null.o" => + [ + "crypto/ui/ui_null.c", + ], "crypto/ui/ui_openssl.o" => [ "crypto/ui/ui_openssl.c", @@ -10493,6 +13200,10 @@ our %unified_info = ( [ "crypto/x509v3/v3_addr.c", ], + "crypto/x509v3/v3_admis.o" => + [ + "crypto/x509v3/v3_admis.c", + ], "crypto/x509v3/v3_akey.o" => [ "crypto/x509v3/v3_akey.c", @@ -10661,6 +13372,15 @@ our %unified_info = ( [ "fuzz/bndiv.c", ], + "fuzz/client-test" => + [ + "fuzz/client.o", + "fuzz/test-corpus.o", + ], + "fuzz/client.o" => + [ + "fuzz/client.c", + ], "fuzz/cms-test" => [ "fuzz/cms.o", @@ -10734,6 +13454,7 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.o", "crypto/aes/bsaes-x86_64.o", "crypto/aes/vpaes-x86_64.o", + "crypto/aria/aria.o", "crypto/asn1/a_bitstr.o", "crypto/asn1/a_d2i_fp.o", "crypto/asn1/a_digest.o", @@ -10756,6 +13477,7 @@ our %unified_info = ( "crypto/asn1/ameth_lib.o", "crypto/asn1/asn1_err.o", "crypto/asn1/asn1_gen.o", + "crypto/asn1/asn1_item_list.o", "crypto/asn1/asn1_lib.o", "crypto/asn1/asn1_par.o", "crypto/asn1/asn_mime.o", @@ -10923,6 +13645,7 @@ our %unified_info = ( "crypto/ct/ct_sct_ctx.o", "crypto/ct/ct_vfy.o", "crypto/ct/ct_x509v3.o", + "crypto/ctype.o", "crypto/cversion.o", "crypto/des/cbc_cksm.o", "crypto/des/cbc_enc.o", @@ -10940,7 +13663,6 @@ our %unified_info = ( "crypto/des/pcbc_enc.o", "crypto/des/qud_cksm.o", "crypto/des/rand_key.o", - "crypto/des/rpc_enc.o", "crypto/des/set_key.o", "crypto/des/str2key.o", "crypto/des/xcbc_enc.o", @@ -10957,6 +13679,7 @@ our %unified_info = ( "crypto/dh/dh_pmeth.o", "crypto/dh/dh_prn.o", "crypto/dh/dh_rfc5114.o", + "crypto/dh/dh_rfc7919.o", "crypto/dsa/dsa_ameth.o", "crypto/dsa/dsa_asn1.o", "crypto/dsa/dsa_depr.o", @@ -10979,7 +13702,12 @@ our %unified_info = ( "crypto/dso/dso_win32.o", "crypto/ebcdic.o", "crypto/ec/curve25519.o", - "crypto/ec/ec2_mult.o", + "crypto/ec/curve448/arch_32/f_impl.o", + "crypto/ec/curve448/curve448.o", + "crypto/ec/curve448/curve448_tables.o", + "crypto/ec/curve448/eddsa.o", + "crypto/ec/curve448/f_generic.o", + "crypto/ec/curve448/scalar.o", "crypto/ec/ec2_oct.o", "crypto/ec/ec2_smpl.o", "crypto/ec/ec_ameth.o", @@ -11012,9 +13740,9 @@ our %unified_info = ( "crypto/ec/ecp_oct.o", "crypto/ec/ecp_smpl.o", "crypto/ec/ecx_meth.o", + "crypto/ec/x25519-x86_64.o", "crypto/engine/eng_all.o", "crypto/engine/eng_cnf.o", - "crypto/engine/eng_cryptodev.o", "crypto/engine/eng_ctrl.o", "crypto/engine/eng_dyn.o", "crypto/engine/eng_err.o", @@ -11049,6 +13777,7 @@ our %unified_info = ( "crypto/evp/e_aes.o", "crypto/evp/e_aes_cbc_hmac_sha1.o", "crypto/evp/e_aes_cbc_hmac_sha256.o", + "crypto/evp/e_aria.o", "crypto/evp/e_bf.o", "crypto/evp/e_camellia.o", "crypto/evp/e_cast.o", @@ -11063,6 +13792,7 @@ our %unified_info = ( "crypto/evp/e_rc4_hmac_md5.o", "crypto/evp/e_rc5.o", "crypto/evp/e_seed.o", + "crypto/evp/e_sm4.o", "crypto/evp/e_xcbc_d.o", "crypto/evp/encode.o", "crypto/evp/evp_cnf.o", @@ -11080,6 +13810,7 @@ our %unified_info = ( "crypto/evp/m_null.o", "crypto/evp/m_ripemd.o", "crypto/evp/m_sha1.o", + "crypto/evp/m_sha3.o", "crypto/evp/m_sigver.o", "crypto/evp/m_wp.o", "crypto/evp/names.o", @@ -11092,10 +13823,10 @@ our %unified_info = ( "crypto/evp/p_seal.o", "crypto/evp/p_sign.o", "crypto/evp/p_verify.o", + "crypto/evp/pbe_scrypt.o", "crypto/evp/pmeth_fn.o", "crypto/evp/pmeth_gn.o", "crypto/evp/pmeth_lib.o", - "crypto/evp/scrypt.o", "crypto/ex_data.o", "crypto/getenv.o", "crypto/hmac/hm_ameth.o", @@ -11109,6 +13840,7 @@ our %unified_info = ( "crypto/init.o", "crypto/kdf/hkdf.o", "crypto/kdf/kdf_err.o", + "crypto/kdf/scrypt.o", "crypto/kdf/tls1_prf.o", "crypto/lhash/lh_stats.o", "crypto/lhash/lhash.o", @@ -11192,7 +13924,10 @@ our %unified_info = ( "crypto/pkcs7/pkcs7err.o", "crypto/poly1305/poly1305-x86_64.o", "crypto/poly1305/poly1305.o", - "crypto/rand/md_rand.o", + "crypto/poly1305/poly1305_ameth.o", + "crypto/poly1305/poly1305_pmeth.o", + "crypto/rand/drbg_ctr.o", + "crypto/rand/drbg_lib.o", "crypto/rand/rand_egd.o", "crypto/rand/rand_err.o", "crypto/rand/rand_lib.o", @@ -11218,8 +13953,8 @@ our %unified_info = ( "crypto/rsa/rsa_gen.o", "crypto/rsa/rsa_lib.o", "crypto/rsa/rsa_meth.o", + "crypto/rsa/rsa_mp.o", "crypto/rsa/rsa_none.o", - "crypto/rsa/rsa_null.o", "crypto/rsa/rsa_oaep.o", "crypto/rsa/rsa_ossl.o", "crypto/rsa/rsa_pk1.o", @@ -11236,6 +13971,7 @@ our %unified_info = ( "crypto/seed/seed_cfb.o", "crypto/seed/seed_ecb.o", "crypto/seed/seed_ofb.o", + "crypto/sha/keccak1600-x86_64.o", "crypto/sha/sha1-mb-x86_64.o", "crypto/sha/sha1-x86_64.o", "crypto/sha/sha1_one.o", @@ -11245,9 +13981,25 @@ our %unified_info = ( "crypto/sha/sha256.o", "crypto/sha/sha512-x86_64.o", "crypto/sha/sha512.o", + "crypto/siphash/siphash.o", + "crypto/siphash/siphash_ameth.o", + "crypto/siphash/siphash_pmeth.o", + "crypto/sm2/sm2_crypt.o", + "crypto/sm2/sm2_err.o", + "crypto/sm2/sm2_pmeth.o", + "crypto/sm2/sm2_sign.o", + "crypto/sm3/m_sm3.o", + "crypto/sm3/sm3.o", + "crypto/sm4/sm4.o", "crypto/srp/srp_lib.o", "crypto/srp/srp_vfy.o", "crypto/stack/stack.o", + "crypto/store/loader_file.o", + "crypto/store/store_err.o", + "crypto/store/store_init.o", + "crypto/store/store_lib.o", + "crypto/store/store_register.o", + "crypto/store/store_strings.o", "crypto/threads_none.o", "crypto/threads_pthread.o", "crypto/threads_win.o", @@ -11265,6 +14017,7 @@ our %unified_info = ( "crypto/txt_db/txt_db.o", "crypto/ui/ui_err.o", "crypto/ui/ui_lib.o", + "crypto/ui/ui_null.o", "crypto/ui/ui_openssl.o", "crypto/ui/ui_util.o", "crypto/uid.o", @@ -11313,6 +14066,7 @@ our %unified_info = ( "crypto/x509v3/pcy_node.o", "crypto/x509v3/pcy_tree.o", "crypto/x509v3/v3_addr.o", + "crypto/x509v3/v3_admis.o", "crypto/x509v3/v3_akey.o", "crypto/x509v3/v3_akeya.o", "crypto/x509v3/v3_alt.o", @@ -11354,12 +14108,14 @@ our %unified_info = ( "ssl/d1_msg.o", "ssl/d1_srtp.o", "ssl/methods.o", + "ssl/packet.o", "ssl/pqueue.o", "ssl/record/dtls1_bitmap.o", "ssl/record/rec_layer_d1.o", "ssl/record/rec_layer_s3.o", "ssl/record/ssl3_buffer.o", "ssl/record/ssl3_record.o", + "ssl/record/ssl3_record_tls13.o", "ssl/s3_cbc.o", "ssl/s3_enc.o", "ssl/s3_lib.o", @@ -11377,16 +14133,19 @@ our %unified_info = ( "ssl/ssl_stat.o", "ssl/ssl_txt.o", "ssl/ssl_utst.o", + "ssl/statem/extensions.o", + "ssl/statem/extensions_clnt.o", + "ssl/statem/extensions_cust.o", + "ssl/statem/extensions_srvr.o", "ssl/statem/statem.o", "ssl/statem/statem_clnt.o", "ssl/statem/statem_dtls.o", "ssl/statem/statem_lib.o", "ssl/statem/statem_srvr.o", "ssl/t1_enc.o", - "ssl/t1_ext.o", "ssl/t1_lib.o", - "ssl/t1_reneg.o", "ssl/t1_trce.o", + "ssl/tls13_enc.o", "ssl/tls_srp.o", ], "ssl/bio_ssl.o" => @@ -11409,6 +14168,10 @@ our %unified_info = ( [ "ssl/methods.c", ], + "ssl/packet.o" => + [ + "ssl/packet.c", + ], "ssl/pqueue.o" => [ "ssl/pqueue.c", @@ -11433,6 +14196,10 @@ our %unified_info = ( [ "ssl/record/ssl3_record.c", ], + "ssl/record/ssl3_record_tls13.o" => + [ + "ssl/record/ssl3_record_tls13.c", + ], "ssl/s3_cbc.o" => [ "ssl/s3_cbc.c", @@ -11501,6 +14268,22 @@ our %unified_info = ( [ "ssl/ssl_utst.c", ], + "ssl/statem/extensions.o" => + [ + "ssl/statem/extensions.c", + ], + "ssl/statem/extensions_clnt.o" => + [ + "ssl/statem/extensions_clnt.c", + ], + "ssl/statem/extensions_cust.o" => + [ + "ssl/statem/extensions_cust.c", + ], + "ssl/statem/extensions_srvr.o" => + [ + "ssl/statem/extensions_srvr.c", + ], "ssl/statem/statem.o" => [ "ssl/statem/statem.c", @@ -11525,22 +14308,18 @@ our %unified_info = ( [ "ssl/t1_enc.c", ], - "ssl/t1_ext.o" => - [ - "ssl/t1_ext.c", - ], "ssl/t1_lib.o" => [ "ssl/t1_lib.c", ], - "ssl/t1_reneg.o" => - [ - "ssl/t1_reneg.c", - ], "ssl/t1_trce.o" => [ "ssl/t1_trce.c", ], + "ssl/tls13_enc.o" => + [ + "ssl/tls13_enc.c", + ], "ssl/tls_srp.o" => [ "ssl/tls_srp.c", @@ -11561,6 +14340,46 @@ our %unified_info = ( [ "test/afalgtest.c", ], + "test/asn1_decode_test" => + [ + "test/asn1_decode_test.o", + ], + "test/asn1_decode_test.o" => + [ + "test/asn1_decode_test.c", + ], + "test/asn1_encode_test" => + [ + "test/asn1_encode_test.o", + ], + "test/asn1_encode_test.o" => + [ + "test/asn1_encode_test.c", + ], + "test/asn1_internal_test" => + [ + "test/asn1_internal_test.o", + ], + "test/asn1_internal_test.o" => + [ + "test/asn1_internal_test.c", + ], + "test/asn1_string_table_test" => + [ + "test/asn1_string_table_test.o", + ], + "test/asn1_string_table_test.o" => + [ + "test/asn1_string_table_test.c", + ], + "test/asn1_time_test" => + [ + "test/asn1_time_test.o", + ], + "test/asn1_time_test.o" => + [ + "test/asn1_time_test.c", + ], "test/asynciotest" => [ "test/asynciotest.o", @@ -11594,6 +14413,14 @@ our %unified_info = ( [ "test/bftest.c", ], + "test/bio_callback_test" => + [ + "test/bio_callback_test.o", + ], + "test/bio_callback_test.o" => + [ + "test/bio_callback_test.c", + ], "test/bio_enc_test" => [ "test/bio_enc_test.o", @@ -11826,14 +14653,6 @@ our %unified_info = ( [ "test/buildtest_engine.c", ], - "test/buildtest_err" => - [ - "test/buildtest_err.o", - ], - "test/buildtest_err.o" => - [ - "test/buildtest_err.c", - ], "test/buildtest_evp" => [ "test/buildtest_evp.o", @@ -11986,6 +14805,14 @@ our %unified_info = ( [ "test/buildtest_rand.c", ], + "test/buildtest_rand_drbg" => + [ + "test/buildtest_rand_drbg.o", + ], + "test/buildtest_rand_drbg.o" => + [ + "test/buildtest_rand_drbg.c", + ], "test/buildtest_rc2" => [ "test/buildtest_rc2.o", @@ -12082,6 +14909,14 @@ our %unified_info = ( [ "test/buildtest_stack.c", ], + "test/buildtest_store" => + [ + "test/buildtest_store.o", + ], + "test/buildtest_store.o" => + [ + "test/buildtest_store.c", + ], "test/buildtest_symhacks" => [ "test/buildtest_symhacks.o", @@ -12162,15 +14997,46 @@ our %unified_info = ( [ "test/casttest.c", ], + "test/chacha_internal_test" => + [ + "test/chacha_internal_test.o", + ], + "test/chacha_internal_test.o" => + [ + "test/chacha_internal_test.c", + ], + "test/cipher_overhead_test" => + [ + "test/cipher_overhead_test.o", + ], + "test/cipher_overhead_test.o" => + [ + "test/cipher_overhead_test.c", + ], + "test/cipherbytes_test" => + [ + "test/cipherbytes_test.o", + ], + "test/cipherbytes_test.o" => + [ + "test/cipherbytes_test.c", + ], "test/cipherlist_test" => [ "test/cipherlist_test.o", - "test/testutil.o", ], "test/cipherlist_test.o" => [ "test/cipherlist_test.c", ], + "test/ciphername_test" => + [ + "test/ciphername_test.o", + ], + "test/ciphername_test.o" => + [ + "test/ciphername_test.c", + ], "test/clienthellotest" => [ "test/clienthellotest.o", @@ -12179,6 +15045,22 @@ our %unified_info = ( [ "test/clienthellotest.c", ], + "test/cmsapitest" => + [ + "test/cmsapitest.o", + ], + "test/cmsapitest.o" => + [ + "test/cmsapitest.c", + ], + "test/conf_include_test" => + [ + "test/conf_include_test.o", + ], + "test/conf_include_test.o" => + [ + "test/conf_include_test.c", + ], "test/constant_time_test" => [ "test/constant_time_test.o", @@ -12190,7 +15072,6 @@ our %unified_info = ( "test/crltest" => [ "test/crltest.o", - "test/testutil.o", ], "test/crltest.o" => [ @@ -12199,16 +15080,30 @@ our %unified_info = ( "test/ct_test" => [ "test/ct_test.o", - "test/testutil.o", ], "test/ct_test.o" => [ "test/ct_test.c", ], + "test/ctype_internal_test" => + [ + "test/ctype_internal_test.o", + ], + "test/ctype_internal_test.o" => + [ + "test/ctype_internal_test.c", + ], + "test/curve448_internal_test" => + [ + "test/curve448_internal_test.o", + ], + "test/curve448_internal_test.o" => + [ + "test/curve448_internal_test.c", + ], "test/d2i_test" => [ "test/d2i_test.o", - "test/testutil.o", ], "test/d2i_test.o" => [ @@ -12238,6 +15133,35 @@ our %unified_info = ( [ "test/dhtest.c", ], + "test/drbg_cavs_data.o" => + [ + "test/drbg_cavs_data.c", + ], + "test/drbg_cavs_test" => + [ + "test/drbg_cavs_data.o", + "test/drbg_cavs_test.o", + ], + "test/drbg_cavs_test.o" => + [ + "test/drbg_cavs_test.c", + ], + "test/drbgtest" => + [ + "test/drbgtest.o", + ], + "test/drbgtest.o" => + [ + "test/drbgtest.c", + ], + "test/dsa_no_digest_size_test" => + [ + "test/dsa_no_digest_size_test.o", + ], + "test/dsa_no_digest_size_test.o" => + [ + "test/dsa_no_digest_size_test.c", + ], "test/dsatest" => [ "test/dsatest.o", @@ -12246,11 +15170,19 @@ our %unified_info = ( [ "test/dsatest.c", ], + "test/dtls_mtu_test" => + [ + "test/dtls_mtu_test.o", + "test/ssltestlib.o", + ], + "test/dtls_mtu_test.o" => + [ + "test/dtls_mtu_test.c", + ], "test/dtlstest" => [ "test/dtlstest.o", "test/ssltestlib.o", - "test/testutil.o", ], "test/dtlstest.o" => [ @@ -12272,6 +15204,14 @@ our %unified_info = ( [ "test/ecdsatest.c", ], + "test/ecstresstest" => + [ + "test/ecstresstest.o", + ], + "test/ecstresstest.o" => + [ + "test/ecstresstest.c", + ], "test/ectest" => [ "test/ectest.o", @@ -12291,7 +15231,6 @@ our %unified_info = ( "test/errtest" => [ "test/errtest.o", - "test/testutil.o", ], "test/errtest.o" => [ @@ -12333,7 +15272,6 @@ our %unified_info = ( [ "test/fatalerrtest.o", "test/ssltestlib.o", - "test/testutil.o", ], "test/fatalerrtest.o" => [ @@ -12347,18 +15285,18 @@ our %unified_info = ( [ "test/gmdifftest.c", ], - "test/handshake_helper.o" => + "test/gosttest" => [ - "test/handshake_helper.c", + "test/gosttest.o", + "test/ssltestlib.o", ], - "test/heartbeat_test" => + "test/gosttest.o" => [ - "test/heartbeat_test.o", - "test/testutil.o", + "test/gosttest.c", ], - "test/heartbeat_test.o" => + "test/handshake_helper.o" => [ - "test/heartbeat_test.c", + "test/handshake_helper.c", ], "test/hmactest" => [ @@ -12384,29 +15322,43 @@ our %unified_info = ( [ "test/igetest.c", ], - "test/md2test" => + "test/lhash_test" => [ - "test/md2test.o", + "test/lhash_test.o", ], - "test/md2test.o" => + "test/lhash_test.o" => [ - "test/md2test.c", + "test/lhash_test.c", ], - "test/md4test" => + "test/libtestutil.a" => [ - "test/md4test.o", + "test/testutil/basic_output.o", + "test/testutil/cb.o", + "test/testutil/driver.o", + "test/testutil/format_output.o", + "test/testutil/init.o", + "test/testutil/main.o", + "test/testutil/output_helpers.o", + "test/testutil/stanza.o", + "test/testutil/tap_bio.o", + "test/testutil/test_cleanup.o", + "test/testutil/tests.o", + ], + "test/md2test" => + [ + "test/md2test.o", ], - "test/md4test.o" => + "test/md2test.o" => [ - "test/md4test.c", + "test/md2test.c", ], - "test/md5test" => + "test/mdc2_internal_test" => [ - "test/md5test.o", + "test/mdc2_internal_test.o", ], - "test/md5test.o" => + "test/mdc2_internal_test.o" => [ - "test/md5test.c", + "test/mdc2_internal_test.c", ], "test/mdc2test" => [ @@ -12424,22 +15376,21 @@ our %unified_info = ( [ "test/memleaktest.c", ], - "test/ocspapitest" => + "test/modes_internal_test" => [ - "test/ocspapitest.o", - "test/testutil.o", + "test/modes_internal_test.o", ], - "test/ocspapitest.o" => + "test/modes_internal_test.o" => [ - "test/ocspapitest.c", + "test/modes_internal_test.c", ], - "test/p5_crpt2_test" => + "test/ocspapitest" => [ - "test/p5_crpt2_test.o", + "test/ocspapitest.o", ], - "test/p5_crpt2_test.o" => + "test/ocspapitest.o" => [ - "test/p5_crpt2_test.c", + "test/ocspapitest.c", ], "test/packettest" => [ @@ -12457,13 +15408,37 @@ our %unified_info = ( [ "test/pbelutest.c", ], - "test/randtest" => + "test/pemtest" => + [ + "test/pemtest.o", + ], + "test/pemtest.o" => + [ + "test/pemtest.c", + ], + "test/pkey_meth_kdf_test" => + [ + "test/pkey_meth_kdf_test.o", + ], + "test/pkey_meth_kdf_test.o" => [ - "test/randtest.o", + "test/pkey_meth_kdf_test.c", ], - "test/randtest.o" => + "test/pkey_meth_test" => [ - "test/randtest.c", + "test/pkey_meth_test.o", + ], + "test/pkey_meth_test.o" => + [ + "test/pkey_meth_test.c", + ], + "test/poly1305_internal_test" => + [ + "test/poly1305_internal_test.o", + ], + "test/poly1305_internal_test.o" => + [ + "test/poly1305_internal_test.c", ], "test/rc2test" => [ @@ -12489,13 +15464,22 @@ our %unified_info = ( [ "test/rc5test.c", ], - "test/rmdtest" => + "test/rdrand_sanitytest" => [ - "test/rmdtest.o", + "test/rdrand_sanitytest.o", ], - "test/rmdtest.o" => + "test/rdrand_sanitytest.o" => [ - "test/rmdtest.c", + "test/rdrand_sanitytest.c", + ], + "test/recordlentest" => + [ + "test/recordlentest.o", + "test/ssltestlib.o", + ], + "test/recordlentest.o" => + [ + "test/recordlentest.c", ], "test/rsa_complex" => [ @@ -12505,6 +15489,14 @@ our %unified_info = ( [ "test/rsa_complex.c", ], + "test/rsa_mp_test" => + [ + "test/rsa_mp_test.o", + ], + "test/rsa_mp_test.o" => + [ + "test/rsa_mp_test.c", + ], "test/rsa_test" => [ "test/rsa_test.o", @@ -12529,29 +15521,38 @@ our %unified_info = ( [ "test/secmemtest.c", ], - "test/sha1test" => + "test/servername_test" => + [ + "test/servername_test.o", + "test/ssltestlib.o", + ], + "test/servername_test.o" => [ - "test/sha1test.o", + "test/servername_test.c", ], - "test/sha1test.o" => + "test/siphash_internal_test" => [ - "test/sha1test.c", + "test/siphash_internal_test.o", ], - "test/sha256t" => + "test/siphash_internal_test.o" => [ - "test/sha256t.o", + "test/siphash_internal_test.c", ], - "test/sha256t.o" => + "test/sm2_internal_test" => [ - "test/sha256t.c", + "test/sm2_internal_test.o", ], - "test/sha512t" => + "test/sm2_internal_test.o" => [ - "test/sha512t.o", + "test/sm2_internal_test.c", ], - "test/sha512t.o" => + "test/sm4_internal_test" => [ - "test/sha512t.c", + "test/sm4_internal_test.o", + ], + "test/sm4_internal_test.o" => + [ + "test/sm4_internal_test.c", ], "test/srptest" => [ @@ -12561,12 +15562,19 @@ our %unified_info = ( [ "test/srptest.c", ], + "test/ssl_cert_table_internal_test" => + [ + "test/ssl_cert_table_internal_test.o", + ], + "test/ssl_cert_table_internal_test.o" => + [ + "test/ssl_cert_table_internal_test.c", + ], "test/ssl_test" => [ "test/handshake_helper.o", "test/ssl_test.o", "test/ssl_test_ctx.o", - "test/testutil.o", ], "test/ssl_test.o" => [ @@ -12580,7 +15588,6 @@ our %unified_info = ( [ "test/ssl_test_ctx.o", "test/ssl_test_ctx_test.o", - "test/testutil.o", ], "test/ssl_test_ctx_test.o" => [ @@ -12590,17 +15597,24 @@ our %unified_info = ( [ "test/sslapitest.o", "test/ssltestlib.o", - "test/testutil.o", ], "test/sslapitest.o" => [ "test/sslapitest.c", ], + "test/sslbuffertest" => + [ + "test/sslbuffertest.o", + "test/ssltestlib.o", + ], + "test/sslbuffertest.o" => + [ + "test/sslbuffertest.c", + ], "test/sslcorrupttest" => [ "test/sslcorrupttest.o", "test/ssltestlib.o", - "test/testutil.o", ], "test/sslcorrupttest.o" => [ @@ -12618,9 +15632,73 @@ our %unified_info = ( [ "test/ssltestlib.c", ], - "test/testutil.o" => + "test/stack_test" => + [ + "test/stack_test.o", + ], + "test/stack_test.o" => + [ + "test/stack_test.c", + ], + "test/sysdefaulttest" => + [ + "test/sysdefaulttest.o", + ], + "test/sysdefaulttest.o" => [ - "test/testutil.c", + "test/sysdefaulttest.c", + ], + "test/test_test" => + [ + "test/test_test.o", + ], + "test/test_test.o" => + [ + "test/test_test.c", + ], + "test/testutil/basic_output.o" => + [ + "test/testutil/basic_output.c", + ], + "test/testutil/cb.o" => + [ + "test/testutil/cb.c", + ], + "test/testutil/driver.o" => + [ + "test/testutil/driver.c", + ], + "test/testutil/format_output.o" => + [ + "test/testutil/format_output.c", + ], + "test/testutil/init.o" => + [ + "test/testutil/init.c", + ], + "test/testutil/main.o" => + [ + "test/testutil/main.c", + ], + "test/testutil/output_helpers.o" => + [ + "test/testutil/output_helpers.c", + ], + "test/testutil/stanza.o" => + [ + "test/testutil/stanza.c", + ], + "test/testutil/tap_bio.o" => + [ + "test/testutil/tap_bio.c", + ], + "test/testutil/test_cleanup.o" => + [ + "test/testutil/test_cleanup.c", + ], + "test/testutil/tests.o" => + [ + "test/testutil/tests.c", ], "test/threadstest" => [ @@ -12630,6 +15708,39 @@ our %unified_info = ( [ "test/threadstest.c", ], + "test/time_offset_test" => + [ + "test/time_offset_test.o", + ], + "test/time_offset_test.o" => + [ + "test/time_offset_test.c", + ], + "test/tls13ccstest" => + [ + "test/ssltestlib.o", + "test/tls13ccstest.o", + ], + "test/tls13ccstest.o" => + [ + "test/tls13ccstest.c", + ], + "test/tls13encryptiontest" => + [ + "test/tls13encryptiontest.o", + ], + "test/tls13encryptiontest.o" => + [ + "test/tls13encryptiontest.c", + ], + "test/uitest" => + [ + "test/uitest.o", + ], + "test/uitest.o" => + [ + "test/uitest.c", + ], "test/v3ext" => [ "test/v3ext.o", @@ -12662,13 +15773,21 @@ our %unified_info = ( [ "test/versions.c", ], - "test/wp_test" => + "test/wpackettest" => [ - "test/wp_test.o", + "test/wpackettest.o", ], - "test/wp_test.o" => + "test/wpackettest.o" => [ - "test/wp_test.c", + "test/wpackettest.c", + ], + "test/x509_check_cert_pkey_test" => + [ + "test/x509_check_cert_pkey_test.o", + ], + "test/x509_check_cert_pkey_test.o" => + [ + "test/x509_check_cert_pkey_test.c", ], "test/x509_dup_cert_test" => [ @@ -12678,9 +15797,16 @@ our %unified_info = ( [ "test/x509_dup_cert_test.c", ], + "test/x509_internal_test" => + [ + "test/x509_internal_test.o", + ], + "test/x509_internal_test.o" => + [ + "test/x509_internal_test.c", + ], "test/x509_time_test" => [ - "test/testutil.o", "test/x509_time_test.o", ], "test/x509_time_test.o" => @@ -12702,4 +15828,358 @@ our %unified_info = ( }, ); +# The following data is only used when this files is use as a script +my @makevars = ( + 'AR', + 'ARFLAGS', + 'AS', + 'ASFLAGS', + 'CC', + 'CFLAGS', + 'CPP', + 'CPPDEFINES', + 'CPPFLAGS', + 'CPPINCLUDES', + 'CROSS_COMPILE', + 'CXX', + 'CXXFLAGS', + 'HASHBANGPERL', + 'LD', + 'LDFLAGS', + 'LDLIBS', + 'MT', + 'MTFLAGS', + 'PERL', + 'RANLIB', + 'RC', + 'RCFLAGS', + 'RM', +); +my %disabled_info = ( + 'afalgeng' => { + macro => 'OPENSSL_NO_AFALGENG', + }, + 'asan' => { + macro => 'OPENSSL_NO_ASAN', + }, + 'comp' => { + macro => 'OPENSSL_NO_COMP', + skipped => [ 'crypto/comp' ], + }, + 'crypto-mdebug' => { + macro => 'OPENSSL_NO_CRYPTO_MDEBUG', + }, + 'crypto-mdebug-backtrace' => { + macro => 'OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE', + }, + 'devcryptoeng' => { + macro => 'OPENSSL_NO_DEVCRYPTOENG', + }, + 'ec_nistp_64_gcc_128' => { + macro => 'OPENSSL_NO_EC_NISTP_64_GCC_128', + }, + 'egd' => { + macro => 'OPENSSL_NO_EGD', + }, + 'external-tests' => { + macro => 'OPENSSL_NO_EXTERNAL_TESTS', + }, + 'fuzz-afl' => { + macro => 'OPENSSL_NO_FUZZ_AFL', + }, + 'fuzz-libfuzzer' => { + macro => 'OPENSSL_NO_FUZZ_LIBFUZZER', + }, + 'heartbeats' => { + macro => 'OPENSSL_NO_HEARTBEATS', + }, + 'md2' => { + macro => 'OPENSSL_NO_MD2', + skipped => [ 'crypto/md2' ], + }, + 'msan' => { + macro => 'OPENSSL_NO_MSAN', + }, + 'rc5' => { + macro => 'OPENSSL_NO_RC5', + skipped => [ 'crypto/rc5' ], + }, + 'sctp' => { + macro => 'OPENSSL_NO_SCTP', + }, + 'ssl-trace' => { + macro => 'OPENSSL_NO_SSL_TRACE', + }, + 'ssl3' => { + macro => 'OPENSSL_NO_SSL3', + }, + 'ssl3-method' => { + macro => 'OPENSSL_NO_SSL3_METHOD', + }, + 'ubsan' => { + macro => 'OPENSSL_NO_UBSAN', + }, + 'unit-test' => { + macro => 'OPENSSL_NO_UNIT_TEST', + }, + 'weak-ssl-ciphers' => { + macro => 'OPENSSL_NO_WEAK_SSL_CIPHERS', + }, +); +my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); +# If run directly, we can give some answers, and even reconfigure +unless (caller) { + use Getopt::Long; + use File::Spec::Functions; + use File::Basename; + use Pod::Usage; + + my $here = dirname($0); + + my $dump = undef; + my $cmdline = undef; + my $options = undef; + my $target = undef; + my $envvars = undef; + my $makevars = undef; + my $buildparams = undef; + my $reconf = undef; + my $verbose = undef; + my $help = undef; + my $man = undef; + GetOptions('dump|d' => \$dump, + 'command-line|c' => \$cmdline, + 'options|o' => \$options, + 'target|t' => \$target, + 'environment|e' => \$envvars, + 'make-variables|m' => \$makevars, + 'build-parameters|b' => \$buildparams, + 'reconfigure|reconf|r' => \$reconf, + 'verbose|v' => \$verbose, + 'help' => \$help, + 'man' => \$man) + or die "Errors in command line arguments\n"; + + unless ($dump || $cmdline || $options || $target || $envvars || $makevars + || $buildparams || $reconf || $verbose || $help || $man) { + print STDERR <<"_____"; +You must give at least one option. +For more information, do '$0 --help' +_____ + exit(2); + } + + if ($help) { + pod2usage(-exitval => 0, + -verbose => 1); + } + if ($man) { + pod2usage(-exitval => 0, + -verbose => 2); + } + if ($dump || $cmdline) { + print "\nCommand line (with current working directory = $here):\n\n"; + print ' ',join(' ', + $config{PERL}, + catfile($config{sourcedir}, 'Configure'), + @{$config{perlargv}}), "\n"; + print "\nPerl information:\n\n"; + print ' ',$config{perl_cmd},"\n"; + print ' ',$config{perl_version},' for ',$config{perl_archname},"\n"; + } + if ($dump || $options) { + my $longest = 0; + my $longest2 = 0; + foreach my $what (@disablables) { + $longest = length($what) if $longest < length($what); + $longest2 = length($disabled{$what}) + if $disabled{$what} && $longest2 < length($disabled{$what}); + } + print "\nEnabled features:\n\n"; + foreach my $what (@disablables) { + print " $what\n" unless $disabled{$what}; + } + print "\nDisabled features:\n\n"; + foreach my $what (@disablables) { + if ($disabled{$what}) { + print " $what", ' ' x ($longest - length($what) + 1), + "[$disabled{$what}]", ' ' x ($longest2 - length($disabled{$what}) + 1); + print $disabled_info{$what}->{macro} + if $disabled_info{$what}->{macro}; + print ' (skip ', + join(', ', @{$disabled_info{$what}->{skipped}}), + ')' + if $disabled_info{$what}->{skipped}; + print "\n"; + } + } + } + if ($dump || $target) { + print "\nConfig target attributes:\n\n"; + foreach (sort keys %target) { + next if $_ =~ m|^_| || $_ eq 'template'; + my $quotify = sub { + map { (my $x = $_) =~ s|([\\\$\@"])|\\$1|g; "\"$x\""} @_; + }; + print ' ', $_, ' => '; + if (ref($target{$_}) eq "ARRAY") { + print '[ ', join(', ', $quotify->(@{$target{$_}})), " ],\n"; + } else { + print $quotify->($target{$_}), ",\n" + } + } + } + if ($dump || $envvars) { + print "\nRecorded environment:\n\n"; + foreach (sort keys %{$config{perlenv}}) { + print ' ',$_,' = ',($config{perlenv}->{$_} || ''),"\n"; + } + } + if ($dump || $makevars) { + print "\nMakevars:\n\n"; + foreach my $var (@makevars) { + my $prefix = ''; + $prefix = $config{CROSS_COMPILE} + if grep { $var eq $_ } @user_crossable; + $prefix //= ''; + print ' ',$var,' ' x (16 - length $var),'= ', + (ref $config{$var} eq 'ARRAY' + ? join(' ', @{$config{$var}}) + : $prefix.$config{$var}), + "\n" + if defined $config{$var}; + } + + my @buildfile = ($config{builddir}, $config{build_file}); + unshift @buildfile, $here + unless file_name_is_absolute($config{builddir}); + my $buildfile = canonpath(catdir(@buildfile)); + print <<"_____"; + +NOTE: These variables only represent the configuration view. The build file +template may have processed these variables further, please have a look at the +build file for more exact data: + $buildfile +_____ + } + if ($dump || $buildparams) { + my @buildfile = ($config{builddir}, $config{build_file}); + unshift @buildfile, $here + unless file_name_is_absolute($config{builddir}); + print "\nbuild file:\n\n"; + print " ", canonpath(catfile(@buildfile)),"\n"; + + print "\nbuild file templates:\n\n"; + foreach (@{$config{build_file_templates}}) { + my @tmpl = ($_); + unshift @tmpl, $here + unless file_name_is_absolute($config{sourcedir}); + print ' ',canonpath(catfile(@tmpl)),"\n"; + } + } + if ($reconf) { + if ($verbose) { + print 'Reconfiguring with: ', join(' ',@{$config{perlargv}}), "\n"; + foreach (sort keys %{$config{perlenv}}) { + print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n"; + } + } + + chdir $here; + exec $^X,catfile($config{sourcedir}, 'Configure'),'reconf'; + } +} + 1; + +__END__ + +=head1 NAME + +configdata.pm - configuration data for OpenSSL builds + +=head1 SYNOPSIS + +Interactive: + + perl configdata.pm [options] + +As data bank module: + + use configdata; + +=head1 DESCRIPTION + +This module can be used in two modes, interactively and as a module containing +all the data recorded by OpenSSL's Configure script. + +When used interactively, simply run it as any perl script, with at least one +option, and you will get the information you ask for. See L</OPTIONS> below. + +When loaded as a module, you get a few databanks with useful information to +perform build related tasks. The databanks are: + + %config Configured things. + %target The OpenSSL config target with all inheritances + resolved. + %disabled The features that are disabled. + @disablables The list of features that can be disabled. + %withargs All data given through --with-THING options. + %unified_info All information that was computed from the build.info + files. + +=head1 OPTIONS + +=over 4 + +=item B<--help> + +Print a brief help message and exit. + +=item B<--man> + +Print the manual page and exit. + +=item B<--dump> | B<-d> + +Print all relevant configuration data. This is equivalent to B<--command-line> +B<--options> B<--target> B<--environment> B<--make-variables> +B<--build-parameters>. + +=item B<--command-line> | B<-c> + +Print the current configuration command line. + +=item B<--options> | B<-o> + +Print the features, both enabled and disabled, and display defined macro and +skipped directories where applicable. + +=item B<--target> | B<-t> + +Print the config attributes for this config target. + +=item B<--environment> | B<-e> + +Print the environment variables and their values at the time of configuration. + +=item B<--make-variables> | B<-m> + +Print the main make variables generated in the current configuration + +=item B<--build-parameters> | B<-b> + +Print the build parameters, i.e. build file and build file templates. + +=item B<--reconfigure> | B<--reconf> | B<-r> + +Redo the configuration. + +=item B<--verbose> | B<-v> + +Verbose output. + +=back + +=cut + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm index 923e31ec9e..5babb865fa 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm @@ -346,15 +346,23 @@ $L$SEH_begin_AES_encrypt: mov rdx,r8 + + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r10,rsp + lea rcx,[((-63))+rdx] and rsp,-64 sub rcx,rsp @@ -364,7 +372,8 @@ $L$SEH_begin_AES_encrypt: sub rsp,32 mov QWORD[16+rsp],rsi - mov QWORD[24+rsp],r10 + mov QWORD[24+rsp],rax + $L$enc_prologue: mov r15,rdx @@ -391,22 +400,31 @@ $L$enc_prologue: mov r9,QWORD[16+rsp] mov rsi,QWORD[24+rsp] + mov DWORD[r9],eax mov DWORD[4+r9],ebx mov DWORD[8+r9],ecx mov DWORD[12+r9],edx - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$enc_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_AES_encrypt: ALIGN 16 @@ -804,15 +822,23 @@ $L$SEH_begin_AES_decrypt: mov rdx,r8 + + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r10,rsp + lea rcx,[((-63))+rdx] and rsp,-64 sub rcx,rsp @@ -822,7 +848,8 @@ $L$SEH_begin_AES_decrypt: sub rsp,32 mov QWORD[16+rsp],rsi - mov QWORD[24+rsp],r10 + mov QWORD[24+rsp],rax + $L$dec_prologue: mov r15,rdx @@ -851,22 +878,31 @@ $L$dec_prologue: mov r9,QWORD[16+rsp] mov rsi,QWORD[24+rsp] + mov DWORD[r9],eax mov DWORD[4+r9],ebx mov DWORD[8+r9],ecx mov DWORD[12+r9],edx - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$dec_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_AES_decrypt: global AES_set_encrypt_key @@ -881,24 +917,36 @@ $L$SEH_begin_AES_set_encrypt_key: mov rdx,r8 + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,8 + $L$enc_key_prologue: call _x86_64_AES_set_encrypt_key mov rbp,QWORD[40+rsp] + mov rbx,QWORD[48+rsp] + add rsp,56 + $L$enc_key_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_AES_set_encrypt_key: @@ -1153,13 +1201,21 @@ $L$SEH_begin_AES_set_decrypt_key: mov rdx,r8 + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + push rdx + $L$dec_key_prologue: call _x86_64_AES_set_encrypt_key @@ -1327,16 +1383,24 @@ $L$permute: xor rax,rax $L$abort: mov r15,QWORD[8+rsp] + mov r14,QWORD[16+rsp] + mov r13,QWORD[24+rsp] + mov r12,QWORD[32+rsp] + mov rbp,QWORD[40+rsp] + mov rbx,QWORD[48+rsp] + add rsp,56 + $L$dec_key_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_AES_set_decrypt_key: global AES_cbc_encrypt @@ -1358,25 +1422,32 @@ $L$SEH_begin_AES_cbc_encrypt: mov r9,QWORD[48+rsp] + cmp rdx,0 je NEAR $L$cbc_epilogue pushfq + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$cbc_prologue: cld mov r9d,r9d lea r14,[$L$AES_Te] + lea r10,[$L$AES_Td] cmp r9,0 - jne NEAR $L$cbc_picked_te - lea r14,[$L$AES_Td] -$L$cbc_picked_te: + cmove r14,r10 mov r10d,DWORD[OPENSSL_ia32cap_P] cmp rdx,512 @@ -1413,7 +1484,9 @@ $L$cbc_te_ok: xchg r15,rsp + mov QWORD[16+rsp],r15 + $L$cbc_fast_body: mov QWORD[24+rsp],rdi mov QWORD[32+rsp],rsi @@ -1795,19 +1868,29 @@ $L$cbc_slow_dec_partial: ALIGN 16 $L$cbc_exit: mov rsi,QWORD[16+rsp] + mov r15,QWORD[rsi] + mov r14,QWORD[8+rsi] + mov r13,QWORD[16+rsi] + mov r12,QWORD[24+rsi] + mov rbp,QWORD[32+rsi] + mov rbx,QWORD[40+rsi] + lea rsp,[48+rsi] + $L$cbc_popfq: popfq + $L$cbc_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_AES_cbc_encrypt: ALIGN 64 $L$AES_Te: @@ -2632,7 +2715,6 @@ block_se_handler: jae NEAR $L$in_block_prologue mov rax,QWORD[24+rax] - lea rax,[48+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-mb-x86_64.asm index e7fdb2142a..9891df39f0 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-mb-x86_64.asm @@ -20,6 +20,7 @@ $L$SEH_begin_aesni_multi_cbc_encrypt: mov rdx,r8 + cmp edx,2 jb NEAR $L$enc_non_avx mov ecx,DWORD[((OPENSSL_ia32cap_P+4))] @@ -29,12 +30,19 @@ $L$SEH_begin_aesni_multi_cbc_encrypt: ALIGN 16 $L$enc_non_avx: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -56,6 +64,7 @@ $L$enc_non_avx: and rsp,-64 mov QWORD[16+rsp],rax + $L$enc4x_body: movdqu xmm12,XMMWORD[rsi] lea rsi,[120+rsi] @@ -264,6 +273,7 @@ DB 102,15,56,221,232 jnz NEAR $L$oop_enc4x mov rax,QWORD[16+rsp] + mov edx,DWORD[24+rsp] @@ -291,16 +301,24 @@ $L$enc4x_done: mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$enc4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_multi_cbc_encrypt: global aesni_multi_cbc_decrypt @@ -316,6 +334,7 @@ $L$SEH_begin_aesni_multi_cbc_decrypt: mov rdx,r8 + cmp edx,2 jb NEAR $L$dec_non_avx mov ecx,DWORD[((OPENSSL_ia32cap_P+4))] @@ -325,12 +344,19 @@ $L$SEH_begin_aesni_multi_cbc_decrypt: ALIGN 16 $L$dec_non_avx: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -352,6 +378,7 @@ $L$dec_non_avx: and rsp,-64 mov QWORD[16+rsp],rax + $L$dec4x_body: movdqu xmm12,XMMWORD[rsi] lea rsi,[120+rsi] @@ -560,6 +587,7 @@ DB 102,65,15,56,223,233 jnz NEAR $L$oop_dec4x mov rax,QWORD[16+rsp] + mov edx,DWORD[24+rsp] lea rdi,[160+rdi] @@ -578,16 +606,24 @@ $L$dec4x_done: mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$dec4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_multi_cbc_decrypt: ALIGN 32 @@ -601,14 +637,22 @@ $L$SEH_begin_aesni_multi_cbc_encrypt_avx: mov rdx,r8 + _avx_cbc_enc_shortcut: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -632,6 +676,7 @@ _avx_cbc_enc_shortcut: and rsp,-128 mov QWORD[16+rsp],rax + $L$enc8x_body: vzeroupper vmovdqu xmm15,XMMWORD[rsi] @@ -1033,6 +1078,7 @@ $L$enc8x_tail: + $L$enc8x_done: vzeroupper movaps xmm6,XMMWORD[((-216))+rax] @@ -1046,16 +1092,24 @@ $L$enc8x_done: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$enc8x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_multi_cbc_encrypt_avx: @@ -1070,14 +1124,22 @@ $L$SEH_begin_aesni_multi_cbc_decrypt_avx: mov rdx,r8 + _avx_cbc_dec_shortcut: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -1103,6 +1165,7 @@ _avx_cbc_dec_shortcut: sub rsp,192 mov QWORD[16+rsp],rax + $L$dec8x_body: vzeroupper vmovdqu xmm15,XMMWORD[rsi] @@ -1542,6 +1605,7 @@ $L$dec8x_tail: + $L$dec8x_done: vzeroupper movaps xmm6,XMMWORD[((-216))+rax] @@ -1555,16 +1619,24 @@ $L$dec8x_done: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$dec8x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_multi_cbc_decrypt_avx: EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm index 45fa82e223..925d1be94a 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm @@ -38,18 +38,26 @@ $L$SEH_begin_aesni_cbc_sha1_enc_ssse3: mov r9,QWORD[48+rsp] + mov r10,QWORD[56+rsp] push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-264))+rsp] + movaps XMMWORD[(96+0)+rsp],xmm6 movaps XMMWORD[(96+16)+rsp],xmm7 movaps XMMWORD[(96+32)+rsp],xmm8 @@ -1400,17 +1408,26 @@ DB 102,15,56,221,209 movaps xmm14,XMMWORD[((96+128))+rsp] movaps xmm15,XMMWORD[((96+144))+rsp] lea rsi,[264+rsp] + mov r15,QWORD[rsi] + mov r14,QWORD[8+rsi] + mov r13,QWORD[16+rsi] + mov r12,QWORD[24+rsi] + mov rbp,QWORD[32+rsi] + mov rbx,QWORD[40+rsi] + lea rsp,[48+rsi] + $L$epilogue_ssse3: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_cbc_sha1_enc_ssse3: ALIGN 32 @@ -1427,18 +1444,26 @@ $L$SEH_begin_aesni_cbc_sha1_enc_avx: mov r9,QWORD[48+rsp] + mov r10,QWORD[56+rsp] push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-264))+rsp] + movaps XMMWORD[(96+0)+rsp],xmm6 movaps XMMWORD[(96+16)+rsp],xmm7 movaps XMMWORD[(96+32)+rsp],xmm8 @@ -2733,17 +2758,26 @@ $L$vaesenclast10: movaps xmm14,XMMWORD[((96+128))+rsp] movaps xmm15,XMMWORD[((96+144))+rsp] lea rsi,[264+rsp] + mov r15,QWORD[rsi] + mov r14,QWORD[8+rsi] + mov r13,QWORD[16+rsi] + mov r12,QWORD[24+rsi] + mov rbp,QWORD[32+rsi] + mov rbx,QWORD[40+rsi] + lea rsp,[48+rsi] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_cbc_sha1_enc_avx: ALIGN 64 K_XX_XX: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm index f148890c00..b5d50c74db 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm @@ -98,15 +98,23 @@ $L$SEH_begin_aesni_cbc_sha256_enc_xop: mov r9,QWORD[48+rsp] + $L$xop_shortcut: mov r10,QWORD[56+rsp] + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + sub rsp,288 and rsp,-64 @@ -122,7 +130,8 @@ $L$xop_shortcut: mov QWORD[((64+32))+rsp],r8 mov QWORD[((64+40))+rsp],r9 mov QWORD[((64+48))+rsp],r10 - mov QWORD[((64+56))+rsp],r11 + mov QWORD[120+rsp],rax + movaps XMMWORD[128+rsp],xmm6 movaps XMMWORD[144+rsp],xmm7 movaps XMMWORD[160+rsp],xmm8 @@ -1238,7 +1247,8 @@ DB 143,232,120,194,239,2 jb NEAR $L$loop_xop mov r8,QWORD[((64+32))+rsp] - mov rsi,QWORD[((64+56))+rsp] + mov rsi,QWORD[120+rsp] + vmovdqu XMMWORD[r8],xmm8 vzeroall movaps xmm6,XMMWORD[128+rsp] @@ -1251,17 +1261,25 @@ DB 143,232,120,194,239,2 movaps xmm13,XMMWORD[240+rsp] movaps xmm14,XMMWORD[256+rsp] movaps xmm15,XMMWORD[272+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_xop: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_cbc_sha256_enc_xop: ALIGN 64 @@ -1278,15 +1296,23 @@ $L$SEH_begin_aesni_cbc_sha256_enc_avx: mov r9,QWORD[48+rsp] + $L$avx_shortcut: mov r10,QWORD[56+rsp] + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + sub rsp,288 and rsp,-64 @@ -1302,7 +1328,8 @@ $L$avx_shortcut: mov QWORD[((64+32))+rsp],r8 mov QWORD[((64+40))+rsp],r9 mov QWORD[((64+48))+rsp],r10 - mov QWORD[((64+56))+rsp],r11 + mov QWORD[120+rsp],rax + movaps XMMWORD[128+rsp],xmm6 movaps XMMWORD[144+rsp],xmm7 movaps XMMWORD[160+rsp],xmm8 @@ -2449,7 +2476,8 @@ $L$avx_00_47: jb NEAR $L$loop_avx mov r8,QWORD[((64+32))+rsp] - mov rsi,QWORD[((64+56))+rsp] + mov rsi,QWORD[120+rsp] + vmovdqu XMMWORD[r8],xmm8 vzeroall movaps xmm6,XMMWORD[128+rsp] @@ -2462,17 +2490,25 @@ $L$avx_00_47: movaps xmm13,XMMWORD[240+rsp] movaps xmm14,XMMWORD[256+rsp] movaps xmm15,XMMWORD[272+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_cbc_sha256_enc_avx: ALIGN 64 @@ -2489,15 +2525,23 @@ $L$SEH_begin_aesni_cbc_sha256_enc_avx2: mov r9,QWORD[48+rsp] + $L$avx2_shortcut: mov r10,QWORD[56+rsp] + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + sub rsp,736 and rsp,-256*4 add rsp,448 @@ -2514,7 +2558,8 @@ $L$avx2_shortcut: mov QWORD[((64+32))+rsp],r8 mov QWORD[((64+40))+rsp],r9 mov QWORD[((64+48))+rsp],r10 - mov QWORD[((64+56))+rsp],r11 + mov QWORD[120+rsp],rax + movaps XMMWORD[128+rsp],xmm6 movaps XMMWORD[144+rsp],xmm7 movaps XMMWORD[160+rsp],xmm8 @@ -4086,7 +4131,8 @@ $L$ower_avx2: $L$done_avx2: lea rsp,[rbp] mov r8,QWORD[((64+32))+rsp] - mov rsi,QWORD[((64+56))+rsp] + mov rsi,QWORD[120+rsp] + vmovdqu XMMWORD[r8],xmm8 vzeroall movaps xmm6,XMMWORD[128+rsp] @@ -4099,17 +4145,25 @@ $L$done_avx2: movaps xmm13,XMMWORD[240+rsp] movaps xmm14,XMMWORD[256+rsp] movaps xmm15,XMMWORD[272+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_avx2: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_cbc_sha256_enc_avx2: ALIGN 32 @@ -4554,7 +4608,6 @@ $L$not_in_shaext: $L$not_in_avx2: mov rsi,rax mov rax,QWORD[((64+56))+rax] - lea rax,[48+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm index 0f4790eead..3daf8476c3 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm @@ -1100,6 +1100,7 @@ $L$SEH_begin_aesni_ctr32_encrypt_blocks: mov r8,QWORD[40+rsp] + cmp rdx,1 jne NEAR $L$ctr32_bulk @@ -1129,22 +1130,23 @@ DB 102,15,56,221,209 ALIGN 16 $L$ctr32_bulk: - lea rax,[rsp] + lea r11,[rsp] + push rbp + sub rsp,288 and rsp,-16 - movaps XMMWORD[(-168)+rax],xmm6 - movaps XMMWORD[(-152)+rax],xmm7 - movaps XMMWORD[(-136)+rax],xmm8 - movaps XMMWORD[(-120)+rax],xmm9 - movaps XMMWORD[(-104)+rax],xmm10 - movaps XMMWORD[(-88)+rax],xmm11 - movaps XMMWORD[(-72)+rax],xmm12 - movaps XMMWORD[(-56)+rax],xmm13 - movaps XMMWORD[(-40)+rax],xmm14 - movaps XMMWORD[(-24)+rax],xmm15 + movaps XMMWORD[(-168)+r11],xmm6 + movaps XMMWORD[(-152)+r11],xmm7 + movaps XMMWORD[(-136)+r11],xmm8 + movaps XMMWORD[(-120)+r11],xmm9 + movaps XMMWORD[(-104)+r11],xmm10 + movaps XMMWORD[(-88)+r11],xmm11 + movaps XMMWORD[(-72)+r11],xmm12 + movaps XMMWORD[(-56)+r11],xmm13 + movaps XMMWORD[(-40)+r11],xmm14 + movaps XMMWORD[(-24)+r11],xmm15 $L$ctr32_body: - lea rbp,[((-8))+rax] @@ -1153,7 +1155,7 @@ $L$ctr32_body: movdqu xmm0,XMMWORD[rcx] mov r8d,DWORD[12+r8] pxor xmm2,xmm0 - mov r11d,DWORD[12+rcx] + mov ebp,DWORD[12+rcx] movdqa XMMWORD[rsp],xmm2 bswap r8d movdqa xmm3,xmm2 @@ -1169,8 +1171,8 @@ $L$ctr32_body: lea rdx,[2+r8] bswap eax bswap edx - xor eax,r11d - xor edx,r11d + xor eax,ebp + xor edx,ebp DB 102,15,58,34,216,3 lea rax,[3+r8] movdqa XMMWORD[16+rsp],xmm3 @@ -1179,25 +1181,25 @@ DB 102,15,58,34,226,3 mov rdx,r10 lea r10,[4+r8] movdqa XMMWORD[32+rsp],xmm4 - xor eax,r11d + xor eax,ebp bswap r10d DB 102,15,58,34,232,3 - xor r10d,r11d + xor r10d,ebp movdqa XMMWORD[48+rsp],xmm5 lea r9,[5+r8] mov DWORD[((64+12))+rsp],r10d bswap r9d lea r10,[6+r8] mov eax,DWORD[240+rcx] - xor r9d,r11d + xor r9d,ebp bswap r10d mov DWORD[((80+12))+rsp],r9d - xor r10d,r11d + xor r10d,ebp lea r9,[7+r8] mov DWORD[((96+12))+rsp],r10d bswap r9d mov r10d,DWORD[((OPENSSL_ia32cap_P+4))] - xor r9d,r11d + xor r9d,ebp and r10d,71303168 mov DWORD[((112+12))+rsp],r9d @@ -1221,7 +1223,7 @@ ALIGN 16 $L$ctr32_6x: shl eax,4 mov r10d,48 - bswap r11d + bswap ebp lea rcx,[32+rax*1+rcx] sub r10,rax jmp NEAR $L$ctr32_loop6 @@ -1232,32 +1234,32 @@ $L$ctr32_loop6: movups xmm0,XMMWORD[((-48))+r10*1+rcx] DB 102,15,56,220,209 mov eax,r8d - xor eax,r11d + xor eax,ebp DB 102,15,56,220,217 DB 0x0f,0x38,0xf1,0x44,0x24,12 lea eax,[1+r8] DB 102,15,56,220,225 - xor eax,r11d + xor eax,ebp DB 0x0f,0x38,0xf1,0x44,0x24,28 DB 102,15,56,220,233 lea eax,[2+r8] - xor eax,r11d + xor eax,ebp DB 102,15,56,220,241 DB 0x0f,0x38,0xf1,0x44,0x24,44 lea eax,[3+r8] DB 102,15,56,220,249 movups xmm1,XMMWORD[((-32))+r10*1+rcx] - xor eax,r11d + xor eax,ebp DB 102,15,56,220,208 DB 0x0f,0x38,0xf1,0x44,0x24,60 lea eax,[4+r8] DB 102,15,56,220,216 - xor eax,r11d + xor eax,ebp DB 0x0f,0x38,0xf1,0x44,0x24,76 DB 102,15,56,220,224 lea eax,[5+r8] - xor eax,r11d + xor eax,ebp DB 102,15,56,220,232 DB 0x0f,0x38,0xf1,0x44,0x24,92 mov rax,r10 @@ -1318,7 +1320,7 @@ DB 102,15,56,220,217 bswap r9d movups xmm0,XMMWORD[((32-128))+rcx] DB 102,15,56,220,225 - xor r9d,r11d + xor r9d,ebp nop DB 102,15,56,220,233 mov DWORD[((0+12))+rsp],r9d @@ -1331,7 +1333,7 @@ DB 102,68,15,56,220,201 bswap r9d DB 102,15,56,220,208 DB 102,15,56,220,216 - xor r9d,r11d + xor r9d,ebp DB 0x66,0x90 DB 102,15,56,220,224 DB 102,15,56,220,232 @@ -1345,7 +1347,7 @@ DB 102,68,15,56,220,200 bswap r9d DB 102,15,56,220,209 DB 102,15,56,220,217 - xor r9d,r11d + xor r9d,ebp DB 0x66,0x90 DB 102,15,56,220,225 DB 102,15,56,220,233 @@ -1359,7 +1361,7 @@ DB 102,68,15,56,220,201 bswap r9d DB 102,15,56,220,208 DB 102,15,56,220,216 - xor r9d,r11d + xor r9d,ebp DB 0x66,0x90 DB 102,15,56,220,224 DB 102,15,56,220,232 @@ -1373,7 +1375,7 @@ DB 102,68,15,56,220,200 bswap r9d DB 102,15,56,220,209 DB 102,15,56,220,217 - xor r9d,r11d + xor r9d,ebp DB 0x66,0x90 DB 102,15,56,220,225 DB 102,15,56,220,233 @@ -1387,7 +1389,7 @@ DB 102,68,15,56,220,201 bswap r9d DB 102,15,56,220,208 DB 102,15,56,220,216 - xor r9d,r11d + xor r9d,ebp DB 0x66,0x90 DB 102,15,56,220,224 DB 102,15,56,220,232 @@ -1401,7 +1403,7 @@ DB 102,68,15,56,220,200 bswap r9d DB 102,15,56,220,209 DB 102,15,56,220,217 - xor r9d,r11d + xor r9d,ebp DB 0x66,0x90 DB 102,15,56,220,225 DB 102,15,56,220,233 @@ -1416,7 +1418,7 @@ DB 102,68,15,56,220,201 DB 102,15,56,220,208 DB 102,15,56,220,216 DB 102,15,56,220,224 - xor r9d,r11d + xor r9d,ebp movdqu xmm10,XMMWORD[rdi] DB 102,15,56,220,232 mov DWORD[((112+12))+rsp],r9d @@ -1651,32 +1653,32 @@ DB 102,15,56,221,225 $L$ctr32_done: xorps xmm0,xmm0 - xor r11d,r11d + xor ebp,ebp pxor xmm1,xmm1 pxor xmm2,xmm2 pxor xmm3,xmm3 pxor xmm4,xmm4 pxor xmm5,xmm5 - movaps xmm6,XMMWORD[((-160))+rbp] - movaps XMMWORD[(-160)+rbp],xmm0 - movaps xmm7,XMMWORD[((-144))+rbp] - movaps XMMWORD[(-144)+rbp],xmm0 - movaps xmm8,XMMWORD[((-128))+rbp] - movaps XMMWORD[(-128)+rbp],xmm0 - movaps xmm9,XMMWORD[((-112))+rbp] - movaps XMMWORD[(-112)+rbp],xmm0 - movaps xmm10,XMMWORD[((-96))+rbp] - movaps XMMWORD[(-96)+rbp],xmm0 - movaps xmm11,XMMWORD[((-80))+rbp] - movaps XMMWORD[(-80)+rbp],xmm0 - movaps xmm12,XMMWORD[((-64))+rbp] - movaps XMMWORD[(-64)+rbp],xmm0 - movaps xmm13,XMMWORD[((-48))+rbp] - movaps XMMWORD[(-48)+rbp],xmm0 - movaps xmm14,XMMWORD[((-32))+rbp] - movaps XMMWORD[(-32)+rbp],xmm0 - movaps xmm15,XMMWORD[((-16))+rbp] - movaps XMMWORD[(-16)+rbp],xmm0 + movaps xmm6,XMMWORD[((-168))+r11] + movaps XMMWORD[(-168)+r11],xmm0 + movaps xmm7,XMMWORD[((-152))+r11] + movaps XMMWORD[(-152)+r11],xmm0 + movaps xmm8,XMMWORD[((-136))+r11] + movaps XMMWORD[(-136)+r11],xmm0 + movaps xmm9,XMMWORD[((-120))+r11] + movaps XMMWORD[(-120)+r11],xmm0 + movaps xmm10,XMMWORD[((-104))+r11] + movaps XMMWORD[(-104)+r11],xmm0 + movaps xmm11,XMMWORD[((-88))+r11] + movaps XMMWORD[(-88)+r11],xmm0 + movaps xmm12,XMMWORD[((-72))+r11] + movaps XMMWORD[(-72)+r11],xmm0 + movaps xmm13,XMMWORD[((-56))+r11] + movaps XMMWORD[(-56)+r11],xmm0 + movaps xmm14,XMMWORD[((-40))+r11] + movaps XMMWORD[(-40)+r11],xmm0 + movaps xmm15,XMMWORD[((-24))+r11] + movaps XMMWORD[(-24)+r11],xmm0 movaps XMMWORD[rsp],xmm0 movaps XMMWORD[16+rsp],xmm0 movaps XMMWORD[32+rsp],xmm0 @@ -1685,12 +1687,15 @@ $L$ctr32_done: movaps XMMWORD[80+rsp],xmm0 movaps XMMWORD[96+rsp],xmm0 movaps XMMWORD[112+rsp],xmm0 - lea rsp,[rbp] - pop rbp + mov rbp,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$ctr32_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_ctr32_encrypt_blocks: global aesni_xts_encrypt @@ -1708,22 +1713,24 @@ $L$SEH_begin_aesni_xts_encrypt: mov r9,QWORD[48+rsp] - lea rax,[rsp] + + lea r11,[rsp] + push rbp + sub rsp,272 and rsp,-16 - movaps XMMWORD[(-168)+rax],xmm6 - movaps XMMWORD[(-152)+rax],xmm7 - movaps XMMWORD[(-136)+rax],xmm8 - movaps XMMWORD[(-120)+rax],xmm9 - movaps XMMWORD[(-104)+rax],xmm10 - movaps XMMWORD[(-88)+rax],xmm11 - movaps XMMWORD[(-72)+rax],xmm12 - movaps XMMWORD[(-56)+rax],xmm13 - movaps XMMWORD[(-40)+rax],xmm14 - movaps XMMWORD[(-24)+rax],xmm15 + movaps XMMWORD[(-168)+r11],xmm6 + movaps XMMWORD[(-152)+r11],xmm7 + movaps XMMWORD[(-136)+r11],xmm8 + movaps XMMWORD[(-120)+r11],xmm9 + movaps XMMWORD[(-104)+r11],xmm10 + movaps XMMWORD[(-88)+r11],xmm11 + movaps XMMWORD[(-72)+r11],xmm12 + movaps XMMWORD[(-56)+r11],xmm13 + movaps XMMWORD[(-40)+r11],xmm14 + movaps XMMWORD[(-24)+r11],xmm15 $L$xts_enc_body: - lea rbp,[((-8))+rax] movups xmm2,XMMWORD[r9] mov eax,DWORD[240+r8] mov r10d,DWORD[240+rcx] @@ -1739,7 +1746,7 @@ DB 102,15,56,220,209 jnz NEAR $L$oop_enc1_8 DB 102,15,56,221,209 movups xmm0,XMMWORD[rcx] - mov r11,rcx + mov rbp,rcx mov eax,r10d shl r10d,4 mov r9,rdx @@ -1795,9 +1802,9 @@ DB 102,15,56,221,209 jc NEAR $L$xts_enc_short mov eax,16+96 - lea rcx,[32+r10*1+r11] + lea rcx,[32+r10*1+rbp] sub rax,r10 - movups xmm1,XMMWORD[16+r11] + movups xmm1,XMMWORD[16+rbp] mov r10,rax lea r8,[$L$xts_magic] jmp NEAR $L$xts_enc_grandloop @@ -1822,7 +1829,7 @@ DB 102,15,56,220,225 movdqa xmm9,XMMWORD[96+rsp] pxor xmm6,xmm14 DB 102,15,56,220,233 - movups xmm0,XMMWORD[32+r11] + movups xmm0,XMMWORD[32+rbp] lea rdi,[96+rdi] pxor xmm7,xmm8 @@ -1831,7 +1838,7 @@ DB 102,15,56,220,241 pxor xmm11,xmm9 movdqa XMMWORD[rsp],xmm10 DB 102,15,56,220,249 - movups xmm1,XMMWORD[48+r11] + movups xmm1,XMMWORD[48+rbp] pxor xmm12,xmm9 DB 102,15,56,220,208 @@ -1846,7 +1853,7 @@ DB 102,15,56,220,232 movdqa XMMWORD[64+rsp],xmm14 DB 102,15,56,220,240 DB 102,15,56,220,248 - movups xmm0,XMMWORD[64+r11] + movups xmm0,XMMWORD[64+rbp] movdqa XMMWORD[80+rsp],xmm8 pshufd xmm9,xmm15,0x5f jmp NEAR $L$xts_enc_loop6 @@ -1878,7 +1885,7 @@ DB 102,15,56,220,209 psrad xmm14,31 DB 102,15,56,220,217 pand xmm14,xmm8 - movups xmm10,XMMWORD[r11] + movups xmm10,XMMWORD[rbp] DB 102,15,56,220,225 DB 102,15,56,220,233 DB 102,15,56,220,241 @@ -1946,10 +1953,10 @@ DB 102,15,56,220,217 DB 102,15,56,220,225 DB 102,15,56,220,233 pxor xmm15,xmm0 - movups xmm0,XMMWORD[r11] + movups xmm0,XMMWORD[rbp] DB 102,15,56,220,241 DB 102,15,56,220,249 - movups xmm1,XMMWORD[16+r11] + movups xmm1,XMMWORD[16+rbp] pxor xmm14,xmm15 DB 102,15,56,221,84,36,0 @@ -1976,7 +1983,7 @@ DB 102,15,56,221,124,36,80 mov eax,16+96 sub eax,r10d - mov rcx,r11 + mov rcx,rbp shr eax,4 $L$xts_enc_short: @@ -2132,7 +2139,7 @@ $L$xts_enc_steal: jnz NEAR $L$xts_enc_steal sub rsi,r9 - mov rcx,r11 + mov rcx,rbp mov eax,r10d movups xmm2,XMMWORD[((-16))+rsi] @@ -2158,26 +2165,26 @@ $L$xts_enc_ret: pxor xmm3,xmm3 pxor xmm4,xmm4 pxor xmm5,xmm5 - movaps xmm6,XMMWORD[((-160))+rbp] - movaps XMMWORD[(-160)+rbp],xmm0 - movaps xmm7,XMMWORD[((-144))+rbp] - movaps XMMWORD[(-144)+rbp],xmm0 - movaps xmm8,XMMWORD[((-128))+rbp] - movaps XMMWORD[(-128)+rbp],xmm0 - movaps xmm9,XMMWORD[((-112))+rbp] - movaps XMMWORD[(-112)+rbp],xmm0 - movaps xmm10,XMMWORD[((-96))+rbp] - movaps XMMWORD[(-96)+rbp],xmm0 - movaps xmm11,XMMWORD[((-80))+rbp] - movaps XMMWORD[(-80)+rbp],xmm0 - movaps xmm12,XMMWORD[((-64))+rbp] - movaps XMMWORD[(-64)+rbp],xmm0 - movaps xmm13,XMMWORD[((-48))+rbp] - movaps XMMWORD[(-48)+rbp],xmm0 - movaps xmm14,XMMWORD[((-32))+rbp] - movaps XMMWORD[(-32)+rbp],xmm0 - movaps xmm15,XMMWORD[((-16))+rbp] - movaps XMMWORD[(-16)+rbp],xmm0 + movaps xmm6,XMMWORD[((-168))+r11] + movaps XMMWORD[(-168)+r11],xmm0 + movaps xmm7,XMMWORD[((-152))+r11] + movaps XMMWORD[(-152)+r11],xmm0 + movaps xmm8,XMMWORD[((-136))+r11] + movaps XMMWORD[(-136)+r11],xmm0 + movaps xmm9,XMMWORD[((-120))+r11] + movaps XMMWORD[(-120)+r11],xmm0 + movaps xmm10,XMMWORD[((-104))+r11] + movaps XMMWORD[(-104)+r11],xmm0 + movaps xmm11,XMMWORD[((-88))+r11] + movaps XMMWORD[(-88)+r11],xmm0 + movaps xmm12,XMMWORD[((-72))+r11] + movaps XMMWORD[(-72)+r11],xmm0 + movaps xmm13,XMMWORD[((-56))+r11] + movaps XMMWORD[(-56)+r11],xmm0 + movaps xmm14,XMMWORD[((-40))+r11] + movaps XMMWORD[(-40)+r11],xmm0 + movaps xmm15,XMMWORD[((-24))+r11] + movaps XMMWORD[(-24)+r11],xmm0 movaps XMMWORD[rsp],xmm0 movaps XMMWORD[16+rsp],xmm0 movaps XMMWORD[32+rsp],xmm0 @@ -2185,12 +2192,15 @@ $L$xts_enc_ret: movaps XMMWORD[64+rsp],xmm0 movaps XMMWORD[80+rsp],xmm0 movaps XMMWORD[96+rsp],xmm0 - lea rsp,[rbp] - pop rbp + mov rbp,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$xts_enc_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_xts_encrypt: global aesni_xts_decrypt @@ -2208,22 +2218,24 @@ $L$SEH_begin_aesni_xts_decrypt: mov r9,QWORD[48+rsp] - lea rax,[rsp] + + lea r11,[rsp] + push rbp + sub rsp,272 and rsp,-16 - movaps XMMWORD[(-168)+rax],xmm6 - movaps XMMWORD[(-152)+rax],xmm7 - movaps XMMWORD[(-136)+rax],xmm8 - movaps XMMWORD[(-120)+rax],xmm9 - movaps XMMWORD[(-104)+rax],xmm10 - movaps XMMWORD[(-88)+rax],xmm11 - movaps XMMWORD[(-72)+rax],xmm12 - movaps XMMWORD[(-56)+rax],xmm13 - movaps XMMWORD[(-40)+rax],xmm14 - movaps XMMWORD[(-24)+rax],xmm15 + movaps XMMWORD[(-168)+r11],xmm6 + movaps XMMWORD[(-152)+r11],xmm7 + movaps XMMWORD[(-136)+r11],xmm8 + movaps XMMWORD[(-120)+r11],xmm9 + movaps XMMWORD[(-104)+r11],xmm10 + movaps XMMWORD[(-88)+r11],xmm11 + movaps XMMWORD[(-72)+r11],xmm12 + movaps XMMWORD[(-56)+r11],xmm13 + movaps XMMWORD[(-40)+r11],xmm14 + movaps XMMWORD[(-24)+r11],xmm15 $L$xts_dec_body: - lea rbp,[((-8))+rax] movups xmm2,XMMWORD[r9] mov eax,DWORD[240+r8] mov r10d,DWORD[240+rcx] @@ -2245,7 +2257,7 @@ DB 102,15,56,221,209 sub rdx,rax movups xmm0,XMMWORD[rcx] - mov r11,rcx + mov rbp,rcx mov eax,r10d shl r10d,4 mov r9,rdx @@ -2301,9 +2313,9 @@ DB 102,15,56,221,209 jc NEAR $L$xts_dec_short mov eax,16+96 - lea rcx,[32+r10*1+r11] + lea rcx,[32+r10*1+rbp] sub rax,r10 - movups xmm1,XMMWORD[16+r11] + movups xmm1,XMMWORD[16+rbp] mov r10,rax lea r8,[$L$xts_magic] jmp NEAR $L$xts_dec_grandloop @@ -2328,7 +2340,7 @@ DB 102,15,56,222,225 movdqa xmm9,XMMWORD[96+rsp] pxor xmm6,xmm14 DB 102,15,56,222,233 - movups xmm0,XMMWORD[32+r11] + movups xmm0,XMMWORD[32+rbp] lea rdi,[96+rdi] pxor xmm7,xmm8 @@ -2337,7 +2349,7 @@ DB 102,15,56,222,241 pxor xmm11,xmm9 movdqa XMMWORD[rsp],xmm10 DB 102,15,56,222,249 - movups xmm1,XMMWORD[48+r11] + movups xmm1,XMMWORD[48+rbp] pxor xmm12,xmm9 DB 102,15,56,222,208 @@ -2352,7 +2364,7 @@ DB 102,15,56,222,232 movdqa XMMWORD[64+rsp],xmm14 DB 102,15,56,222,240 DB 102,15,56,222,248 - movups xmm0,XMMWORD[64+r11] + movups xmm0,XMMWORD[64+rbp] movdqa XMMWORD[80+rsp],xmm8 pshufd xmm9,xmm15,0x5f jmp NEAR $L$xts_dec_loop6 @@ -2384,7 +2396,7 @@ DB 102,15,56,222,209 psrad xmm14,31 DB 102,15,56,222,217 pand xmm14,xmm8 - movups xmm10,XMMWORD[r11] + movups xmm10,XMMWORD[rbp] DB 102,15,56,222,225 DB 102,15,56,222,233 DB 102,15,56,222,241 @@ -2452,10 +2464,10 @@ DB 102,15,56,222,217 DB 102,15,56,222,225 DB 102,15,56,222,233 pxor xmm15,xmm0 - movups xmm0,XMMWORD[r11] + movups xmm0,XMMWORD[rbp] DB 102,15,56,222,241 DB 102,15,56,222,249 - movups xmm1,XMMWORD[16+r11] + movups xmm1,XMMWORD[16+rbp] pxor xmm14,xmm15 DB 102,15,56,223,84,36,0 @@ -2482,7 +2494,7 @@ DB 102,15,56,223,124,36,80 mov eax,16+96 sub eax,r10d - mov rcx,r11 + mov rcx,rbp shr eax,4 $L$xts_dec_short: @@ -2639,7 +2651,7 @@ $L$xts_dec_done: jz NEAR $L$xts_dec_ret $L$xts_dec_done2: mov rdx,r9 - mov rcx,r11 + mov rcx,rbp mov eax,r10d movups xmm2,XMMWORD[rdi] @@ -2669,7 +2681,7 @@ $L$xts_dec_steal: jnz NEAR $L$xts_dec_steal sub rsi,r9 - mov rcx,r11 + mov rcx,rbp mov eax,r10d movups xmm2,XMMWORD[rsi] @@ -2695,26 +2707,26 @@ $L$xts_dec_ret: pxor xmm3,xmm3 pxor xmm4,xmm4 pxor xmm5,xmm5 - movaps xmm6,XMMWORD[((-160))+rbp] - movaps XMMWORD[(-160)+rbp],xmm0 - movaps xmm7,XMMWORD[((-144))+rbp] - movaps XMMWORD[(-144)+rbp],xmm0 - movaps xmm8,XMMWORD[((-128))+rbp] - movaps XMMWORD[(-128)+rbp],xmm0 - movaps xmm9,XMMWORD[((-112))+rbp] - movaps XMMWORD[(-112)+rbp],xmm0 - movaps xmm10,XMMWORD[((-96))+rbp] - movaps XMMWORD[(-96)+rbp],xmm0 - movaps xmm11,XMMWORD[((-80))+rbp] - movaps XMMWORD[(-80)+rbp],xmm0 - movaps xmm12,XMMWORD[((-64))+rbp] - movaps XMMWORD[(-64)+rbp],xmm0 - movaps xmm13,XMMWORD[((-48))+rbp] - movaps XMMWORD[(-48)+rbp],xmm0 - movaps xmm14,XMMWORD[((-32))+rbp] - movaps XMMWORD[(-32)+rbp],xmm0 - movaps xmm15,XMMWORD[((-16))+rbp] - movaps XMMWORD[(-16)+rbp],xmm0 + movaps xmm6,XMMWORD[((-168))+r11] + movaps XMMWORD[(-168)+r11],xmm0 + movaps xmm7,XMMWORD[((-152))+r11] + movaps XMMWORD[(-152)+r11],xmm0 + movaps xmm8,XMMWORD[((-136))+r11] + movaps XMMWORD[(-136)+r11],xmm0 + movaps xmm9,XMMWORD[((-120))+r11] + movaps XMMWORD[(-120)+r11],xmm0 + movaps xmm10,XMMWORD[((-104))+r11] + movaps XMMWORD[(-104)+r11],xmm0 + movaps xmm11,XMMWORD[((-88))+r11] + movaps XMMWORD[(-88)+r11],xmm0 + movaps xmm12,XMMWORD[((-72))+r11] + movaps XMMWORD[(-72)+r11],xmm0 + movaps xmm13,XMMWORD[((-56))+r11] + movaps XMMWORD[(-56)+r11],xmm0 + movaps xmm14,XMMWORD[((-40))+r11] + movaps XMMWORD[(-40)+r11],xmm0 + movaps xmm15,XMMWORD[((-24))+r11] + movaps XMMWORD[(-24)+r11],xmm0 movaps XMMWORD[rsp],xmm0 movaps XMMWORD[16+rsp],xmm0 movaps XMMWORD[32+rsp],xmm0 @@ -2722,12 +2734,15 @@ $L$xts_dec_ret: movaps XMMWORD[64+rsp],xmm0 movaps XMMWORD[80+rsp],xmm0 movaps XMMWORD[96+rsp],xmm0 - lea rsp,[rbp] - pop rbp + mov rbp,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$xts_dec_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_xts_decrypt: global aesni_ocb_encrypt @@ -2745,12 +2760,18 @@ $L$SEH_begin_aesni_ocb_encrypt: mov r9,QWORD[48+rsp] + lea rax,[rsp] push rbx + push rbp + push r12 + push r13 + push r14 + lea rsp,[((-160))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -2950,16 +2971,23 @@ $L$ocb_enc_done: movaps XMMWORD[144+rsp],xmm0 lea rax,[((160+40))+rsp] $L$ocb_enc_pop: - lea rsp,[160+rsp] - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx + mov r14,QWORD[((-40))+rax] + + mov r13,QWORD[((-32))+rax] + + mov r12,QWORD[((-24))+rax] + + mov rbp,QWORD[((-16))+rax] + + mov rbx,QWORD[((-8))+rax] + + lea rsp,[rax] + $L$ocb_enc_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_ocb_encrypt: @@ -3184,12 +3212,18 @@ $L$SEH_begin_aesni_ocb_decrypt: mov r9,QWORD[48+rsp] + lea rax,[rsp] push rbx + push rbp + push r12 + push r13 + push r14 + lea rsp,[((-160))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -3411,16 +3445,23 @@ $L$ocb_dec_done: movaps XMMWORD[144+rsp],xmm0 lea rax,[((160+40))+rsp] $L$ocb_dec_pop: - lea rsp,[160+rsp] - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx + mov r14,QWORD[((-40))+rax] + + mov r13,QWORD[((-32))+rax] + + mov r12,QWORD[((-24))+rax] + + mov rbp,QWORD[((-16))+rax] + + mov rbx,QWORD[((-8))+rax] + + lea rsp,[rax] + $L$ocb_dec_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_ocb_decrypt: @@ -3633,6 +3674,7 @@ $L$SEH_begin_aesni_cbc_encrypt: mov r9,QWORD[48+rsp] + test rdx,rdx jz NEAR $L$cbc_ret @@ -3725,8 +3767,10 @@ DB 102,15,56,223,209 jmp NEAR $L$cbc_ret ALIGN 16 $L$cbc_decrypt_bulk: - lea rax,[rsp] + lea r11,[rsp] + push rbp + sub rsp,176 and rsp,-16 movaps XMMWORD[16+rsp],xmm6 @@ -3740,7 +3784,7 @@ $L$cbc_decrypt_bulk: movaps XMMWORD[144+rsp],xmm14 movaps XMMWORD[160+rsp],xmm15 $L$cbc_decrypt_body: - lea rbp,[((-8))+rax] + mov rbp,rcx movups xmm10,XMMWORD[r8] mov eax,r10d cmp rdx,0x50 @@ -3780,7 +3824,7 @@ $L$cbc_dec_loop8_enter: pxor xmm3,xmm0 movups xmm1,XMMWORD[((16-112))+rcx] pxor xmm4,xmm0 - xor r11,r11 + mov rbp,-1 cmp rdx,0x70 pxor xmm5,xmm0 pxor xmm6,xmm0 @@ -3796,10 +3840,10 @@ DB 102,15,56,222,233 DB 102,15,56,222,241 DB 102,15,56,222,249 DB 102,68,15,56,222,193 - setnc r11b - shl r11,7 + adc rbp,0 + and rbp,128 DB 102,68,15,56,222,201 - add r11,rdi + add rbp,rdi movups xmm1,XMMWORD[((48-112))+rcx] DB 102,15,56,222,208 DB 102,15,56,222,216 @@ -3937,18 +3981,18 @@ DB 102,65,15,56,223,219 movdqu xmm0,XMMWORD[112+rdi] DB 102,65,15,56,223,228 lea rdi,[128+rdi] - movdqu xmm11,XMMWORD[r11] + movdqu xmm11,XMMWORD[rbp] DB 102,65,15,56,223,237 DB 102,65,15,56,223,246 - movdqu xmm12,XMMWORD[16+r11] - movdqu xmm13,XMMWORD[32+r11] + movdqu xmm12,XMMWORD[16+rbp] + movdqu xmm13,XMMWORD[32+rbp] DB 102,65,15,56,223,255 DB 102,68,15,56,223,193 - movdqu xmm14,XMMWORD[48+r11] - movdqu xmm15,XMMWORD[64+r11] + movdqu xmm14,XMMWORD[48+rbp] + movdqu xmm15,XMMWORD[64+rbp] DB 102,69,15,56,223,202 movdqa xmm10,xmm0 - movdqu xmm1,XMMWORD[80+r11] + movdqu xmm1,XMMWORD[80+rbp] movups xmm0,XMMWORD[((-112))+rcx] movups XMMWORD[rsi],xmm2 @@ -4067,7 +4111,7 @@ $L$cbc_dec_loop6_enter: pxor xmm5,xmm13 movdqu XMMWORD[32+rsi],xmm4 pxor xmm6,xmm14 - mov rcx,r11 + mov rcx,rbp movdqu XMMWORD[48+rsi],xmm5 pxor xmm7,xmm15 mov eax,r10d @@ -4236,18 +4280,23 @@ $L$cbc_dec_ret: movaps XMMWORD[144+rsp],xmm0 movaps xmm15,XMMWORD[160+rsp] movaps XMMWORD[160+rsp],xmm0 - lea rsp,[rbp] - pop rbp + mov rbp,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$cbc_ret: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_cbc_encrypt: global aesni_set_decrypt_key ALIGN 16 aesni_set_decrypt_key: + DB 0x48,0x83,0xEC,0x08 + call __aesni_set_encrypt_key shl edx,4 test eax,eax @@ -4280,7 +4329,9 @@ DB 102,15,56,219,192 pxor xmm0,xmm0 $L$dec_key_ret: add rsp,8 + DB 0F3h,0C3h ;repret + $L$SEH_end_set_decrypt_key: global aesni_set_encrypt_key @@ -4288,7 +4339,9 @@ global aesni_set_encrypt_key ALIGN 16 aesni_set_encrypt_key: __aesni_set_encrypt_key: + DB 0x48,0x83,0xEC,0x08 + mov rax,-1 test rcx,rcx jz NEAR $L$enc_key_ret @@ -4581,7 +4634,9 @@ $L$enc_key_ret: pxor xmm4,xmm4 pxor xmm5,xmm5 add rsp,8 + DB 0F3h,0C3h ;repret + $L$SEH_end_set_encrypt_key: ALIGN 16 @@ -4753,13 +4808,16 @@ ctr_xts_se_handler: cmp rbx,r10 jae NEAR $L$common_seh_tail - mov rax,QWORD[160+r8] - lea rsi,[((-160))+rax] + mov rax,QWORD[208+r8] + + lea rsi,[((-168))+rax] lea rdi,[512+r8] mov ecx,20 DD 0xa548f3fc - jmp NEAR $L$common_rbp_tail + mov rbp,QWORD[((-8))+rax] + mov QWORD[160+r8],rbp + jmp NEAR $L$common_seh_tail @@ -4841,9 +4899,13 @@ cbc_se_handler: cmp rbx,r10 jb NEAR $L$common_seh_tail + mov rax,QWORD[120+r8] + lea r10,[$L$cbc_decrypt_body] cmp rbx,r10 - jb NEAR $L$restore_cbc_rax + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] lea r10,[$L$cbc_ret] cmp rbx,r10 @@ -4854,15 +4916,10 @@ cbc_se_handler: mov ecx,20 DD 0xa548f3fc -$L$common_rbp_tail: - mov rax,QWORD[160+r8] - mov rbp,QWORD[rax] - lea rax,[8+rax] - mov QWORD[160+r8],rbp - jmp NEAR $L$common_seh_tail + mov rax,QWORD[208+r8] -$L$restore_cbc_rax: - mov rax,QWORD[120+r8] + mov rbp,QWORD[((-8))+rax] + mov QWORD[160+r8],rbp $L$common_seh_tail: mov rdi,QWORD[8+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm index 6d75248d1f..9ea8253d7c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm @@ -1072,6 +1072,7 @@ global bsaes_cbc_encrypt ALIGN 16 bsaes_cbc_encrypt: + mov r11d,DWORD[48+rsp] cmp r11d,0 jne NEAR asm_AES_cbc_encrypt @@ -1081,12 +1082,19 @@ bsaes_cbc_encrypt: mov rax,rsp $L$cbc_dec_prologue: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-72))+rsp] + mov r10,QWORD[160+rsp] lea rsp,[((-160))+rsp] movaps XMMWORD[64+rsp],xmm6 @@ -1101,6 +1109,7 @@ $L$cbc_dec_prologue: movaps XMMWORD[208+rsp],xmm15 $L$cbc_dec_body: mov rbp,rsp + mov eax,DWORD[240+r9] mov r12,rcx mov r13,rdx @@ -1319,7 +1328,8 @@ $L$cbc_dec_bzero: cmp rbp,rax ja NEAR $L$cbc_dec_bzero - lea rsp,[rbp] + lea rax,[120+rbp] + movaps xmm6,XMMWORD[64+rbp] movaps xmm7,XMMWORD[80+rbp] movaps xmm8,XMMWORD[96+rbp] @@ -1330,32 +1340,48 @@ $L$cbc_dec_bzero: movaps xmm13,XMMWORD[176+rbp] movaps xmm14,XMMWORD[192+rbp] movaps xmm15,XMMWORD[208+rbp] - lea rsp,[160+rbp] - mov r15,QWORD[72+rsp] - mov r14,QWORD[80+rsp] - mov r13,QWORD[88+rsp] - mov r12,QWORD[96+rsp] - mov rbx,QWORD[104+rsp] - mov rax,QWORD[112+rsp] - lea rsp,[120+rsp] - mov rbp,rax + lea rax,[160+rax] +$L$cbc_dec_tail: + mov r15,QWORD[((-48))+rax] + + mov r14,QWORD[((-40))+rax] + + mov r13,QWORD[((-32))+rax] + + mov r12,QWORD[((-24))+rax] + + mov rbx,QWORD[((-16))+rax] + + mov rbp,QWORD[((-8))+rax] + + lea rsp,[rax] + $L$cbc_dec_epilogue: DB 0F3h,0C3h ;repret + global bsaes_ctr32_encrypt_blocks ALIGN 16 bsaes_ctr32_encrypt_blocks: + mov rax,rsp $L$ctr_enc_prologue: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-72))+rsp] + mov r10,QWORD[160+rsp] lea rsp,[((-160))+rsp] movaps XMMWORD[64+rsp],xmm6 @@ -1370,6 +1396,7 @@ $L$ctr_enc_prologue: movaps XMMWORD[208+rsp],xmm15 $L$ctr_enc_body: mov rbp,rsp + movdqu xmm0,XMMWORD[r10] mov eax,DWORD[240+r9] mov r12,rcx @@ -1543,7 +1570,8 @@ $L$ctr_enc_bzero: cmp rbp,rax ja NEAR $L$ctr_enc_bzero - lea rsp,[rbp] + lea rax,[120+rbp] + movaps xmm6,XMMWORD[64+rbp] movaps xmm7,XMMWORD[80+rbp] movaps xmm8,XMMWORD[96+rbp] @@ -1554,31 +1582,47 @@ $L$ctr_enc_bzero: movaps xmm13,XMMWORD[176+rbp] movaps xmm14,XMMWORD[192+rbp] movaps xmm15,XMMWORD[208+rbp] - lea rsp,[160+rbp] - mov r15,QWORD[72+rsp] - mov r14,QWORD[80+rsp] - mov r13,QWORD[88+rsp] - mov r12,QWORD[96+rsp] - mov rbx,QWORD[104+rsp] - mov rax,QWORD[112+rsp] - lea rsp,[120+rsp] - mov rbp,rax + lea rax,[160+rax] +$L$ctr_enc_tail: + mov r15,QWORD[((-48))+rax] + + mov r14,QWORD[((-40))+rax] + + mov r13,QWORD[((-32))+rax] + + mov r12,QWORD[((-24))+rax] + + mov rbx,QWORD[((-16))+rax] + + mov rbp,QWORD[((-8))+rax] + + lea rsp,[rax] + $L$ctr_enc_epilogue: DB 0F3h,0C3h ;repret + global bsaes_xts_encrypt ALIGN 16 bsaes_xts_encrypt: + mov rax,rsp $L$xts_enc_prologue: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-72))+rsp] + mov r10,QWORD[160+rsp] mov r11,QWORD[168+rsp] lea rsp,[((-160))+rsp] @@ -1594,6 +1638,7 @@ $L$xts_enc_prologue: movaps XMMWORD[208+rsp],xmm15 $L$xts_enc_body: mov rbp,rsp + mov r12,rcx mov r13,rdx mov r14,r8 @@ -2019,7 +2064,8 @@ $L$xts_enc_bzero: cmp rbp,rax ja NEAR $L$xts_enc_bzero - lea rsp,[rbp] + lea rax,[120+rbp] + movaps xmm6,XMMWORD[64+rbp] movaps xmm7,XMMWORD[80+rbp] movaps xmm8,XMMWORD[96+rbp] @@ -2030,32 +2076,48 @@ $L$xts_enc_bzero: movaps xmm13,XMMWORD[176+rbp] movaps xmm14,XMMWORD[192+rbp] movaps xmm15,XMMWORD[208+rbp] - lea rsp,[160+rbp] - mov r15,QWORD[72+rsp] - mov r14,QWORD[80+rsp] - mov r13,QWORD[88+rsp] - mov r12,QWORD[96+rsp] - mov rbx,QWORD[104+rsp] - mov rax,QWORD[112+rsp] - lea rsp,[120+rsp] - mov rbp,rax + lea rax,[160+rax] +$L$xts_enc_tail: + mov r15,QWORD[((-48))+rax] + + mov r14,QWORD[((-40))+rax] + + mov r13,QWORD[((-32))+rax] + + mov r12,QWORD[((-24))+rax] + + mov rbx,QWORD[((-16))+rax] + + mov rbp,QWORD[((-8))+rax] + + lea rsp,[rax] + $L$xts_enc_epilogue: DB 0F3h,0C3h ;repret + global bsaes_xts_decrypt ALIGN 16 bsaes_xts_decrypt: + mov rax,rsp $L$xts_dec_prologue: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-72))+rsp] + mov r10,QWORD[160+rsp] mov r11,QWORD[168+rsp] lea rsp,[((-160))+rsp] @@ -2522,7 +2584,8 @@ $L$xts_dec_bzero: cmp rbp,rax ja NEAR $L$xts_dec_bzero - lea rsp,[rbp] + lea rax,[120+rbp] + movaps xmm6,XMMWORD[64+rbp] movaps xmm7,XMMWORD[80+rbp] movaps xmm8,XMMWORD[96+rbp] @@ -2533,19 +2596,27 @@ $L$xts_dec_bzero: movaps xmm13,XMMWORD[176+rbp] movaps xmm14,XMMWORD[192+rbp] movaps xmm15,XMMWORD[208+rbp] - lea rsp,[160+rbp] - mov r15,QWORD[72+rsp] - mov r14,QWORD[80+rsp] - mov r13,QWORD[88+rsp] - mov r12,QWORD[96+rsp] - mov rbx,QWORD[104+rsp] - mov rax,QWORD[112+rsp] - lea rsp,[120+rsp] - mov rbp,rax + lea rax,[160+rax] +$L$xts_dec_tail: + mov r15,QWORD[((-48))+rax] + + mov r14,QWORD[((-40))+rax] + + mov r13,QWORD[((-32))+rax] + + mov r12,QWORD[((-24))+rax] + + mov rbx,QWORD[((-16))+rax] + + mov rbp,QWORD[((-8))+rax] + + lea rsp,[rax] + $L$xts_dec_epilogue: DB 0F3h,0C3h ;repret + ALIGN 64 _bsaes_const: $L$M0ISR: @@ -2628,30 +2699,33 @@ se_handler: mov r10d,DWORD[r11] lea r10,[r10*1+rsi] cmp rbx,r10 - jb NEAR $L$in_prologue - - mov rax,QWORD[152+r8] + jbe NEAR $L$in_prologue mov r10d,DWORD[4+r11] lea r10,[r10*1+rsi] cmp rbx,r10 jae NEAR $L$in_prologue + mov r10d,DWORD[8+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$in_tail + mov rax,QWORD[160+r8] lea rsi,[64+rax] lea rdi,[512+r8] mov ecx,20 DD 0xa548f3fc - lea rax,[160+rax] - - mov rbp,QWORD[112+rax] - mov rbx,QWORD[104+rax] - mov r12,QWORD[96+rax] - mov r13,QWORD[88+rax] - mov r14,QWORD[80+rax] - mov r15,QWORD[72+rax] - lea rax,[120+rax] + lea rax,[((160+120))+rax] + +$L$in_tail: + mov rbp,QWORD[((-48))+rax] + mov rbx,QWORD[((-40))+rax] + mov r12,QWORD[((-32))+rax] + mov r13,QWORD[((-24))+rax] + mov r14,QWORD[((-16))+rax] + mov r15,QWORD[((-8))+rax] mov QWORD[144+r8],rbx mov QWORD[160+r8],rbp mov QWORD[216+r8],r12 @@ -2719,15 +2793,23 @@ $L$cbc_dec_info: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$cbc_dec_body wrt ..imagebase,$L$cbc_dec_epilogue wrt ..imagebase + DD $L$cbc_dec_tail wrt ..imagebase + DD 0 $L$ctr_enc_info: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$ctr_enc_body wrt ..imagebase,$L$ctr_enc_epilogue wrt ..imagebase + DD $L$ctr_enc_tail wrt ..imagebase + DD 0 $L$xts_enc_info: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase + DD $L$xts_enc_tail wrt ..imagebase + DD 0 $L$xts_dec_info: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase + DD $L$xts_dec_tail wrt ..imagebase + DD 0 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm index 86d26158d0..02a518607d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm @@ -20,13 +20,21 @@ $L$SEH_begin_rsaz_1024_sqr_avx2: mov r8,QWORD[40+rsp] + lea rax,[rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + vzeroupper lea rsp,[((-168))+rsp] vmovaps XMMWORD[(-216)+rax],xmm6 @@ -41,6 +49,7 @@ $L$SEH_begin_rsaz_1024_sqr_avx2: vmovaps XMMWORD[(-72)+rax],xmm15 $L$sqr_1024_body: mov rbp,rax + mov r13,rdx sub rsp,832 mov r15,r13 @@ -653,6 +662,8 @@ DB 0x67 vzeroall mov rax,rbp + +$L$sqr_1024_in_tail: movaps xmm6,XMMWORD[((-216))+rax] movaps xmm7,XMMWORD[((-200))+rax] movaps xmm8,XMMWORD[((-184))+rax] @@ -664,16 +675,24 @@ DB 0x67 movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$sqr_1024_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_1024_sqr_avx2: global rsaz_1024_mul_avx2 @@ -690,13 +709,21 @@ $L$SEH_begin_rsaz_1024_mul_avx2: mov r8,QWORD[40+rsp] + lea rax,[rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + vzeroupper lea rsp,[((-168))+rsp] vmovaps XMMWORD[(-216)+rax],xmm6 @@ -711,6 +738,7 @@ $L$SEH_begin_rsaz_1024_mul_avx2: vmovaps XMMWORD[(-72)+rax],xmm15 $L$mul_1024_body: mov rbp,rax + vzeroall mov r13,rdx sub rsp,64 @@ -1226,6 +1254,8 @@ $L$oop_mul_1024: vzeroupper mov rax,rbp + +$L$mul_1024_in_tail: movaps xmm6,XMMWORD[((-216))+rax] movaps xmm7,XMMWORD[((-200))+rax] movaps xmm8,XMMWORD[((-184))+rax] @@ -1237,16 +1267,24 @@ $L$oop_mul_1024: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$mul_1024_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_1024_mul_avx2: global rsaz_1024_red2norm_avx2 @@ -1631,8 +1669,10 @@ global rsaz_1024_gather5_avx2 ALIGN 32 rsaz_1024_gather5_avx2: + vzeroupper mov r11,rsp + lea rax,[((-136))+rsp] $L$SEH_begin_rsaz_1024_gather5: @@ -1764,10 +1804,12 @@ $L$oop_gather_1024: movaps xmm13,XMMWORD[((-56))+r11] movaps xmm14,XMMWORD[((-40))+r11] movaps xmm15,XMMWORD[((-24))+r11] -$L$SEH_end_rsaz_1024_gather5: lea rsp,[r11] + DB 0F3h,0C3h ;repret +$L$SEH_end_rsaz_1024_gather5: + EXTERN OPENSSL_ia32cap_P global rsaz_avx2_eligible @@ -1822,14 +1864,17 @@ rsaz_se_handler: cmp rbx,r10 jb NEAR $L$common_seh_tail - mov rax,QWORD[152+r8] - mov r10d,DWORD[4+r11] lea r10,[r10*1+rsi] cmp rbx,r10 jae NEAR $L$common_seh_tail - mov rax,QWORD[160+r8] + mov rbp,QWORD[160+r8] + + mov r10d,DWORD[8+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + cmovc rax,rbp mov r15,QWORD[((-48))+rax] mov r14,QWORD[((-40))+rax] @@ -1907,11 +1952,13 @@ ALIGN 8 $L$SEH_info_rsaz_1024_sqr_avx2: DB 9,0,0,0 DD rsaz_se_handler wrt ..imagebase - DD $L$sqr_1024_body wrt ..imagebase,$L$sqr_1024_epilogue wrt ..imagebase + DD $L$sqr_1024_body wrt ..imagebase,$L$sqr_1024_epilogue wrt ..imagebase,$L$sqr_1024_in_tail wrt ..imagebase + DD 0 $L$SEH_info_rsaz_1024_mul_avx2: DB 9,0,0,0 DD rsaz_se_handler wrt ..imagebase - DD $L$mul_1024_body wrt ..imagebase,$L$mul_1024_epilogue wrt ..imagebase + DD $L$mul_1024_body wrt ..imagebase,$L$mul_1024_epilogue wrt ..imagebase,$L$mul_1024_in_tail wrt ..imagebase + DD 0 $L$SEH_info_rsaz_1024_gather5: DB 0x01,0x36,0x17,0x0b DB 0x36,0xf8,0x09,0x00 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm index b6384fc421..603a8d17b8 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm @@ -22,14 +22,22 @@ $L$SEH_begin_rsaz_512_sqr: mov r8,QWORD[40+rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,128+24 + $L$sqr_body: mov rbp,rdx mov rdx,QWORD[rsi] @@ -674,17 +682,26 @@ DB 102,72,15,126,205 $L$sqr_tail: lea rax,[((128+24+48))+rsp] + mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$sqr_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_512_sqr: global rsaz_512_mul @@ -701,14 +718,22 @@ $L$SEH_begin_rsaz_512_mul: mov r8,QWORD[40+rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,128+24 + $L$mul_body: DB 102,72,15,110,199 DB 102,72,15,110,201 @@ -770,17 +795,26 @@ $L$mul_tail: call __rsaz_512_subtract lea rax,[((128+24+48))+rsp] + mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$mul_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_512_mul: global rsaz_512_mul_gather4 @@ -798,14 +832,22 @@ $L$SEH_begin_rsaz_512_mul_gather4: mov r9,QWORD[48+rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,328 + movaps XMMWORD[160+rsp],xmm6 movaps XMMWORD[176+rsp],xmm7 movaps XMMWORD[192+rsp],xmm8 @@ -1215,17 +1257,26 @@ $L$mul_gather_tail: movaps xmm14,XMMWORD[((288-200))+rax] movaps xmm15,XMMWORD[((304-200))+rax] lea rax,[176+rax] + mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$mul_gather4_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_512_mul_gather4: global rsaz_512_mul_scatter4 @@ -1243,15 +1294,23 @@ $L$SEH_begin_rsaz_512_mul_scatter4: mov r9,QWORD[48+rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + mov r9d,r9d sub rsp,128+24 + $L$mul_scatter4_body: lea r8,[r9*8+r8] DB 102,72,15,110,199 @@ -1326,17 +1385,26 @@ DB 102,72,15,126,214 mov QWORD[896+rsi],r15 lea rax,[((128+24+48))+rsp] + mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$mul_scatter4_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_512_mul_scatter4: global rsaz_512_mul_by_one @@ -1352,14 +1420,22 @@ $L$SEH_begin_rsaz_512_mul_by_one: mov rcx,r9 + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,128+24 + $L$mul_by_one_body: mov eax,DWORD[((OPENSSL_ia32cap_P+8))] mov rbp,rdx @@ -1402,17 +1478,26 @@ $L$by_one_tail: mov QWORD[56+rdi],r15 lea rax,[((128+24+48))+rsp] + mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$mul_by_one_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rsaz_512_mul_by_one: ALIGN 32 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-gf2m.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-gf2m.asm index 053a3f86a6..8123fd11b6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-gf2m.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-gf2m.asm @@ -8,7 +8,9 @@ section .text code align=64 ALIGN 16 _mul_1x1: + sub rsp,128+8 + mov r9,-1 lea rsi,[rax*1+rax] shr r9,3 @@ -198,16 +200,20 @@ DB 102,72,15,126,199 xor rdx,rdi add rsp,128+8 + DB 0F3h,0C3h ;repret $L$end_mul_1x1: + EXTERN OPENSSL_ia32cap_P global bn_GF2m_mul_2x2 ALIGN 16 bn_GF2m_mul_2x2: - mov rax,QWORD[OPENSSL_ia32cap_P] - bt rax,33 + + mov rax,rsp + mov r10,QWORD[OPENSSL_ia32cap_P] + bt r10,33 jnc NEAR $L$vanilla_mul_2x2 DB 102,72,15,110,194 @@ -235,14 +241,20 @@ DB 102,15,58,68,229,0 ALIGN 16 $L$vanilla_mul_2x2: lea rsp,[((-136))+rsp] + mov r10,QWORD[176+rsp] mov QWORD[120+rsp],rdi mov QWORD[128+rsp],rsi mov QWORD[80+rsp],r14 + mov QWORD[88+rsp],r13 + mov QWORD[96+rsp],r12 + mov QWORD[104+rsp],rbp + mov QWORD[112+rsp],rbx + $L$body_mul_2x2: mov QWORD[32+rsp],rcx mov QWORD[40+rsp],rdx @@ -287,16 +299,24 @@ $L$body_mul_2x2: mov QWORD[8+rbp],rax mov r14,QWORD[80+rsp] + mov r13,QWORD[88+rsp] + mov r12,QWORD[96+rsp] + mov rbp,QWORD[104+rsp] + mov rbx,QWORD[112+rsp] + mov rdi,QWORD[120+rsp] mov rsi,QWORD[128+rsp] lea rsp,[136+rsp] + +$L$epilogue_mul_2x2: DB 0F3h,0C3h ;repret $L$end_mul_2x2: + DB 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105 DB 99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 @@ -319,13 +339,19 @@ se_handler: pushfq sub rsp,64 - mov rax,QWORD[152+r8] + mov rax,QWORD[120+r8] mov rbx,QWORD[248+r8] lea r10,[$L$body_mul_2x2] cmp rbx,r10 jb NEAR $L$in_prologue + mov rax,QWORD[152+r8] + + lea r10,[$L$epilogue_mul_2x2] + cmp rbx,r10 + jae NEAR $L$in_prologue + mov r14,QWORD[80+rax] mov r13,QWORD[88+rax] mov r12,QWORD[96+rax] @@ -342,8 +368,9 @@ se_handler: mov QWORD[224+r8],r13 mov QWORD[232+r8],r14 -$L$in_prologue: lea rax,[136+rax] + +$L$in_prologue: mov QWORD[152+r8],rax mov rdi,QWORD[40+r9] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm index 26908c313b..81c205803e 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm @@ -23,8 +23,10 @@ $L$SEH_begin_bn_mul_mont: mov r9,QWORD[48+rsp] + mov r9d,r9d mov rax,rsp + test r9d,3 jnz NEAR $L$mul_enter cmp r9d,8 @@ -39,12 +41,18 @@ $L$SEH_begin_bn_mul_mont: ALIGN 16 $L$mul_enter: push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + neg r9 mov r11,rsp lea r10,[((-16))+r9*8+rsp] @@ -76,6 +84,7 @@ $L$mul_page_walk: $L$mul_page_walk_done: mov QWORD[8+r9*8+rsp],rax + $L$mul_body: mov r12,rdx mov r8,QWORD[r8] @@ -243,18 +252,27 @@ $L$copy: jnz NEAR $L$copy mov rsi,QWORD[8+r9*8+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$mul_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_mul_mont: ALIGN 16 @@ -271,19 +289,27 @@ $L$SEH_begin_bn_mul4x_mont: mov r9,QWORD[48+rsp] + mov r9d,r9d mov rax,rsp + $L$mul4x_enter: and r11d,0x80100 cmp r11d,0x80100 je NEAR $L$mulx4x_enter push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + neg r9 mov r11,rsp lea r10,[((-32))+r9*8+rsp] @@ -306,6 +332,7 @@ $L$mul4x_page_walk: $L$mul4x_page_walk_done: mov QWORD[8+r9*8+rsp],rax + $L$mul4x_body: mov QWORD[16+r9*8+rsp],rdi mov r12,rdx @@ -673,18 +700,27 @@ $L$copy4x: dec r15 jnz NEAR $L$copy4x mov rsi,QWORD[8+r9*8+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$mul4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_mul4x_mont: EXTERN bn_sqrx8x_internal EXTERN bn_sqr8x_internal @@ -704,14 +740,22 @@ $L$SEH_begin_bn_sqr8x_mont: mov r9,QWORD[48+rsp] + mov rax,rsp + $L$sqr8x_enter: push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$sqr8x_prologue: mov r10d,r9d @@ -767,6 +811,7 @@ $L$sqr8x_page_walk_done: mov QWORD[32+rsp],r8 mov QWORD[40+rsp],rax + $L$sqr8x_body: DB 102,72,15,110,209 @@ -832,6 +877,7 @@ DB 102,72,15,110,200 pxor xmm0,xmm0 pshufd xmm1,xmm1,0 mov rsi,QWORD[40+rsp] + jmp NEAR $L$sqr8x_cond_copy ALIGN 32 @@ -861,16 +907,24 @@ $L$sqr8x_cond_copy: mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$sqr8x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_sqr8x_mont: ALIGN 32 @@ -887,14 +941,22 @@ $L$SEH_begin_bn_mulx4x_mont: mov r9,QWORD[48+rsp] + mov rax,rsp + $L$mulx4x_enter: push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$mulx4x_prologue: shl r9d,3 @@ -940,6 +1002,7 @@ $L$mulx4x_page_walk_done: mov QWORD[24+rsp],r8 mov QWORD[32+rsp],rdi mov QWORD[40+rsp],rax + mov QWORD[48+rsp],r9 jmp NEAR $L$mulx4x_body @@ -1184,6 +1247,7 @@ DB 102,73,15,110,207 pxor xmm0,xmm0 pshufd xmm1,xmm1,0 mov rsi,QWORD[40+rsp] + jmp NEAR $L$mulx4x_cond_copy ALIGN 32 @@ -1213,16 +1277,24 @@ $L$mulx4x_cond_copy: mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$mulx4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_mulx4x_mont: DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm index de93630c8f..d1855c5acf 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm @@ -23,8 +23,10 @@ $L$SEH_begin_bn_mul_mont_gather5: mov r9,QWORD[48+rsp] + mov r9d,r9d mov rax,rsp + test r9d,7 jnz NEAR $L$mul_enter mov r11d,DWORD[((OPENSSL_ia32cap_P+8))] @@ -34,12 +36,18 @@ ALIGN 16 $L$mul_enter: movd xmm5,DWORD[56+rsp] push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + neg r9 mov r11,rsp lea r10,[((-280))+r9*8+rsp] @@ -71,6 +79,7 @@ $L$mul_page_walk_done: lea r10,[$L$inc] mov QWORD[8+r9*8+rsp],rax + $L$mul_body: lea r12,[128+rdx] @@ -428,19 +437,28 @@ $L$copy: jnz NEAR $L$copy mov rsi,QWORD[8+r9*8+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$mul_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_mul_mont_gather5: ALIGN 32 @@ -457,18 +475,26 @@ $L$SEH_begin_bn_mul4x_mont_gather5: mov r9,QWORD[48+rsp] + DB 0x67 mov rax,rsp + $L$mul4x_enter: and r11d,0x80108 cmp r11d,0x80108 je NEAR $L$mulx4x_enter push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$mul4x_prologue: DB 0x67 @@ -524,24 +550,34 @@ $L$mul4x_page_walk_done: neg r9 mov QWORD[40+rsp],rax + $L$mul4x_body: call mul4x_internal mov rsi,QWORD[40+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$mul4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_mul4x_mont_gather5: @@ -1085,17 +1121,25 @@ $L$SEH_begin_bn_power5: mov r9,QWORD[48+rsp] + mov rax,rsp + mov r11d,DWORD[((OPENSSL_ia32cap_P+8))] and r11d,0x80108 cmp r11d,0x80108 je NEAR $L$powerx5_enter push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$power5_prologue: shl r9d,3 @@ -1160,6 +1204,7 @@ $L$pwr_page_walk_done: mov QWORD[32+rsp],r8 mov QWORD[40+rsp],rax + $L$power5_body: DB 102,72,15,110,207 DB 102,72,15,110,209 @@ -1186,18 +1231,27 @@ DB 102,72,15,126,226 call mul4x_internal mov rsi,QWORD[40+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$power5_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_power5: global bn_sqr8x_internal @@ -2060,14 +2114,22 @@ $L$SEH_begin_bn_from_mont8x: mov r9,QWORD[48+rsp] + DB 0x67 mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$from_prologue: shl r9d,3 @@ -2132,6 +2194,7 @@ $L$from_page_walk_done: mov QWORD[32+rsp],r8 mov QWORD[40+rsp],rax + $L$from_body: mov r11,r9 lea rax,[48+rsp] @@ -2173,7 +2236,6 @@ DB 102,73,15,110,218 pxor xmm0,xmm0 lea rax,[48+rsp] - mov rsi,QWORD[40+rsp] jmp NEAR $L$from_mont_zero ALIGN 32 @@ -2183,11 +2245,12 @@ $L$from_mont_nox: pxor xmm0,xmm0 lea rax,[48+rsp] - mov rsi,QWORD[40+rsp] jmp NEAR $L$from_mont_zero ALIGN 32 $L$from_mont_zero: + mov rsi,QWORD[40+rsp] + movdqa XMMWORD[rax],xmm0 movdqa XMMWORD[16+rax],xmm0 movdqa XMMWORD[32+rax],xmm0 @@ -2198,16 +2261,24 @@ $L$from_mont_zero: mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$from_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_from_mont8x: ALIGN 32 @@ -2224,14 +2295,22 @@ $L$SEH_begin_bn_mulx4x_mont_gather5: mov r9,QWORD[48+rsp] + mov rax,rsp + $L$mulx4x_enter: push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$mulx4x_prologue: shl r9d,3 @@ -2297,23 +2376,33 @@ $L$mulx4x_page_walk_done: mov QWORD[32+rsp],r8 mov QWORD[40+rsp],rax + $L$mulx4x_body: call mulx4x_internal mov rsi,QWORD[40+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$mulx4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_mulx4x_mont_gather5: @@ -2753,14 +2842,22 @@ $L$SEH_begin_bn_powerx5: mov r9,QWORD[48+rsp] + mov rax,rsp + $L$powerx5_enter: push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$powerx5_prologue: shl r9d,3 @@ -2832,6 +2929,7 @@ DB 102,73,15,110,218 DB 102,72,15,110,226 mov QWORD[32+rsp],r8 mov QWORD[40+rsp],rax + $L$powerx5_body: call __bn_sqrx8x_internal @@ -2854,19 +2952,28 @@ DB 102,72,15,126,226 call mulx4x_internal mov rsi,QWORD[40+rsp] + mov rax,1 mov r15,QWORD[((-48))+rsi] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$powerx5_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_bn_powerx5: global bn_sqrx8x_internal diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h index c0b70ab335..3cfa6a4a22 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h @@ -1,12 +1,23 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Nov 22 19:36:01 2018 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ',' ','\0' }; -#define PLATFORM "platform: " -#define DATE "built on: Tue Nov 20 09:39:06 2018" diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm index cb91061570..7a0f351e51 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm @@ -32,11 +32,17 @@ $L$SEH_begin_Camellia_EncryptBlock_Rounds: mov rcx,r9 + push rbx + push rbp + push r13 + push r14 + push r15 + $L$enc_prologue: @@ -68,15 +74,22 @@ $L$enc_prologue: mov DWORD[12+r13],r11d mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov rbp,QWORD[24+rsp] + mov rbx,QWORD[32+rsp] + lea rsp,[40+rsp] + $L$enc_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_Camellia_EncryptBlock_Rounds: @@ -313,11 +326,17 @@ $L$SEH_begin_Camellia_DecryptBlock_Rounds: mov rcx,r9 + push rbx + push rbp + push r13 + push r14 + push r15 + $L$dec_prologue: @@ -349,15 +368,22 @@ $L$dec_prologue: mov DWORD[12+r13],r11d mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov rbp,QWORD[24+rsp] + mov rbx,QWORD[32+rsp] + lea rsp,[40+rsp] + $L$dec_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_Camellia_DecryptBlock_Rounds: @@ -580,11 +606,17 @@ $L$SEH_begin_Camellia_Ekeygen: mov rdx,r8 + push rbx + push rbp + push r13 + push r14 + push r15 + $L$key_prologue: mov r15d,edi @@ -1112,15 +1144,22 @@ $L$2nd256: mov eax,4 $L$done: mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov rbp,QWORD[24+rsp] + mov rbx,QWORD[32+rsp] + lea rsp,[40+rsp] + $L$key_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_Camellia_Ekeygen: ALIGN 64 $L$Camellia_SIGMA: @@ -1657,17 +1696,25 @@ $L$SEH_begin_Camellia_cbc_encrypt: mov r9,QWORD[48+rsp] + cmp rdx,0 je NEAR $L$cbc_abort push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$cbc_prologue: mov rbp,rsp + sub rsp,64 and rsp,-64 @@ -1689,6 +1736,7 @@ $L$cbc_prologue: mov QWORD[40+rsp],r8 mov QWORD[48+rsp],rbp + $L$cbc_body: lea rbp,[$L$Camellia_SBOX] @@ -1876,17 +1924,26 @@ $L$cbc_dec_popf: ALIGN 16 $L$cbc_done: mov rcx,QWORD[48+rsp] + mov r15,QWORD[rcx] + mov r14,QWORD[8+rcx] + mov r13,QWORD[16+rcx] + mov r12,QWORD[24+rcx] + mov rbp,QWORD[32+rcx] + mov rbx,QWORD[40+rcx] + lea rsp,[48+rcx] + $L$cbc_abort: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_Camellia_cbc_encrypt: DB 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm index ce4751884f..1a2003ea1f 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm @@ -24,6 +24,17 @@ $L$rot16: DB 0x2,0x3,0x0,0x1,0x6,0x7,0x4,0x5,0xa,0xb,0x8,0x9,0xe,0xf,0xc,0xd $L$rot24: DB 0x3,0x0,0x1,0x2,0x7,0x4,0x5,0x6,0xb,0x8,0x9,0xa,0xf,0xc,0xd,0xe +$L$twoy: + DD 2,0,0,0,2,0,0,0 +ALIGN 64 +$L$zeroz: + DD 0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0 +$L$fourz: + DD 4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0 +$L$incz: + DD 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 +$L$sixteen: + DD 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 $L$sigma: DB 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107 DB 0 @@ -46,20 +57,33 @@ $L$SEH_begin_ChaCha20_ctr32: mov r8,QWORD[40+rsp] + cmp rdx,0 je NEAR $L$no_data mov r10,QWORD[((OPENSSL_ia32cap_P+4))] + bt r10,48 + jc NEAR $L$ChaCha20_avx512 + test r10,r10 + js NEAR $L$ChaCha20_avx512vl test r10d,512 jnz NEAR $L$ChaCha20_ssse3 push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,64+24 +$L$ctr32_body: + movdqu xmm1,XMMWORD[rcx] movdqu xmm2,XMMWORD[16+rcx] @@ -296,17 +320,27 @@ $L$oop_tail: jnz NEAR $L$oop_tail $L$done: - add rsp,64+24 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx + lea rsi,[((64+24+48))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$no_data: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ChaCha20_ctr32: ALIGN 32 @@ -322,23 +356,21 @@ $L$SEH_begin_ChaCha20_ssse3: mov r8,QWORD[40+rsp] + $L$ChaCha20_ssse3: + mov r9,rsp + test r10d,2048 jnz NEAR $L$ChaCha20_4xop cmp rdx,128 + je NEAR $L$ChaCha20_128 ja NEAR $L$ChaCha20_4x $L$do_sse3_after_all: - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - - sub rsp,64+72 - movaps XMMWORD[(64+32)+rsp],xmm6 - movaps XMMWORD[(64+48)+rsp],xmm7 + sub rsp,64+40 + movaps XMMWORD[(-40)+r9],xmm6 + movaps XMMWORD[(-24)+r9],xmm7 +$L$ssse3_body: movdqa xmm0,XMMWORD[$L$sigma] movdqu xmm1,XMMWORD[rcx] movdqu xmm2,XMMWORD[16+rcx] @@ -350,7 +382,7 @@ $L$do_sse3_after_all: movdqa XMMWORD[16+rsp],xmm1 movdqa XMMWORD[32+rsp],xmm2 movdqa XMMWORD[48+rsp],xmm3 - mov ebp,10 + mov r8,10 jmp NEAR $L$oop_ssse3 ALIGN 32 @@ -360,7 +392,7 @@ $L$oop_outer_ssse3: movdqa xmm1,XMMWORD[16+rsp] movdqa xmm2,XMMWORD[32+rsp] paddd xmm3,XMMWORD[48+rsp] - mov ebp,10 + mov r8,10 movdqa XMMWORD[48+rsp],xmm3 jmp NEAR $L$oop_ssse3 @@ -409,7 +441,7 @@ DB 102,15,56,0,223 pshufd xmm2,xmm2,78 pshufd xmm1,xmm1,147 pshufd xmm3,xmm3,57 - dec ebp + dec r8 jnz NEAR $L$oop_ssse3 paddd xmm0,XMMWORD[rsp] paddd xmm1,XMMWORD[16+rsp] @@ -446,33 +478,212 @@ $L$tail_ssse3: movdqa XMMWORD[16+rsp],xmm1 movdqa XMMWORD[32+rsp],xmm2 movdqa XMMWORD[48+rsp],xmm3 - xor rbx,rbx + xor r8,r8 $L$oop_tail_ssse3: - movzx eax,BYTE[rbx*1+rsi] - movzx ecx,BYTE[rbx*1+rsp] - lea rbx,[1+rbx] + movzx eax,BYTE[r8*1+rsi] + movzx ecx,BYTE[r8*1+rsp] + lea r8,[1+r8] xor eax,ecx - mov BYTE[((-1))+rbx*1+rdi],al + mov BYTE[((-1))+r8*1+rdi],al dec rdx jnz NEAR $L$oop_tail_ssse3 $L$done_ssse3: - movaps xmm6,XMMWORD[((64+32))+rsp] - movaps xmm7,XMMWORD[((64+48))+rsp] - add rsp,64+72 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx + movaps xmm6,XMMWORD[((-40))+r9] + movaps xmm7,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$ssse3_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ChaCha20_ssse3: ALIGN 32 +ChaCha20_128: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ChaCha20_128: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +$L$ChaCha20_128: + mov r9,rsp + + sub rsp,64+104 + movaps XMMWORD[(-104)+r9],xmm6 + movaps XMMWORD[(-88)+r9],xmm7 + movaps XMMWORD[(-72)+r9],xmm8 + movaps XMMWORD[(-56)+r9],xmm9 + movaps XMMWORD[(-40)+r9],xmm10 + movaps XMMWORD[(-24)+r9],xmm11 +$L$128_body: + movdqa xmm8,XMMWORD[$L$sigma] + movdqu xmm9,XMMWORD[rcx] + movdqu xmm2,XMMWORD[16+rcx] + movdqu xmm3,XMMWORD[r8] + movdqa xmm1,XMMWORD[$L$one] + movdqa xmm6,XMMWORD[$L$rot16] + movdqa xmm7,XMMWORD[$L$rot24] + + movdqa xmm10,xmm8 + movdqa XMMWORD[rsp],xmm8 + movdqa xmm11,xmm9 + movdqa XMMWORD[16+rsp],xmm9 + movdqa xmm0,xmm2 + movdqa XMMWORD[32+rsp],xmm2 + paddd xmm1,xmm3 + movdqa XMMWORD[48+rsp],xmm3 + mov r8,10 + jmp NEAR $L$oop_128 + +ALIGN 32 +$L$oop_128: + paddd xmm8,xmm9 + pxor xmm3,xmm8 + paddd xmm10,xmm11 + pxor xmm1,xmm10 +DB 102,15,56,0,222 +DB 102,15,56,0,206 + paddd xmm2,xmm3 + paddd xmm0,xmm1 + pxor xmm9,xmm2 + pxor xmm11,xmm0 + movdqa xmm4,xmm9 + psrld xmm9,20 + movdqa xmm5,xmm11 + pslld xmm4,12 + psrld xmm11,20 + por xmm9,xmm4 + pslld xmm5,12 + por xmm11,xmm5 + paddd xmm8,xmm9 + pxor xmm3,xmm8 + paddd xmm10,xmm11 + pxor xmm1,xmm10 +DB 102,15,56,0,223 +DB 102,15,56,0,207 + paddd xmm2,xmm3 + paddd xmm0,xmm1 + pxor xmm9,xmm2 + pxor xmm11,xmm0 + movdqa xmm4,xmm9 + psrld xmm9,25 + movdqa xmm5,xmm11 + pslld xmm4,7 + psrld xmm11,25 + por xmm9,xmm4 + pslld xmm5,7 + por xmm11,xmm5 + pshufd xmm2,xmm2,78 + pshufd xmm9,xmm9,57 + pshufd xmm3,xmm3,147 + pshufd xmm0,xmm0,78 + pshufd xmm11,xmm11,57 + pshufd xmm1,xmm1,147 + paddd xmm8,xmm9 + pxor xmm3,xmm8 + paddd xmm10,xmm11 + pxor xmm1,xmm10 +DB 102,15,56,0,222 +DB 102,15,56,0,206 + paddd xmm2,xmm3 + paddd xmm0,xmm1 + pxor xmm9,xmm2 + pxor xmm11,xmm0 + movdqa xmm4,xmm9 + psrld xmm9,20 + movdqa xmm5,xmm11 + pslld xmm4,12 + psrld xmm11,20 + por xmm9,xmm4 + pslld xmm5,12 + por xmm11,xmm5 + paddd xmm8,xmm9 + pxor xmm3,xmm8 + paddd xmm10,xmm11 + pxor xmm1,xmm10 +DB 102,15,56,0,223 +DB 102,15,56,0,207 + paddd xmm2,xmm3 + paddd xmm0,xmm1 + pxor xmm9,xmm2 + pxor xmm11,xmm0 + movdqa xmm4,xmm9 + psrld xmm9,25 + movdqa xmm5,xmm11 + pslld xmm4,7 + psrld xmm11,25 + por xmm9,xmm4 + pslld xmm5,7 + por xmm11,xmm5 + pshufd xmm2,xmm2,78 + pshufd xmm9,xmm9,147 + pshufd xmm3,xmm3,57 + pshufd xmm0,xmm0,78 + pshufd xmm11,xmm11,147 + pshufd xmm1,xmm1,57 + dec r8 + jnz NEAR $L$oop_128 + paddd xmm8,XMMWORD[rsp] + paddd xmm9,XMMWORD[16+rsp] + paddd xmm2,XMMWORD[32+rsp] + paddd xmm3,XMMWORD[48+rsp] + paddd xmm1,XMMWORD[$L$one] + paddd xmm10,XMMWORD[rsp] + paddd xmm11,XMMWORD[16+rsp] + paddd xmm0,XMMWORD[32+rsp] + paddd xmm1,XMMWORD[48+rsp] + + movdqu xmm4,XMMWORD[rsi] + movdqu xmm5,XMMWORD[16+rsi] + pxor xmm8,xmm4 + movdqu xmm4,XMMWORD[32+rsi] + pxor xmm9,xmm5 + movdqu xmm5,XMMWORD[48+rsi] + pxor xmm2,xmm4 + movdqu xmm4,XMMWORD[64+rsi] + pxor xmm3,xmm5 + movdqu xmm5,XMMWORD[80+rsi] + pxor xmm10,xmm4 + movdqu xmm4,XMMWORD[96+rsi] + pxor xmm11,xmm5 + movdqu xmm5,XMMWORD[112+rsi] + pxor xmm0,xmm4 + pxor xmm1,xmm5 + + movdqu XMMWORD[rdi],xmm8 + movdqu XMMWORD[16+rdi],xmm9 + movdqu XMMWORD[32+rdi],xmm2 + movdqu XMMWORD[48+rdi],xmm3 + movdqu XMMWORD[64+rdi],xmm10 + movdqu XMMWORD[80+rdi],xmm11 + movdqu XMMWORD[96+rdi],xmm0 + movdqu XMMWORD[112+rdi],xmm1 + movaps xmm6,XMMWORD[((-104))+r9] + movaps xmm7,XMMWORD[((-88))+r9] + movaps xmm8,XMMWORD[((-72))+r9] + movaps xmm9,XMMWORD[((-56))+r9] + movaps xmm10,XMMWORD[((-40))+r9] + movaps xmm11,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$128_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ChaCha20_128: + +ALIGN 32 ChaCha20_4x: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi @@ -485,7 +696,10 @@ $L$SEH_begin_ChaCha20_4x: mov r8,QWORD[40+rsp] + $L$ChaCha20_4x: + mov r9,rsp + mov r11,r10 shr r10,32 test r10,32 @@ -498,18 +712,18 @@ $L$ChaCha20_4x: je NEAR $L$do_sse3_after_all $L$proceed4x: - lea r11,[((-120))+rsp] - sub rsp,0x148+160 - movaps XMMWORD[(-48)+r11],xmm6 - movaps XMMWORD[(-32)+r11],xmm7 - movaps XMMWORD[(-16)+r11],xmm8 - movaps XMMWORD[r11],xmm9 - movaps XMMWORD[16+r11],xmm10 - movaps XMMWORD[32+r11],xmm11 - movaps XMMWORD[48+r11],xmm12 - movaps XMMWORD[64+r11],xmm13 - movaps XMMWORD[80+r11],xmm14 - movaps XMMWORD[96+r11],xmm15 + sub rsp,0x140+168 + movaps XMMWORD[(-168)+r9],xmm6 + movaps XMMWORD[(-152)+r9],xmm7 + movaps XMMWORD[(-136)+r9],xmm8 + movaps XMMWORD[(-120)+r9],xmm9 + movaps XMMWORD[(-104)+r9],xmm10 + movaps XMMWORD[(-88)+r9],xmm11 + movaps XMMWORD[(-72)+r9],xmm12 + movaps XMMWORD[(-56)+r9],xmm13 + movaps XMMWORD[(-40)+r9],xmm14 + movaps XMMWORD[(-24)+r9],xmm15 +$L$4x_body: movdqa xmm11,XMMWORD[$L$sigma] movdqu xmm15,XMMWORD[rcx] movdqu xmm7,XMMWORD[16+rcx] @@ -1036,21 +1250,23 @@ $L$oop_tail4x: jnz NEAR $L$oop_tail4x $L$done4x: - lea r11,[((320+48))+rsp] - movaps xmm6,XMMWORD[((-48))+r11] - movaps xmm7,XMMWORD[((-32))+r11] - movaps xmm8,XMMWORD[((-16))+r11] - movaps xmm9,XMMWORD[r11] - movaps xmm10,XMMWORD[16+r11] - movaps xmm11,XMMWORD[32+r11] - movaps xmm12,XMMWORD[48+r11] - movaps xmm13,XMMWORD[64+r11] - movaps xmm14,XMMWORD[80+r11] - movaps xmm15,XMMWORD[96+r11] - add rsp,0x148+160 + movaps xmm6,XMMWORD[((-168))+r9] + movaps xmm7,XMMWORD[((-152))+r9] + movaps xmm8,XMMWORD[((-136))+r9] + movaps xmm9,XMMWORD[((-120))+r9] + movaps xmm10,XMMWORD[((-104))+r9] + movaps xmm11,XMMWORD[((-88))+r9] + movaps xmm12,XMMWORD[((-72))+r9] + movaps xmm13,XMMWORD[((-56))+r9] + movaps xmm14,XMMWORD[((-40))+r9] + movaps xmm15,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$4x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ChaCha20_4x: ALIGN 32 @@ -1066,19 +1282,22 @@ $L$SEH_begin_ChaCha20_4xop: mov r8,QWORD[40+rsp] + $L$ChaCha20_4xop: - lea r11,[((-120))+rsp] - sub rsp,0x148+160 - movaps XMMWORD[(-48)+r11],xmm6 - movaps XMMWORD[(-32)+r11],xmm7 - movaps XMMWORD[(-16)+r11],xmm8 - movaps XMMWORD[r11],xmm9 - movaps XMMWORD[16+r11],xmm10 - movaps XMMWORD[32+r11],xmm11 - movaps XMMWORD[48+r11],xmm12 - movaps XMMWORD[64+r11],xmm13 - movaps XMMWORD[80+r11],xmm14 - movaps XMMWORD[96+r11],xmm15 + mov r9,rsp + + sub rsp,0x140+168 + movaps XMMWORD[(-168)+r9],xmm6 + movaps XMMWORD[(-152)+r9],xmm7 + movaps XMMWORD[(-136)+r9],xmm8 + movaps XMMWORD[(-120)+r9],xmm9 + movaps XMMWORD[(-104)+r9],xmm10 + movaps XMMWORD[(-88)+r9],xmm11 + movaps XMMWORD[(-72)+r9],xmm12 + movaps XMMWORD[(-56)+r9],xmm13 + movaps XMMWORD[(-40)+r9],xmm14 + movaps XMMWORD[(-24)+r9],xmm15 +$L$4xop_body: vzeroupper vmovdqa xmm11,XMMWORD[$L$sigma] @@ -1480,21 +1699,23 @@ $L$oop_tail4xop: $L$done4xop: vzeroupper - lea r11,[((320+48))+rsp] - movaps xmm6,XMMWORD[((-48))+r11] - movaps xmm7,XMMWORD[((-32))+r11] - movaps xmm8,XMMWORD[((-16))+r11] - movaps xmm9,XMMWORD[r11] - movaps xmm10,XMMWORD[16+r11] - movaps xmm11,XMMWORD[32+r11] - movaps xmm12,XMMWORD[48+r11] - movaps xmm13,XMMWORD[64+r11] - movaps xmm14,XMMWORD[80+r11] - movaps xmm15,XMMWORD[96+r11] - add rsp,0x148+160 + movaps xmm6,XMMWORD[((-168))+r9] + movaps xmm7,XMMWORD[((-152))+r9] + movaps xmm8,XMMWORD[((-136))+r9] + movaps xmm9,XMMWORD[((-120))+r9] + movaps xmm10,XMMWORD[((-104))+r9] + movaps xmm11,XMMWORD[((-88))+r9] + movaps xmm12,XMMWORD[((-72))+r9] + movaps xmm13,XMMWORD[((-56))+r9] + movaps xmm14,XMMWORD[((-40))+r9] + movaps xmm15,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$4xop_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ChaCha20_4xop: ALIGN 32 @@ -1510,23 +1731,24 @@ $L$SEH_begin_ChaCha20_8x: mov r8,QWORD[40+rsp] + $L$ChaCha20_8x: - mov r10,rsp - sub rsp,0x280+176 + mov r9,rsp + + sub rsp,0x280+168 and rsp,-32 - lea r11,[((656+48))+rsp] - movaps XMMWORD[(-48)+r11],xmm6 - movaps XMMWORD[(-32)+r11],xmm7 - movaps XMMWORD[(-16)+r11],xmm8 - movaps XMMWORD[r11],xmm9 - movaps XMMWORD[16+r11],xmm10 - movaps XMMWORD[32+r11],xmm11 - movaps XMMWORD[48+r11],xmm12 - movaps XMMWORD[64+r11],xmm13 - movaps XMMWORD[80+r11],xmm14 - movaps XMMWORD[96+r11],xmm15 + movaps XMMWORD[(-168)+r9],xmm6 + movaps XMMWORD[(-152)+r9],xmm7 + movaps XMMWORD[(-136)+r9],xmm8 + movaps XMMWORD[(-120)+r9],xmm9 + movaps XMMWORD[(-104)+r9],xmm10 + movaps XMMWORD[(-88)+r9],xmm11 + movaps XMMWORD[(-72)+r9],xmm12 + movaps XMMWORD[(-56)+r9],xmm13 + movaps XMMWORD[(-40)+r9],xmm14 + movaps XMMWORD[(-24)+r9],xmm15 +$L$8x_body: vzeroupper - mov QWORD[640+rsp],r10 @@ -2117,19 +2339,1579 @@ $L$oop_tail8x: $L$done8x: vzeroall - lea r11,[((656+48))+rsp] - movaps xmm6,XMMWORD[((-48))+r11] - movaps xmm7,XMMWORD[((-32))+r11] - movaps xmm8,XMMWORD[((-16))+r11] - movaps xmm9,XMMWORD[r11] - movaps xmm10,XMMWORD[16+r11] - movaps xmm11,XMMWORD[32+r11] - movaps xmm12,XMMWORD[48+r11] - movaps xmm13,XMMWORD[64+r11] - movaps xmm14,XMMWORD[80+r11] - movaps xmm15,XMMWORD[96+r11] - mov rsp,QWORD[640+rsp] + movaps xmm6,XMMWORD[((-168))+r9] + movaps xmm7,XMMWORD[((-152))+r9] + movaps xmm8,XMMWORD[((-136))+r9] + movaps xmm9,XMMWORD[((-120))+r9] + movaps xmm10,XMMWORD[((-104))+r9] + movaps xmm11,XMMWORD[((-88))+r9] + movaps xmm12,XMMWORD[((-72))+r9] + movaps xmm13,XMMWORD[((-56))+r9] + movaps xmm14,XMMWORD[((-40))+r9] + movaps xmm15,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$8x_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ChaCha20_8x: + +ALIGN 32 +ChaCha20_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ChaCha20_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +$L$ChaCha20_avx512: + mov r9,rsp + + cmp rdx,512 + ja NEAR $L$ChaCha20_16x + + sub rsp,64+40 + movaps XMMWORD[(-40)+r9],xmm6 + movaps XMMWORD[(-24)+r9],xmm7 +$L$avx512_body: + vbroadcasti32x4 zmm0,ZMMWORD[$L$sigma] + vbroadcasti32x4 zmm1,ZMMWORD[rcx] + vbroadcasti32x4 zmm2,ZMMWORD[16+rcx] + vbroadcasti32x4 zmm3,ZMMWORD[r8] + + vmovdqa32 zmm16,zmm0 + vmovdqa32 zmm17,zmm1 + vmovdqa32 zmm18,zmm2 + vpaddd zmm3,zmm3,ZMMWORD[$L$zeroz] + vmovdqa32 zmm20,ZMMWORD[$L$fourz] + mov r8,10 + vmovdqa32 zmm19,zmm3 + jmp NEAR $L$oop_avx512 + +ALIGN 16 +$L$oop_outer_avx512: + vmovdqa32 zmm0,zmm16 + vmovdqa32 zmm1,zmm17 + vmovdqa32 zmm2,zmm18 + vpaddd zmm3,zmm19,zmm20 + mov r8,10 + vmovdqa32 zmm19,zmm3 + jmp NEAR $L$oop_avx512 + +ALIGN 32 +$L$oop_avx512: + vpaddd zmm0,zmm0,zmm1 + vpxord zmm3,zmm3,zmm0 + vprold zmm3,zmm3,16 + vpaddd zmm2,zmm2,zmm3 + vpxord zmm1,zmm1,zmm2 + vprold zmm1,zmm1,12 + vpaddd zmm0,zmm0,zmm1 + vpxord zmm3,zmm3,zmm0 + vprold zmm3,zmm3,8 + vpaddd zmm2,zmm2,zmm3 + vpxord zmm1,zmm1,zmm2 + vprold zmm1,zmm1,7 + vpshufd zmm2,zmm2,78 + vpshufd zmm1,zmm1,57 + vpshufd zmm3,zmm3,147 + vpaddd zmm0,zmm0,zmm1 + vpxord zmm3,zmm3,zmm0 + vprold zmm3,zmm3,16 + vpaddd zmm2,zmm2,zmm3 + vpxord zmm1,zmm1,zmm2 + vprold zmm1,zmm1,12 + vpaddd zmm0,zmm0,zmm1 + vpxord zmm3,zmm3,zmm0 + vprold zmm3,zmm3,8 + vpaddd zmm2,zmm2,zmm3 + vpxord zmm1,zmm1,zmm2 + vprold zmm1,zmm1,7 + vpshufd zmm2,zmm2,78 + vpshufd zmm1,zmm1,147 + vpshufd zmm3,zmm3,57 + dec r8 + jnz NEAR $L$oop_avx512 + vpaddd zmm0,zmm0,zmm16 + vpaddd zmm1,zmm1,zmm17 + vpaddd zmm2,zmm2,zmm18 + vpaddd zmm3,zmm3,zmm19 + + sub rdx,64 + jb NEAR $L$tail64_avx512 + + vpxor xmm4,xmm0,XMMWORD[rsi] + vpxor xmm5,xmm1,XMMWORD[16+rsi] + vpxor xmm6,xmm2,XMMWORD[32+rsi] + vpxor xmm7,xmm3,XMMWORD[48+rsi] + lea rsi,[64+rsi] + + vmovdqu XMMWORD[rdi],xmm4 + vmovdqu XMMWORD[16+rdi],xmm5 + vmovdqu XMMWORD[32+rdi],xmm6 + vmovdqu XMMWORD[48+rdi],xmm7 + lea rdi,[64+rdi] + + jz NEAR $L$done_avx512 + + vextracti32x4 xmm4,zmm0,1 + vextracti32x4 xmm5,zmm1,1 + vextracti32x4 xmm6,zmm2,1 + vextracti32x4 xmm7,zmm3,1 + + sub rdx,64 + jb NEAR $L$tail_avx512 + + vpxor xmm4,xmm4,XMMWORD[rsi] + vpxor xmm5,xmm5,XMMWORD[16+rsi] + vpxor xmm6,xmm6,XMMWORD[32+rsi] + vpxor xmm7,xmm7,XMMWORD[48+rsi] + lea rsi,[64+rsi] + + vmovdqu XMMWORD[rdi],xmm4 + vmovdqu XMMWORD[16+rdi],xmm5 + vmovdqu XMMWORD[32+rdi],xmm6 + vmovdqu XMMWORD[48+rdi],xmm7 + lea rdi,[64+rdi] + + jz NEAR $L$done_avx512 + + vextracti32x4 xmm4,zmm0,2 + vextracti32x4 xmm5,zmm1,2 + vextracti32x4 xmm6,zmm2,2 + vextracti32x4 xmm7,zmm3,2 + + sub rdx,64 + jb NEAR $L$tail_avx512 + + vpxor xmm4,xmm4,XMMWORD[rsi] + vpxor xmm5,xmm5,XMMWORD[16+rsi] + vpxor xmm6,xmm6,XMMWORD[32+rsi] + vpxor xmm7,xmm7,XMMWORD[48+rsi] + lea rsi,[64+rsi] + + vmovdqu XMMWORD[rdi],xmm4 + vmovdqu XMMWORD[16+rdi],xmm5 + vmovdqu XMMWORD[32+rdi],xmm6 + vmovdqu XMMWORD[48+rdi],xmm7 + lea rdi,[64+rdi] + + jz NEAR $L$done_avx512 + + vextracti32x4 xmm4,zmm0,3 + vextracti32x4 xmm5,zmm1,3 + vextracti32x4 xmm6,zmm2,3 + vextracti32x4 xmm7,zmm3,3 + + sub rdx,64 + jb NEAR $L$tail_avx512 + + vpxor xmm4,xmm4,XMMWORD[rsi] + vpxor xmm5,xmm5,XMMWORD[16+rsi] + vpxor xmm6,xmm6,XMMWORD[32+rsi] + vpxor xmm7,xmm7,XMMWORD[48+rsi] + lea rsi,[64+rsi] + + vmovdqu XMMWORD[rdi],xmm4 + vmovdqu XMMWORD[16+rdi],xmm5 + vmovdqu XMMWORD[32+rdi],xmm6 + vmovdqu XMMWORD[48+rdi],xmm7 + lea rdi,[64+rdi] + + jnz NEAR $L$oop_outer_avx512 + + jmp NEAR $L$done_avx512 + +ALIGN 16 +$L$tail64_avx512: + vmovdqa XMMWORD[rsp],xmm0 + vmovdqa XMMWORD[16+rsp],xmm1 + vmovdqa XMMWORD[32+rsp],xmm2 + vmovdqa XMMWORD[48+rsp],xmm3 + add rdx,64 + jmp NEAR $L$oop_tail_avx512 + +ALIGN 16 +$L$tail_avx512: + vmovdqa XMMWORD[rsp],xmm4 + vmovdqa XMMWORD[16+rsp],xmm5 + vmovdqa XMMWORD[32+rsp],xmm6 + vmovdqa XMMWORD[48+rsp],xmm7 + add rdx,64 + +$L$oop_tail_avx512: + movzx eax,BYTE[r8*1+rsi] + movzx ecx,BYTE[r8*1+rsp] + lea r8,[1+r8] + xor eax,ecx + mov BYTE[((-1))+r8*1+rdi],al + dec rdx + jnz NEAR $L$oop_tail_avx512 + + vmovdqu32 ZMMWORD[rsp],zmm16 + +$L$done_avx512: + vzeroall + movaps xmm6,XMMWORD[((-40))+r9] + movaps xmm7,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$avx512_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ChaCha20_avx512: + +ALIGN 32 +ChaCha20_avx512vl: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ChaCha20_avx512vl: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +$L$ChaCha20_avx512vl: + mov r9,rsp + + cmp rdx,128 + ja NEAR $L$ChaCha20_8xvl + + sub rsp,64+40 + movaps XMMWORD[(-40)+r9],xmm6 + movaps XMMWORD[(-24)+r9],xmm7 +$L$avx512vl_body: + vbroadcasti128 ymm0,XMMWORD[$L$sigma] + vbroadcasti128 ymm1,XMMWORD[rcx] + vbroadcasti128 ymm2,XMMWORD[16+rcx] + vbroadcasti128 ymm3,XMMWORD[r8] + + vmovdqa32 ymm16,ymm0 + vmovdqa32 ymm17,ymm1 + vmovdqa32 ymm18,ymm2 + vpaddd ymm3,ymm3,YMMWORD[$L$zeroz] + vmovdqa32 ymm20,YMMWORD[$L$twoy] + mov r8,10 + vmovdqa32 ymm19,ymm3 + jmp NEAR $L$oop_avx512vl + +ALIGN 16 +$L$oop_outer_avx512vl: + vmovdqa32 ymm2,ymm18 + vpaddd ymm3,ymm19,ymm20 + mov r8,10 + vmovdqa32 ymm19,ymm3 + jmp NEAR $L$oop_avx512vl + +ALIGN 32 +$L$oop_avx512vl: + vpaddd ymm0,ymm0,ymm1 + vpxor ymm3,ymm3,ymm0 + vprold ymm3,ymm3,16 + vpaddd ymm2,ymm2,ymm3 + vpxor ymm1,ymm1,ymm2 + vprold ymm1,ymm1,12 + vpaddd ymm0,ymm0,ymm1 + vpxor ymm3,ymm3,ymm0 + vprold ymm3,ymm3,8 + vpaddd ymm2,ymm2,ymm3 + vpxor ymm1,ymm1,ymm2 + vprold ymm1,ymm1,7 + vpshufd ymm2,ymm2,78 + vpshufd ymm1,ymm1,57 + vpshufd ymm3,ymm3,147 + vpaddd ymm0,ymm0,ymm1 + vpxor ymm3,ymm3,ymm0 + vprold ymm3,ymm3,16 + vpaddd ymm2,ymm2,ymm3 + vpxor ymm1,ymm1,ymm2 + vprold ymm1,ymm1,12 + vpaddd ymm0,ymm0,ymm1 + vpxor ymm3,ymm3,ymm0 + vprold ymm3,ymm3,8 + vpaddd ymm2,ymm2,ymm3 + vpxor ymm1,ymm1,ymm2 + vprold ymm1,ymm1,7 + vpshufd ymm2,ymm2,78 + vpshufd ymm1,ymm1,147 + vpshufd ymm3,ymm3,57 + dec r8 + jnz NEAR $L$oop_avx512vl + vpaddd ymm0,ymm0,ymm16 + vpaddd ymm1,ymm1,ymm17 + vpaddd ymm2,ymm2,ymm18 + vpaddd ymm3,ymm3,ymm19 + + sub rdx,64 + jb NEAR $L$tail64_avx512vl + + vpxor xmm4,xmm0,XMMWORD[rsi] + vpxor xmm5,xmm1,XMMWORD[16+rsi] + vpxor xmm6,xmm2,XMMWORD[32+rsi] + vpxor xmm7,xmm3,XMMWORD[48+rsi] + lea rsi,[64+rsi] + + vmovdqu XMMWORD[rdi],xmm4 + vmovdqu XMMWORD[16+rdi],xmm5 + vmovdqu XMMWORD[32+rdi],xmm6 + vmovdqu XMMWORD[48+rdi],xmm7 + lea rdi,[64+rdi] + + jz NEAR $L$done_avx512vl + + vextracti128 xmm4,ymm0,1 + vextracti128 xmm5,ymm1,1 + vextracti128 xmm6,ymm2,1 + vextracti128 xmm7,ymm3,1 + + sub rdx,64 + jb NEAR $L$tail_avx512vl + + vpxor xmm4,xmm4,XMMWORD[rsi] + vpxor xmm5,xmm5,XMMWORD[16+rsi] + vpxor xmm6,xmm6,XMMWORD[32+rsi] + vpxor xmm7,xmm7,XMMWORD[48+rsi] + lea rsi,[64+rsi] + + vmovdqu XMMWORD[rdi],xmm4 + vmovdqu XMMWORD[16+rdi],xmm5 + vmovdqu XMMWORD[32+rdi],xmm6 + vmovdqu XMMWORD[48+rdi],xmm7 + lea rdi,[64+rdi] + + vmovdqa32 ymm0,ymm16 + vmovdqa32 ymm1,ymm17 + jnz NEAR $L$oop_outer_avx512vl + + jmp NEAR $L$done_avx512vl + +ALIGN 16 +$L$tail64_avx512vl: + vmovdqa XMMWORD[rsp],xmm0 + vmovdqa XMMWORD[16+rsp],xmm1 + vmovdqa XMMWORD[32+rsp],xmm2 + vmovdqa XMMWORD[48+rsp],xmm3 + add rdx,64 + jmp NEAR $L$oop_tail_avx512vl + +ALIGN 16 +$L$tail_avx512vl: + vmovdqa XMMWORD[rsp],xmm4 + vmovdqa XMMWORD[16+rsp],xmm5 + vmovdqa XMMWORD[32+rsp],xmm6 + vmovdqa XMMWORD[48+rsp],xmm7 + add rdx,64 + +$L$oop_tail_avx512vl: + movzx eax,BYTE[r8*1+rsi] + movzx ecx,BYTE[r8*1+rsp] + lea r8,[1+r8] + xor eax,ecx + mov BYTE[((-1))+r8*1+rdi],al + dec rdx + jnz NEAR $L$oop_tail_avx512vl + + vmovdqu32 YMMWORD[rsp],ymm16 + vmovdqu32 YMMWORD[32+rsp],ymm16 + +$L$done_avx512vl: + vzeroall + movaps xmm6,XMMWORD[((-40))+r9] + movaps xmm7,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$avx512vl_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ChaCha20_avx512vl: + +ALIGN 32 +ChaCha20_16x: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ChaCha20_16x: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +$L$ChaCha20_16x: + mov r9,rsp + + sub rsp,64+168 + and rsp,-64 + movaps XMMWORD[(-168)+r9],xmm6 + movaps XMMWORD[(-152)+r9],xmm7 + movaps XMMWORD[(-136)+r9],xmm8 + movaps XMMWORD[(-120)+r9],xmm9 + movaps XMMWORD[(-104)+r9],xmm10 + movaps XMMWORD[(-88)+r9],xmm11 + movaps XMMWORD[(-72)+r9],xmm12 + movaps XMMWORD[(-56)+r9],xmm13 + movaps XMMWORD[(-40)+r9],xmm14 + movaps XMMWORD[(-24)+r9],xmm15 +$L$16x_body: + vzeroupper + + lea r10,[$L$sigma] + vbroadcasti32x4 zmm3,ZMMWORD[r10] + vbroadcasti32x4 zmm7,ZMMWORD[rcx] + vbroadcasti32x4 zmm11,ZMMWORD[16+rcx] + vbroadcasti32x4 zmm15,ZMMWORD[r8] + + vpshufd zmm0,zmm3,0x00 + vpshufd zmm1,zmm3,0x55 + vpshufd zmm2,zmm3,0xaa + vpshufd zmm3,zmm3,0xff + vmovdqa64 zmm16,zmm0 + vmovdqa64 zmm17,zmm1 + vmovdqa64 zmm18,zmm2 + vmovdqa64 zmm19,zmm3 + + vpshufd zmm4,zmm7,0x00 + vpshufd zmm5,zmm7,0x55 + vpshufd zmm6,zmm7,0xaa + vpshufd zmm7,zmm7,0xff + vmovdqa64 zmm20,zmm4 + vmovdqa64 zmm21,zmm5 + vmovdqa64 zmm22,zmm6 + vmovdqa64 zmm23,zmm7 + + vpshufd zmm8,zmm11,0x00 + vpshufd zmm9,zmm11,0x55 + vpshufd zmm10,zmm11,0xaa + vpshufd zmm11,zmm11,0xff + vmovdqa64 zmm24,zmm8 + vmovdqa64 zmm25,zmm9 + vmovdqa64 zmm26,zmm10 + vmovdqa64 zmm27,zmm11 + + vpshufd zmm12,zmm15,0x00 + vpshufd zmm13,zmm15,0x55 + vpshufd zmm14,zmm15,0xaa + vpshufd zmm15,zmm15,0xff + vpaddd zmm12,zmm12,ZMMWORD[$L$incz] + vmovdqa64 zmm28,zmm12 + vmovdqa64 zmm29,zmm13 + vmovdqa64 zmm30,zmm14 + vmovdqa64 zmm31,zmm15 + + mov eax,10 + jmp NEAR $L$oop16x + +ALIGN 32 +$L$oop_outer16x: + vpbroadcastd zmm0,DWORD[r10] + vpbroadcastd zmm1,DWORD[4+r10] + vpbroadcastd zmm2,DWORD[8+r10] + vpbroadcastd zmm3,DWORD[12+r10] + vpaddd zmm28,zmm28,ZMMWORD[$L$sixteen] + vmovdqa64 zmm4,zmm20 + vmovdqa64 zmm5,zmm21 + vmovdqa64 zmm6,zmm22 + vmovdqa64 zmm7,zmm23 + vmovdqa64 zmm8,zmm24 + vmovdqa64 zmm9,zmm25 + vmovdqa64 zmm10,zmm26 + vmovdqa64 zmm11,zmm27 + vmovdqa64 zmm12,zmm28 + vmovdqa64 zmm13,zmm29 + vmovdqa64 zmm14,zmm30 + vmovdqa64 zmm15,zmm31 + + vmovdqa64 zmm16,zmm0 + vmovdqa64 zmm17,zmm1 + vmovdqa64 zmm18,zmm2 + vmovdqa64 zmm19,zmm3 + + mov eax,10 + jmp NEAR $L$oop16x + +ALIGN 32 +$L$oop16x: + vpaddd zmm0,zmm0,zmm4 + vpaddd zmm1,zmm1,zmm5 + vpaddd zmm2,zmm2,zmm6 + vpaddd zmm3,zmm3,zmm7 + vpxord zmm12,zmm12,zmm0 + vpxord zmm13,zmm13,zmm1 + vpxord zmm14,zmm14,zmm2 + vpxord zmm15,zmm15,zmm3 + vprold zmm12,zmm12,16 + vprold zmm13,zmm13,16 + vprold zmm14,zmm14,16 + vprold zmm15,zmm15,16 + vpaddd zmm8,zmm8,zmm12 + vpaddd zmm9,zmm9,zmm13 + vpaddd zmm10,zmm10,zmm14 + vpaddd zmm11,zmm11,zmm15 + vpxord zmm4,zmm4,zmm8 + vpxord zmm5,zmm5,zmm9 + vpxord zmm6,zmm6,zmm10 + vpxord zmm7,zmm7,zmm11 + vprold zmm4,zmm4,12 + vprold zmm5,zmm5,12 + vprold zmm6,zmm6,12 + vprold zmm7,zmm7,12 + vpaddd zmm0,zmm0,zmm4 + vpaddd zmm1,zmm1,zmm5 + vpaddd zmm2,zmm2,zmm6 + vpaddd zmm3,zmm3,zmm7 + vpxord zmm12,zmm12,zmm0 + vpxord zmm13,zmm13,zmm1 + vpxord zmm14,zmm14,zmm2 + vpxord zmm15,zmm15,zmm3 + vprold zmm12,zmm12,8 + vprold zmm13,zmm13,8 + vprold zmm14,zmm14,8 + vprold zmm15,zmm15,8 + vpaddd zmm8,zmm8,zmm12 + vpaddd zmm9,zmm9,zmm13 + vpaddd zmm10,zmm10,zmm14 + vpaddd zmm11,zmm11,zmm15 + vpxord zmm4,zmm4,zmm8 + vpxord zmm5,zmm5,zmm9 + vpxord zmm6,zmm6,zmm10 + vpxord zmm7,zmm7,zmm11 + vprold zmm4,zmm4,7 + vprold zmm5,zmm5,7 + vprold zmm6,zmm6,7 + vprold zmm7,zmm7,7 + vpaddd zmm0,zmm0,zmm5 + vpaddd zmm1,zmm1,zmm6 + vpaddd zmm2,zmm2,zmm7 + vpaddd zmm3,zmm3,zmm4 + vpxord zmm15,zmm15,zmm0 + vpxord zmm12,zmm12,zmm1 + vpxord zmm13,zmm13,zmm2 + vpxord zmm14,zmm14,zmm3 + vprold zmm15,zmm15,16 + vprold zmm12,zmm12,16 + vprold zmm13,zmm13,16 + vprold zmm14,zmm14,16 + vpaddd zmm10,zmm10,zmm15 + vpaddd zmm11,zmm11,zmm12 + vpaddd zmm8,zmm8,zmm13 + vpaddd zmm9,zmm9,zmm14 + vpxord zmm5,zmm5,zmm10 + vpxord zmm6,zmm6,zmm11 + vpxord zmm7,zmm7,zmm8 + vpxord zmm4,zmm4,zmm9 + vprold zmm5,zmm5,12 + vprold zmm6,zmm6,12 + vprold zmm7,zmm7,12 + vprold zmm4,zmm4,12 + vpaddd zmm0,zmm0,zmm5 + vpaddd zmm1,zmm1,zmm6 + vpaddd zmm2,zmm2,zmm7 + vpaddd zmm3,zmm3,zmm4 + vpxord zmm15,zmm15,zmm0 + vpxord zmm12,zmm12,zmm1 + vpxord zmm13,zmm13,zmm2 + vpxord zmm14,zmm14,zmm3 + vprold zmm15,zmm15,8 + vprold zmm12,zmm12,8 + vprold zmm13,zmm13,8 + vprold zmm14,zmm14,8 + vpaddd zmm10,zmm10,zmm15 + vpaddd zmm11,zmm11,zmm12 + vpaddd zmm8,zmm8,zmm13 + vpaddd zmm9,zmm9,zmm14 + vpxord zmm5,zmm5,zmm10 + vpxord zmm6,zmm6,zmm11 + vpxord zmm7,zmm7,zmm8 + vpxord zmm4,zmm4,zmm9 + vprold zmm5,zmm5,7 + vprold zmm6,zmm6,7 + vprold zmm7,zmm7,7 + vprold zmm4,zmm4,7 + dec eax + jnz NEAR $L$oop16x + + vpaddd zmm0,zmm0,zmm16 + vpaddd zmm1,zmm1,zmm17 + vpaddd zmm2,zmm2,zmm18 + vpaddd zmm3,zmm3,zmm19 + + vpunpckldq zmm18,zmm0,zmm1 + vpunpckldq zmm19,zmm2,zmm3 + vpunpckhdq zmm0,zmm0,zmm1 + vpunpckhdq zmm2,zmm2,zmm3 + vpunpcklqdq zmm1,zmm18,zmm19 + vpunpckhqdq zmm18,zmm18,zmm19 + vpunpcklqdq zmm3,zmm0,zmm2 + vpunpckhqdq zmm0,zmm0,zmm2 + vpaddd zmm4,zmm4,zmm20 + vpaddd zmm5,zmm5,zmm21 + vpaddd zmm6,zmm6,zmm22 + vpaddd zmm7,zmm7,zmm23 + + vpunpckldq zmm2,zmm4,zmm5 + vpunpckldq zmm19,zmm6,zmm7 + vpunpckhdq zmm4,zmm4,zmm5 + vpunpckhdq zmm6,zmm6,zmm7 + vpunpcklqdq zmm5,zmm2,zmm19 + vpunpckhqdq zmm2,zmm2,zmm19 + vpunpcklqdq zmm7,zmm4,zmm6 + vpunpckhqdq zmm4,zmm4,zmm6 + vshufi32x4 zmm19,zmm1,zmm5,0x44 + vshufi32x4 zmm5,zmm1,zmm5,0xee + vshufi32x4 zmm1,zmm18,zmm2,0x44 + vshufi32x4 zmm2,zmm18,zmm2,0xee + vshufi32x4 zmm18,zmm3,zmm7,0x44 + vshufi32x4 zmm7,zmm3,zmm7,0xee + vshufi32x4 zmm3,zmm0,zmm4,0x44 + vshufi32x4 zmm4,zmm0,zmm4,0xee + vpaddd zmm8,zmm8,zmm24 + vpaddd zmm9,zmm9,zmm25 + vpaddd zmm10,zmm10,zmm26 + vpaddd zmm11,zmm11,zmm27 + + vpunpckldq zmm6,zmm8,zmm9 + vpunpckldq zmm0,zmm10,zmm11 + vpunpckhdq zmm8,zmm8,zmm9 + vpunpckhdq zmm10,zmm10,zmm11 + vpunpcklqdq zmm9,zmm6,zmm0 + vpunpckhqdq zmm6,zmm6,zmm0 + vpunpcklqdq zmm11,zmm8,zmm10 + vpunpckhqdq zmm8,zmm8,zmm10 + vpaddd zmm12,zmm12,zmm28 + vpaddd zmm13,zmm13,zmm29 + vpaddd zmm14,zmm14,zmm30 + vpaddd zmm15,zmm15,zmm31 + + vpunpckldq zmm10,zmm12,zmm13 + vpunpckldq zmm0,zmm14,zmm15 + vpunpckhdq zmm12,zmm12,zmm13 + vpunpckhdq zmm14,zmm14,zmm15 + vpunpcklqdq zmm13,zmm10,zmm0 + vpunpckhqdq zmm10,zmm10,zmm0 + vpunpcklqdq zmm15,zmm12,zmm14 + vpunpckhqdq zmm12,zmm12,zmm14 + vshufi32x4 zmm0,zmm9,zmm13,0x44 + vshufi32x4 zmm13,zmm9,zmm13,0xee + vshufi32x4 zmm9,zmm6,zmm10,0x44 + vshufi32x4 zmm10,zmm6,zmm10,0xee + vshufi32x4 zmm6,zmm11,zmm15,0x44 + vshufi32x4 zmm15,zmm11,zmm15,0xee + vshufi32x4 zmm11,zmm8,zmm12,0x44 + vshufi32x4 zmm12,zmm8,zmm12,0xee + vshufi32x4 zmm16,zmm19,zmm0,0x88 + vshufi32x4 zmm19,zmm19,zmm0,0xdd + vshufi32x4 zmm0,zmm5,zmm13,0x88 + vshufi32x4 zmm13,zmm5,zmm13,0xdd + vshufi32x4 zmm17,zmm1,zmm9,0x88 + vshufi32x4 zmm1,zmm1,zmm9,0xdd + vshufi32x4 zmm9,zmm2,zmm10,0x88 + vshufi32x4 zmm10,zmm2,zmm10,0xdd + vshufi32x4 zmm14,zmm18,zmm6,0x88 + vshufi32x4 zmm18,zmm18,zmm6,0xdd + vshufi32x4 zmm6,zmm7,zmm15,0x88 + vshufi32x4 zmm15,zmm7,zmm15,0xdd + vshufi32x4 zmm8,zmm3,zmm11,0x88 + vshufi32x4 zmm3,zmm3,zmm11,0xdd + vshufi32x4 zmm11,zmm4,zmm12,0x88 + vshufi32x4 zmm12,zmm4,zmm12,0xdd + cmp rdx,64*16 + jb NEAR $L$tail16x + + vpxord zmm16,zmm16,ZMMWORD[rsi] + vpxord zmm17,zmm17,ZMMWORD[64+rsi] + vpxord zmm14,zmm14,ZMMWORD[128+rsi] + vpxord zmm8,zmm8,ZMMWORD[192+rsi] + vmovdqu32 ZMMWORD[rdi],zmm16 + vmovdqu32 ZMMWORD[64+rdi],zmm17 + vmovdqu32 ZMMWORD[128+rdi],zmm14 + vmovdqu32 ZMMWORD[192+rdi],zmm8 + + vpxord zmm19,zmm19,ZMMWORD[256+rsi] + vpxord zmm1,zmm1,ZMMWORD[320+rsi] + vpxord zmm18,zmm18,ZMMWORD[384+rsi] + vpxord zmm3,zmm3,ZMMWORD[448+rsi] + vmovdqu32 ZMMWORD[256+rdi],zmm19 + vmovdqu32 ZMMWORD[320+rdi],zmm1 + vmovdqu32 ZMMWORD[384+rdi],zmm18 + vmovdqu32 ZMMWORD[448+rdi],zmm3 + + vpxord zmm0,zmm0,ZMMWORD[512+rsi] + vpxord zmm9,zmm9,ZMMWORD[576+rsi] + vpxord zmm6,zmm6,ZMMWORD[640+rsi] + vpxord zmm11,zmm11,ZMMWORD[704+rsi] + vmovdqu32 ZMMWORD[512+rdi],zmm0 + vmovdqu32 ZMMWORD[576+rdi],zmm9 + vmovdqu32 ZMMWORD[640+rdi],zmm6 + vmovdqu32 ZMMWORD[704+rdi],zmm11 + + vpxord zmm13,zmm13,ZMMWORD[768+rsi] + vpxord zmm10,zmm10,ZMMWORD[832+rsi] + vpxord zmm15,zmm15,ZMMWORD[896+rsi] + vpxord zmm12,zmm12,ZMMWORD[960+rsi] + lea rsi,[1024+rsi] + vmovdqu32 ZMMWORD[768+rdi],zmm13 + vmovdqu32 ZMMWORD[832+rdi],zmm10 + vmovdqu32 ZMMWORD[896+rdi],zmm15 + vmovdqu32 ZMMWORD[960+rdi],zmm12 + lea rdi,[1024+rdi] + + sub rdx,64*16 + jnz NEAR $L$oop_outer16x + + jmp NEAR $L$done16x + +ALIGN 32 +$L$tail16x: + xor r10,r10 + sub rdi,rsi + cmp rdx,64*1 + jb NEAR $L$ess_than_64_16x + vpxord zmm16,zmm16,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm16 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm17 + lea rsi,[64+rsi] + + cmp rdx,64*2 + jb NEAR $L$ess_than_64_16x + vpxord zmm17,zmm17,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm17 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm14 + lea rsi,[64+rsi] + + cmp rdx,64*3 + jb NEAR $L$ess_than_64_16x + vpxord zmm14,zmm14,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm14 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm8 + lea rsi,[64+rsi] + + cmp rdx,64*4 + jb NEAR $L$ess_than_64_16x + vpxord zmm8,zmm8,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm8 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm19 + lea rsi,[64+rsi] + + cmp rdx,64*5 + jb NEAR $L$ess_than_64_16x + vpxord zmm19,zmm19,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm19 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm1 + lea rsi,[64+rsi] + + cmp rdx,64*6 + jb NEAR $L$ess_than_64_16x + vpxord zmm1,zmm1,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm1 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm18 + lea rsi,[64+rsi] + + cmp rdx,64*7 + jb NEAR $L$ess_than_64_16x + vpxord zmm18,zmm18,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm18 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm3 + lea rsi,[64+rsi] + + cmp rdx,64*8 + jb NEAR $L$ess_than_64_16x + vpxord zmm3,zmm3,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm3 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm0 + lea rsi,[64+rsi] + + cmp rdx,64*9 + jb NEAR $L$ess_than_64_16x + vpxord zmm0,zmm0,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm0 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm9 + lea rsi,[64+rsi] + + cmp rdx,64*10 + jb NEAR $L$ess_than_64_16x + vpxord zmm9,zmm9,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm9 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm6 + lea rsi,[64+rsi] + + cmp rdx,64*11 + jb NEAR $L$ess_than_64_16x + vpxord zmm6,zmm6,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm6 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm11 + lea rsi,[64+rsi] + + cmp rdx,64*12 + jb NEAR $L$ess_than_64_16x + vpxord zmm11,zmm11,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm11 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm13 + lea rsi,[64+rsi] + + cmp rdx,64*13 + jb NEAR $L$ess_than_64_16x + vpxord zmm13,zmm13,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm13 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm10 + lea rsi,[64+rsi] + + cmp rdx,64*14 + jb NEAR $L$ess_than_64_16x + vpxord zmm10,zmm10,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm10 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm15 + lea rsi,[64+rsi] + + cmp rdx,64*15 + jb NEAR $L$ess_than_64_16x + vpxord zmm15,zmm15,ZMMWORD[rsi] + vmovdqu32 ZMMWORD[rsi*1+rdi],zmm15 + je NEAR $L$done16x + vmovdqa32 zmm16,zmm12 + lea rsi,[64+rsi] + +$L$ess_than_64_16x: + vmovdqa32 ZMMWORD[rsp],zmm16 + lea rdi,[rsi*1+rdi] + and rdx,63 + +$L$oop_tail16x: + movzx eax,BYTE[r10*1+rsi] + movzx ecx,BYTE[r10*1+rsp] + lea r10,[1+r10] + xor eax,ecx + mov BYTE[((-1))+r10*1+rdi],al + dec rdx + jnz NEAR $L$oop_tail16x + + vpxord zmm16,zmm16,zmm16 + vmovdqa32 ZMMWORD[rsp],zmm16 + +$L$done16x: + vzeroall + movaps xmm6,XMMWORD[((-168))+r9] + movaps xmm7,XMMWORD[((-152))+r9] + movaps xmm8,XMMWORD[((-136))+r9] + movaps xmm9,XMMWORD[((-120))+r9] + movaps xmm10,XMMWORD[((-104))+r9] + movaps xmm11,XMMWORD[((-88))+r9] + movaps xmm12,XMMWORD[((-72))+r9] + movaps xmm13,XMMWORD[((-56))+r9] + movaps xmm14,XMMWORD[((-40))+r9] + movaps xmm15,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$16x_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ChaCha20_16x: + +ALIGN 32 +ChaCha20_8xvl: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ChaCha20_8xvl: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +$L$ChaCha20_8xvl: + mov r9,rsp + + sub rsp,64+168 + and rsp,-64 + movaps XMMWORD[(-168)+r9],xmm6 + movaps XMMWORD[(-152)+r9],xmm7 + movaps XMMWORD[(-136)+r9],xmm8 + movaps XMMWORD[(-120)+r9],xmm9 + movaps XMMWORD[(-104)+r9],xmm10 + movaps XMMWORD[(-88)+r9],xmm11 + movaps XMMWORD[(-72)+r9],xmm12 + movaps XMMWORD[(-56)+r9],xmm13 + movaps XMMWORD[(-40)+r9],xmm14 + movaps XMMWORD[(-24)+r9],xmm15 +$L$8xvl_body: + vzeroupper + + lea r10,[$L$sigma] + vbroadcasti128 ymm3,XMMWORD[r10] + vbroadcasti128 ymm7,XMMWORD[rcx] + vbroadcasti128 ymm11,XMMWORD[16+rcx] + vbroadcasti128 ymm15,XMMWORD[r8] + + vpshufd ymm0,ymm3,0x00 + vpshufd ymm1,ymm3,0x55 + vpshufd ymm2,ymm3,0xaa + vpshufd ymm3,ymm3,0xff + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm1 + vmovdqa64 ymm18,ymm2 + vmovdqa64 ymm19,ymm3 + + vpshufd ymm4,ymm7,0x00 + vpshufd ymm5,ymm7,0x55 + vpshufd ymm6,ymm7,0xaa + vpshufd ymm7,ymm7,0xff + vmovdqa64 ymm20,ymm4 + vmovdqa64 ymm21,ymm5 + vmovdqa64 ymm22,ymm6 + vmovdqa64 ymm23,ymm7 + + vpshufd ymm8,ymm11,0x00 + vpshufd ymm9,ymm11,0x55 + vpshufd ymm10,ymm11,0xaa + vpshufd ymm11,ymm11,0xff + vmovdqa64 ymm24,ymm8 + vmovdqa64 ymm25,ymm9 + vmovdqa64 ymm26,ymm10 + vmovdqa64 ymm27,ymm11 + + vpshufd ymm12,ymm15,0x00 + vpshufd ymm13,ymm15,0x55 + vpshufd ymm14,ymm15,0xaa + vpshufd ymm15,ymm15,0xff + vpaddd ymm12,ymm12,YMMWORD[$L$incy] + vmovdqa64 ymm28,ymm12 + vmovdqa64 ymm29,ymm13 + vmovdqa64 ymm30,ymm14 + vmovdqa64 ymm31,ymm15 + + mov eax,10 + jmp NEAR $L$oop8xvl + +ALIGN 32 +$L$oop_outer8xvl: + + + vpbroadcastd ymm2,DWORD[8+r10] + vpbroadcastd ymm3,DWORD[12+r10] + vpaddd ymm28,ymm28,YMMWORD[$L$eight] + vmovdqa64 ymm4,ymm20 + vmovdqa64 ymm5,ymm21 + vmovdqa64 ymm6,ymm22 + vmovdqa64 ymm7,ymm23 + vmovdqa64 ymm8,ymm24 + vmovdqa64 ymm9,ymm25 + vmovdqa64 ymm10,ymm26 + vmovdqa64 ymm11,ymm27 + vmovdqa64 ymm12,ymm28 + vmovdqa64 ymm13,ymm29 + vmovdqa64 ymm14,ymm30 + vmovdqa64 ymm15,ymm31 + + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm1 + vmovdqa64 ymm18,ymm2 + vmovdqa64 ymm19,ymm3 + + mov eax,10 + jmp NEAR $L$oop8xvl + +ALIGN 32 +$L$oop8xvl: + vpaddd ymm0,ymm0,ymm4 + vpaddd ymm1,ymm1,ymm5 + vpaddd ymm2,ymm2,ymm6 + vpaddd ymm3,ymm3,ymm7 + vpxor ymm12,ymm12,ymm0 + vpxor ymm13,ymm13,ymm1 + vpxor ymm14,ymm14,ymm2 + vpxor ymm15,ymm15,ymm3 + vprold ymm12,ymm12,16 + vprold ymm13,ymm13,16 + vprold ymm14,ymm14,16 + vprold ymm15,ymm15,16 + vpaddd ymm8,ymm8,ymm12 + vpaddd ymm9,ymm9,ymm13 + vpaddd ymm10,ymm10,ymm14 + vpaddd ymm11,ymm11,ymm15 + vpxor ymm4,ymm4,ymm8 + vpxor ymm5,ymm5,ymm9 + vpxor ymm6,ymm6,ymm10 + vpxor ymm7,ymm7,ymm11 + vprold ymm4,ymm4,12 + vprold ymm5,ymm5,12 + vprold ymm6,ymm6,12 + vprold ymm7,ymm7,12 + vpaddd ymm0,ymm0,ymm4 + vpaddd ymm1,ymm1,ymm5 + vpaddd ymm2,ymm2,ymm6 + vpaddd ymm3,ymm3,ymm7 + vpxor ymm12,ymm12,ymm0 + vpxor ymm13,ymm13,ymm1 + vpxor ymm14,ymm14,ymm2 + vpxor ymm15,ymm15,ymm3 + vprold ymm12,ymm12,8 + vprold ymm13,ymm13,8 + vprold ymm14,ymm14,8 + vprold ymm15,ymm15,8 + vpaddd ymm8,ymm8,ymm12 + vpaddd ymm9,ymm9,ymm13 + vpaddd ymm10,ymm10,ymm14 + vpaddd ymm11,ymm11,ymm15 + vpxor ymm4,ymm4,ymm8 + vpxor ymm5,ymm5,ymm9 + vpxor ymm6,ymm6,ymm10 + vpxor ymm7,ymm7,ymm11 + vprold ymm4,ymm4,7 + vprold ymm5,ymm5,7 + vprold ymm6,ymm6,7 + vprold ymm7,ymm7,7 + vpaddd ymm0,ymm0,ymm5 + vpaddd ymm1,ymm1,ymm6 + vpaddd ymm2,ymm2,ymm7 + vpaddd ymm3,ymm3,ymm4 + vpxor ymm15,ymm15,ymm0 + vpxor ymm12,ymm12,ymm1 + vpxor ymm13,ymm13,ymm2 + vpxor ymm14,ymm14,ymm3 + vprold ymm15,ymm15,16 + vprold ymm12,ymm12,16 + vprold ymm13,ymm13,16 + vprold ymm14,ymm14,16 + vpaddd ymm10,ymm10,ymm15 + vpaddd ymm11,ymm11,ymm12 + vpaddd ymm8,ymm8,ymm13 + vpaddd ymm9,ymm9,ymm14 + vpxor ymm5,ymm5,ymm10 + vpxor ymm6,ymm6,ymm11 + vpxor ymm7,ymm7,ymm8 + vpxor ymm4,ymm4,ymm9 + vprold ymm5,ymm5,12 + vprold ymm6,ymm6,12 + vprold ymm7,ymm7,12 + vprold ymm4,ymm4,12 + vpaddd ymm0,ymm0,ymm5 + vpaddd ymm1,ymm1,ymm6 + vpaddd ymm2,ymm2,ymm7 + vpaddd ymm3,ymm3,ymm4 + vpxor ymm15,ymm15,ymm0 + vpxor ymm12,ymm12,ymm1 + vpxor ymm13,ymm13,ymm2 + vpxor ymm14,ymm14,ymm3 + vprold ymm15,ymm15,8 + vprold ymm12,ymm12,8 + vprold ymm13,ymm13,8 + vprold ymm14,ymm14,8 + vpaddd ymm10,ymm10,ymm15 + vpaddd ymm11,ymm11,ymm12 + vpaddd ymm8,ymm8,ymm13 + vpaddd ymm9,ymm9,ymm14 + vpxor ymm5,ymm5,ymm10 + vpxor ymm6,ymm6,ymm11 + vpxor ymm7,ymm7,ymm8 + vpxor ymm4,ymm4,ymm9 + vprold ymm5,ymm5,7 + vprold ymm6,ymm6,7 + vprold ymm7,ymm7,7 + vprold ymm4,ymm4,7 + dec eax + jnz NEAR $L$oop8xvl + + vpaddd ymm0,ymm0,ymm16 + vpaddd ymm1,ymm1,ymm17 + vpaddd ymm2,ymm2,ymm18 + vpaddd ymm3,ymm3,ymm19 + + vpunpckldq ymm18,ymm0,ymm1 + vpunpckldq ymm19,ymm2,ymm3 + vpunpckhdq ymm0,ymm0,ymm1 + vpunpckhdq ymm2,ymm2,ymm3 + vpunpcklqdq ymm1,ymm18,ymm19 + vpunpckhqdq ymm18,ymm18,ymm19 + vpunpcklqdq ymm3,ymm0,ymm2 + vpunpckhqdq ymm0,ymm0,ymm2 + vpaddd ymm4,ymm4,ymm20 + vpaddd ymm5,ymm5,ymm21 + vpaddd ymm6,ymm6,ymm22 + vpaddd ymm7,ymm7,ymm23 + + vpunpckldq ymm2,ymm4,ymm5 + vpunpckldq ymm19,ymm6,ymm7 + vpunpckhdq ymm4,ymm4,ymm5 + vpunpckhdq ymm6,ymm6,ymm7 + vpunpcklqdq ymm5,ymm2,ymm19 + vpunpckhqdq ymm2,ymm2,ymm19 + vpunpcklqdq ymm7,ymm4,ymm6 + vpunpckhqdq ymm4,ymm4,ymm6 + vshufi32x4 ymm19,ymm1,ymm5,0 + vshufi32x4 ymm5,ymm1,ymm5,3 + vshufi32x4 ymm1,ymm18,ymm2,0 + vshufi32x4 ymm2,ymm18,ymm2,3 + vshufi32x4 ymm18,ymm3,ymm7,0 + vshufi32x4 ymm7,ymm3,ymm7,3 + vshufi32x4 ymm3,ymm0,ymm4,0 + vshufi32x4 ymm4,ymm0,ymm4,3 + vpaddd ymm8,ymm8,ymm24 + vpaddd ymm9,ymm9,ymm25 + vpaddd ymm10,ymm10,ymm26 + vpaddd ymm11,ymm11,ymm27 + + vpunpckldq ymm6,ymm8,ymm9 + vpunpckldq ymm0,ymm10,ymm11 + vpunpckhdq ymm8,ymm8,ymm9 + vpunpckhdq ymm10,ymm10,ymm11 + vpunpcklqdq ymm9,ymm6,ymm0 + vpunpckhqdq ymm6,ymm6,ymm0 + vpunpcklqdq ymm11,ymm8,ymm10 + vpunpckhqdq ymm8,ymm8,ymm10 + vpaddd ymm12,ymm12,ymm28 + vpaddd ymm13,ymm13,ymm29 + vpaddd ymm14,ymm14,ymm30 + vpaddd ymm15,ymm15,ymm31 + + vpunpckldq ymm10,ymm12,ymm13 + vpunpckldq ymm0,ymm14,ymm15 + vpunpckhdq ymm12,ymm12,ymm13 + vpunpckhdq ymm14,ymm14,ymm15 + vpunpcklqdq ymm13,ymm10,ymm0 + vpunpckhqdq ymm10,ymm10,ymm0 + vpunpcklqdq ymm15,ymm12,ymm14 + vpunpckhqdq ymm12,ymm12,ymm14 + vperm2i128 ymm0,ymm9,ymm13,0x20 + vperm2i128 ymm13,ymm9,ymm13,0x31 + vperm2i128 ymm9,ymm6,ymm10,0x20 + vperm2i128 ymm10,ymm6,ymm10,0x31 + vperm2i128 ymm6,ymm11,ymm15,0x20 + vperm2i128 ymm15,ymm11,ymm15,0x31 + vperm2i128 ymm11,ymm8,ymm12,0x20 + vperm2i128 ymm12,ymm8,ymm12,0x31 + cmp rdx,64*8 + jb NEAR $L$tail8xvl + + mov eax,0x80 + vpxord ymm19,ymm19,YMMWORD[rsi] + vpxor ymm0,ymm0,YMMWORD[32+rsi] + vpxor ymm5,ymm5,YMMWORD[64+rsi] + vpxor ymm13,ymm13,YMMWORD[96+rsi] + lea rsi,[rax*1+rsi] + vmovdqu32 YMMWORD[rdi],ymm19 + vmovdqu YMMWORD[32+rdi],ymm0 + vmovdqu YMMWORD[64+rdi],ymm5 + vmovdqu YMMWORD[96+rdi],ymm13 + lea rdi,[rax*1+rdi] + + vpxor ymm1,ymm1,YMMWORD[rsi] + vpxor ymm9,ymm9,YMMWORD[32+rsi] + vpxor ymm2,ymm2,YMMWORD[64+rsi] + vpxor ymm10,ymm10,YMMWORD[96+rsi] + lea rsi,[rax*1+rsi] + vmovdqu YMMWORD[rdi],ymm1 + vmovdqu YMMWORD[32+rdi],ymm9 + vmovdqu YMMWORD[64+rdi],ymm2 + vmovdqu YMMWORD[96+rdi],ymm10 + lea rdi,[rax*1+rdi] + + vpxord ymm18,ymm18,YMMWORD[rsi] + vpxor ymm6,ymm6,YMMWORD[32+rsi] + vpxor ymm7,ymm7,YMMWORD[64+rsi] + vpxor ymm15,ymm15,YMMWORD[96+rsi] + lea rsi,[rax*1+rsi] + vmovdqu32 YMMWORD[rdi],ymm18 + vmovdqu YMMWORD[32+rdi],ymm6 + vmovdqu YMMWORD[64+rdi],ymm7 + vmovdqu YMMWORD[96+rdi],ymm15 + lea rdi,[rax*1+rdi] + + vpxor ymm3,ymm3,YMMWORD[rsi] + vpxor ymm11,ymm11,YMMWORD[32+rsi] + vpxor ymm4,ymm4,YMMWORD[64+rsi] + vpxor ymm12,ymm12,YMMWORD[96+rsi] + lea rsi,[rax*1+rsi] + vmovdqu YMMWORD[rdi],ymm3 + vmovdqu YMMWORD[32+rdi],ymm11 + vmovdqu YMMWORD[64+rdi],ymm4 + vmovdqu YMMWORD[96+rdi],ymm12 + lea rdi,[rax*1+rdi] + + vpbroadcastd ymm0,DWORD[r10] + vpbroadcastd ymm1,DWORD[4+r10] + + sub rdx,64*8 + jnz NEAR $L$oop_outer8xvl + + jmp NEAR $L$done8xvl + +ALIGN 32 +$L$tail8xvl: + vmovdqa64 ymm8,ymm19 + xor r10,r10 + sub rdi,rsi + cmp rdx,64*1 + jb NEAR $L$ess_than_64_8xvl + vpxor ymm8,ymm8,YMMWORD[rsi] + vpxor ymm0,ymm0,YMMWORD[32+rsi] + vmovdqu YMMWORD[rsi*1+rdi],ymm8 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm0 + je NEAR $L$done8xvl + vmovdqa ymm8,ymm5 + vmovdqa ymm0,ymm13 + lea rsi,[64+rsi] + + cmp rdx,64*2 + jb NEAR $L$ess_than_64_8xvl + vpxor ymm5,ymm5,YMMWORD[rsi] + vpxor ymm13,ymm13,YMMWORD[32+rsi] + vmovdqu YMMWORD[rsi*1+rdi],ymm5 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm13 + je NEAR $L$done8xvl + vmovdqa ymm8,ymm1 + vmovdqa ymm0,ymm9 + lea rsi,[64+rsi] + + cmp rdx,64*3 + jb NEAR $L$ess_than_64_8xvl + vpxor ymm1,ymm1,YMMWORD[rsi] + vpxor ymm9,ymm9,YMMWORD[32+rsi] + vmovdqu YMMWORD[rsi*1+rdi],ymm1 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm9 + je NEAR $L$done8xvl + vmovdqa ymm8,ymm2 + vmovdqa ymm0,ymm10 + lea rsi,[64+rsi] + + cmp rdx,64*4 + jb NEAR $L$ess_than_64_8xvl + vpxor ymm2,ymm2,YMMWORD[rsi] + vpxor ymm10,ymm10,YMMWORD[32+rsi] + vmovdqu YMMWORD[rsi*1+rdi],ymm2 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm10 + je NEAR $L$done8xvl + vmovdqa32 ymm8,ymm18 + vmovdqa ymm0,ymm6 + lea rsi,[64+rsi] + + cmp rdx,64*5 + jb NEAR $L$ess_than_64_8xvl + vpxord ymm18,ymm18,YMMWORD[rsi] + vpxor ymm6,ymm6,YMMWORD[32+rsi] + vmovdqu32 YMMWORD[rsi*1+rdi],ymm18 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm6 + je NEAR $L$done8xvl + vmovdqa ymm8,ymm7 + vmovdqa ymm0,ymm15 + lea rsi,[64+rsi] + + cmp rdx,64*6 + jb NEAR $L$ess_than_64_8xvl + vpxor ymm7,ymm7,YMMWORD[rsi] + vpxor ymm15,ymm15,YMMWORD[32+rsi] + vmovdqu YMMWORD[rsi*1+rdi],ymm7 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm15 + je NEAR $L$done8xvl + vmovdqa ymm8,ymm3 + vmovdqa ymm0,ymm11 + lea rsi,[64+rsi] + + cmp rdx,64*7 + jb NEAR $L$ess_than_64_8xvl + vpxor ymm3,ymm3,YMMWORD[rsi] + vpxor ymm11,ymm11,YMMWORD[32+rsi] + vmovdqu YMMWORD[rsi*1+rdi],ymm3 + vmovdqu YMMWORD[32+rsi*1+rdi],ymm11 + je NEAR $L$done8xvl + vmovdqa ymm8,ymm4 + vmovdqa ymm0,ymm12 + lea rsi,[64+rsi] + +$L$ess_than_64_8xvl: + vmovdqa YMMWORD[rsp],ymm8 + vmovdqa YMMWORD[32+rsp],ymm0 + lea rdi,[rsi*1+rdi] + and rdx,63 + +$L$oop_tail8xvl: + movzx eax,BYTE[r10*1+rsi] + movzx ecx,BYTE[r10*1+rsp] + lea r10,[1+r10] + xor eax,ecx + mov BYTE[((-1))+r10*1+rdi],al + dec rdx + jnz NEAR $L$oop_tail8xvl + + vpxor ymm8,ymm8,ymm8 + vmovdqa YMMWORD[rsp],ymm8 + vmovdqa YMMWORD[32+rsp],ymm8 + +$L$done8xvl: + vzeroall + movaps xmm6,XMMWORD[((-168))+r9] + movaps xmm7,XMMWORD[((-152))+r9] + movaps xmm8,XMMWORD[((-136))+r9] + movaps xmm9,XMMWORD[((-120))+r9] + movaps xmm10,XMMWORD[((-104))+r9] + movaps xmm11,XMMWORD[((-88))+r9] + movaps xmm12,XMMWORD[((-72))+r9] + movaps xmm13,XMMWORD[((-56))+r9] + movaps xmm14,XMMWORD[((-40))+r9] + movaps xmm15,XMMWORD[((-24))+r9] + lea rsp,[r9] + +$L$8xvl_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ChaCha20_8xvl: +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +se_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + lea r10,[$L$ctr32_body] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + lea r10,[$L$no_data] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + lea rax,[((64+24+48))+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + + +ALIGN 16 +simd_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[192+r8] + + mov r10d,DWORD[4+r11] + mov ecx,DWORD[8+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + neg rcx + lea rsi,[((-8))+rcx*1+rax] + lea rdi,[512+r8] + neg ecx + shr ecx,3 + DD 0xa548f3fc + + jmp NEAR $L$common_seh_tail + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ChaCha20_ctr32 wrt ..imagebase + DD $L$SEH_end_ChaCha20_ctr32 wrt ..imagebase + DD $L$SEH_info_ChaCha20_ctr32 wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_ssse3 wrt ..imagebase + DD $L$SEH_end_ChaCha20_ssse3 wrt ..imagebase + DD $L$SEH_info_ChaCha20_ssse3 wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_128 wrt ..imagebase + DD $L$SEH_end_ChaCha20_128 wrt ..imagebase + DD $L$SEH_info_ChaCha20_128 wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_4x wrt ..imagebase + DD $L$SEH_end_ChaCha20_4x wrt ..imagebase + DD $L$SEH_info_ChaCha20_4x wrt ..imagebase + DD $L$SEH_begin_ChaCha20_4xop wrt ..imagebase + DD $L$SEH_end_ChaCha20_4xop wrt ..imagebase + DD $L$SEH_info_ChaCha20_4xop wrt ..imagebase + DD $L$SEH_begin_ChaCha20_8x wrt ..imagebase + DD $L$SEH_end_ChaCha20_8x wrt ..imagebase + DD $L$SEH_info_ChaCha20_8x wrt ..imagebase + DD $L$SEH_begin_ChaCha20_avx512 wrt ..imagebase + DD $L$SEH_end_ChaCha20_avx512 wrt ..imagebase + DD $L$SEH_info_ChaCha20_avx512 wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_avx512vl wrt ..imagebase + DD $L$SEH_end_ChaCha20_avx512vl wrt ..imagebase + DD $L$SEH_info_ChaCha20_avx512vl wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_16x wrt ..imagebase + DD $L$SEH_end_ChaCha20_16x wrt ..imagebase + DD $L$SEH_info_ChaCha20_16x wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_8xvl wrt ..imagebase + DD $L$SEH_end_ChaCha20_8xvl wrt ..imagebase + DD $L$SEH_info_ChaCha20_8xvl wrt ..imagebase +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ChaCha20_ctr32: +DB 9,0,0,0 + DD se_handler wrt ..imagebase + +$L$SEH_info_ChaCha20_ssse3: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$ssse3_body wrt ..imagebase,$L$ssse3_epilogue wrt ..imagebase + DD 0x20,0 + +$L$SEH_info_ChaCha20_128: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$128_body wrt ..imagebase,$L$128_epilogue wrt ..imagebase + DD 0x60,0 + +$L$SEH_info_ChaCha20_4x: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$4x_body wrt ..imagebase,$L$4x_epilogue wrt ..imagebase + DD 0xa0,0 +$L$SEH_info_ChaCha20_4xop: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$4xop_body wrt ..imagebase,$L$4xop_epilogue wrt ..imagebase + DD 0xa0,0 +$L$SEH_info_ChaCha20_8x: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$8x_body wrt ..imagebase,$L$8x_epilogue wrt ..imagebase + DD 0xa0,0 +$L$SEH_info_ChaCha20_avx512: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$avx512_body wrt ..imagebase,$L$avx512_epilogue wrt ..imagebase + DD 0x20,0 + +$L$SEH_info_ChaCha20_avx512vl: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$avx512vl_body wrt ..imagebase,$L$avx512vl_epilogue wrt ..imagebase + DD 0x20,0 + +$L$SEH_info_ChaCha20_16x: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$16x_body wrt ..imagebase,$L$16x_epilogue wrt ..imagebase + DD 0xa0,0 + +$L$SEH_info_ChaCha20_8xvl: +DB 9,0,0,0 + DD simd_handler wrt ..imagebase + DD $L$8xvl_body wrt ..imagebase,$L$8xvl_epilogue wrt ..imagebase + DD 0xa0,0 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm index e0c40d6ec4..9ef88ef1c8 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm @@ -2399,6 +2399,12 @@ $L$Three: $L$ONE_mont: DQ 0x0000000000000001,0xffffffff00000000,0xffffffffffffffff,0x00000000fffffffe + +$L$ord: + DQ 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000 +$L$ordK: + DQ 0xccd1c8aaee00bc4f + global ecp_nistz256_mul_by_2 ALIGN 64 @@ -2411,9 +2417,13 @@ $L$SEH_begin_ecp_nistz256_mul_by_2: mov rsi,rdx + push r12 + push r13 +$L$mul_by_2_body: + mov r8,QWORD[rsi] xor r13,r13 mov r9,QWORD[8+rsi] @@ -2445,11 +2455,17 @@ $L$SEH_begin_ecp_nistz256_mul_by_2: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$mul_by_2_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_mul_by_2: @@ -2466,9 +2482,13 @@ $L$SEH_begin_ecp_nistz256_div_by_2: mov rsi,rdx + push r12 + push r13 +$L$div_by_2_body: + mov r8,QWORD[rsi] mov r9,QWORD[8+rsi] mov r10,QWORD[16+rsi] @@ -2515,11 +2535,17 @@ $L$SEH_begin_ecp_nistz256_div_by_2: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$div_by_2_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_div_by_2: @@ -2536,9 +2562,13 @@ $L$SEH_begin_ecp_nistz256_mul_by_3: mov rsi,rdx + push r12 + push r13 +$L$mul_by_3_body: + mov r8,QWORD[rsi] xor r13,r13 mov r9,QWORD[8+rsi] @@ -2591,11 +2621,17 @@ $L$SEH_begin_ecp_nistz256_mul_by_3: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$mul_by_3_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_mul_by_3: @@ -2613,9 +2649,13 @@ $L$SEH_begin_ecp_nistz256_add: mov rdx,r8 + push r12 + push r13 +$L$add_body: + mov r8,QWORD[rsi] xor r13,r13 mov r9,QWORD[8+rsi] @@ -2648,11 +2688,17 @@ $L$SEH_begin_ecp_nistz256_add: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$add_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_add: @@ -2670,9 +2716,13 @@ $L$SEH_begin_ecp_nistz256_sub: mov rdx,r8 + push r12 + push r13 +$L$sub_body: + mov r8,QWORD[rsi] xor r13,r13 mov r9,QWORD[8+rsi] @@ -2705,11 +2755,17 @@ $L$SEH_begin_ecp_nistz256_sub: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$sub_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_sub: @@ -2726,9 +2782,13 @@ $L$SEH_begin_ecp_nistz256_neg: mov rsi,rdx + push r12 + push r13 +$L$neg_body: + xor r8,r8 xor r9,r9 xor r10,r10 @@ -2761,16 +2821,1131 @@ $L$SEH_begin_ecp_nistz256_neg: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$neg_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_neg: + + +global ecp_nistz256_ord_mul_mont + +ALIGN 32 +ecp_nistz256_ord_mul_mont: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ecp_nistz256_ord_mul_mont: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + + mov ecx,0x80100 + and ecx,DWORD[((OPENSSL_ia32cap_P+8))] + cmp ecx,0x80100 + je NEAR $L$ecp_nistz256_ord_mul_montx + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ord_mul_body: + + mov rax,QWORD[rdx] + mov rbx,rdx + lea r14,[$L$ord] + mov r15,QWORD[$L$ordK] + + + mov rcx,rax + mul QWORD[rsi] + mov r8,rax + mov rax,rcx + mov r9,rdx + + mul QWORD[8+rsi] + add r9,rax + mov rax,rcx + adc rdx,0 + mov r10,rdx + + mul QWORD[16+rsi] + add r10,rax + mov rax,rcx + adc rdx,0 + + mov r13,r8 + imul r8,r15 + + mov r11,rdx + mul QWORD[24+rsi] + add r11,rax + mov rax,r8 + adc rdx,0 + mov r12,rdx + + + mul QWORD[r14] + mov rbp,r8 + add r13,rax + mov rax,r8 + adc rdx,0 + mov rcx,rdx + + sub r10,r8 + sbb r8,0 + + mul QWORD[8+r14] + add r9,rcx + adc rdx,0 + add r9,rax + mov rax,rbp + adc r10,rdx + mov rdx,rbp + adc r8,0 + + shl rax,32 + shr rdx,32 + sub r11,rax + mov rax,QWORD[8+rbx] + sbb rbp,rdx + + add r11,r8 + adc r12,rbp + adc r13,0 + + + mov rcx,rax + mul QWORD[rsi] + add r9,rax + mov rax,rcx + adc rdx,0 + mov rbp,rdx + + mul QWORD[8+rsi] + add r10,rbp + adc rdx,0 + add r10,rax + mov rax,rcx + adc rdx,0 + mov rbp,rdx + + mul QWORD[16+rsi] + add r11,rbp + adc rdx,0 + add r11,rax + mov rax,rcx + adc rdx,0 + + mov rcx,r9 + imul r9,r15 + + mov rbp,rdx + mul QWORD[24+rsi] + add r12,rbp + adc rdx,0 + xor r8,r8 + add r12,rax + mov rax,r9 + adc r13,rdx + adc r8,0 + + + mul QWORD[r14] + mov rbp,r9 + add rcx,rax + mov rax,r9 + adc rcx,rdx + + sub r11,r9 + sbb r9,0 + + mul QWORD[8+r14] + add r10,rcx + adc rdx,0 + add r10,rax + mov rax,rbp + adc r11,rdx + mov rdx,rbp + adc r9,0 + + shl rax,32 + shr rdx,32 + sub r12,rax + mov rax,QWORD[16+rbx] + sbb rbp,rdx + + add r12,r9 + adc r13,rbp + adc r8,0 + + + mov rcx,rax + mul QWORD[rsi] + add r10,rax + mov rax,rcx + adc rdx,0 + mov rbp,rdx + + mul QWORD[8+rsi] + add r11,rbp + adc rdx,0 + add r11,rax + mov rax,rcx + adc rdx,0 + mov rbp,rdx + + mul QWORD[16+rsi] + add r12,rbp + adc rdx,0 + add r12,rax + mov rax,rcx + adc rdx,0 + + mov rcx,r10 + imul r10,r15 + + mov rbp,rdx + mul QWORD[24+rsi] + add r13,rbp + adc rdx,0 + xor r9,r9 + add r13,rax + mov rax,r10 + adc r8,rdx + adc r9,0 + + + mul QWORD[r14] + mov rbp,r10 + add rcx,rax + mov rax,r10 + adc rcx,rdx + + sub r12,r10 + sbb r10,0 + + mul QWORD[8+r14] + add r11,rcx + adc rdx,0 + add r11,rax + mov rax,rbp + adc r12,rdx + mov rdx,rbp + adc r10,0 + + shl rax,32 + shr rdx,32 + sub r13,rax + mov rax,QWORD[24+rbx] + sbb rbp,rdx + + add r13,r10 + adc r8,rbp + adc r9,0 + + + mov rcx,rax + mul QWORD[rsi] + add r11,rax + mov rax,rcx + adc rdx,0 + mov rbp,rdx + + mul QWORD[8+rsi] + add r12,rbp + adc rdx,0 + add r12,rax + mov rax,rcx + adc rdx,0 + mov rbp,rdx + + mul QWORD[16+rsi] + add r13,rbp + adc rdx,0 + add r13,rax + mov rax,rcx + adc rdx,0 + + mov rcx,r11 + imul r11,r15 + + mov rbp,rdx + mul QWORD[24+rsi] + add r8,rbp + adc rdx,0 + xor r10,r10 + add r8,rax + mov rax,r11 + adc r9,rdx + adc r10,0 + + + mul QWORD[r14] + mov rbp,r11 + add rcx,rax + mov rax,r11 + adc rcx,rdx + + sub r13,r11 + sbb r11,0 + + mul QWORD[8+r14] + add r12,rcx + adc rdx,0 + add r12,rax + mov rax,rbp + adc r13,rdx + mov rdx,rbp + adc r11,0 + + shl rax,32 + shr rdx,32 + sub r8,rax + sbb rbp,rdx + + add r8,r11 + adc r9,rbp + adc r10,0 + + + mov rsi,r12 + sub r12,QWORD[r14] + mov r11,r13 + sbb r13,QWORD[8+r14] + mov rcx,r8 + sbb r8,QWORD[16+r14] + mov rbp,r9 + sbb r9,QWORD[24+r14] + sbb r10,0 + + cmovc r12,rsi + cmovc r13,r11 + cmovc r8,rcx + cmovc r9,rbp + + mov QWORD[rdi],r12 + mov QWORD[8+rdi],r13 + mov QWORD[16+rdi],r8 + mov QWORD[24+rdi],r9 + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ord_mul_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ecp_nistz256_ord_mul_mont: + + + + + + + +global ecp_nistz256_ord_sqr_mont + +ALIGN 32 +ecp_nistz256_ord_sqr_mont: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ecp_nistz256_ord_sqr_mont: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + + mov ecx,0x80100 + and ecx,DWORD[((OPENSSL_ia32cap_P+8))] + cmp ecx,0x80100 + je NEAR $L$ecp_nistz256_ord_sqr_montx + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ord_sqr_body: + + mov r8,QWORD[rsi] + mov rax,QWORD[8+rsi] + mov r14,QWORD[16+rsi] + mov r15,QWORD[24+rsi] + lea rsi,[$L$ord] + mov rbx,rdx + jmp NEAR $L$oop_ord_sqr + +ALIGN 32 +$L$oop_ord_sqr: + + mov rbp,rax + mul r8 + mov r9,rax +DB 102,72,15,110,205 + mov rax,r14 + mov r10,rdx + + mul r8 + add r10,rax + mov rax,r15 +DB 102,73,15,110,214 + adc rdx,0 + mov r11,rdx + + mul r8 + add r11,rax + mov rax,r15 +DB 102,73,15,110,223 + adc rdx,0 + mov r12,rdx + + + mul r14 + mov r13,rax + mov rax,r14 + mov r14,rdx + + + mul rbp + add r11,rax + mov rax,r15 + adc rdx,0 + mov r15,rdx + + mul rbp + add r12,rax + adc rdx,0 + + add r12,r15 + adc r13,rdx + adc r14,0 + + + xor r15,r15 + mov rax,r8 + add r9,r9 + adc r10,r10 + adc r11,r11 + adc r12,r12 + adc r13,r13 + adc r14,r14 + adc r15,0 + + + mul rax + mov r8,rax +DB 102,72,15,126,200 + mov rbp,rdx + + mul rax + add r9,rbp + adc r10,rax +DB 102,72,15,126,208 + adc rdx,0 + mov rbp,rdx + + mul rax + add r11,rbp + adc r12,rax +DB 102,72,15,126,216 + adc rdx,0 + mov rbp,rdx + + mov rcx,r8 + imul r8,QWORD[32+rsi] + + mul rax + add r13,rbp + adc r14,rax + mov rax,QWORD[rsi] + adc r15,rdx + + + mul r8 + mov rbp,r8 + add rcx,rax + mov rax,QWORD[8+rsi] + adc rcx,rdx + + sub r10,r8 + sbb rbp,0 + + mul r8 + add r9,rcx + adc rdx,0 + add r9,rax + mov rax,r8 + adc r10,rdx + mov rdx,r8 + adc rbp,0 + + mov rcx,r9 + imul r9,QWORD[32+rsi] + + shl rax,32 + shr rdx,32 + sub r11,rax + mov rax,QWORD[rsi] + sbb r8,rdx + + add r11,rbp + adc r8,0 + + + mul r9 + mov rbp,r9 + add rcx,rax + mov rax,QWORD[8+rsi] + adc rcx,rdx + + sub r11,r9 + sbb rbp,0 + + mul r9 + add r10,rcx + adc rdx,0 + add r10,rax + mov rax,r9 + adc r11,rdx + mov rdx,r9 + adc rbp,0 + + mov rcx,r10 + imul r10,QWORD[32+rsi] + + shl rax,32 + shr rdx,32 + sub r8,rax + mov rax,QWORD[rsi] + sbb r9,rdx + + add r8,rbp + adc r9,0 + + + mul r10 + mov rbp,r10 + add rcx,rax + mov rax,QWORD[8+rsi] + adc rcx,rdx + + sub r8,r10 + sbb rbp,0 + + mul r10 + add r11,rcx + adc rdx,0 + add r11,rax + mov rax,r10 + adc r8,rdx + mov rdx,r10 + adc rbp,0 + + mov rcx,r11 + imul r11,QWORD[32+rsi] + + shl rax,32 + shr rdx,32 + sub r9,rax + mov rax,QWORD[rsi] + sbb r10,rdx + + add r9,rbp + adc r10,0 + + + mul r11 + mov rbp,r11 + add rcx,rax + mov rax,QWORD[8+rsi] + adc rcx,rdx + + sub r9,r11 + sbb rbp,0 + + mul r11 + add r8,rcx + adc rdx,0 + add r8,rax + mov rax,r11 + adc r9,rdx + mov rdx,r11 + adc rbp,0 + + shl rax,32 + shr rdx,32 + sub r10,rax + sbb r11,rdx + + add r10,rbp + adc r11,0 + + + xor rdx,rdx + add r8,r12 + adc r9,r13 + mov r12,r8 + adc r10,r14 + adc r11,r15 + mov rax,r9 + adc rdx,0 + + + sub r8,QWORD[rsi] + mov r14,r10 + sbb r9,QWORD[8+rsi] + sbb r10,QWORD[16+rsi] + mov r15,r11 + sbb r11,QWORD[24+rsi] + sbb rdx,0 + + cmovc r8,r12 + cmovnc rax,r9 + cmovnc r14,r10 + cmovnc r15,r11 + + dec rbx + jnz NEAR $L$oop_ord_sqr + + mov QWORD[rdi],r8 + mov QWORD[8+rdi],rax + pxor xmm1,xmm1 + mov QWORD[16+rdi],r14 + pxor xmm2,xmm2 + mov QWORD[24+rdi],r15 + pxor xmm3,xmm3 + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ord_sqr_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ecp_nistz256_ord_sqr_mont: + + +ALIGN 32 +ecp_nistz256_ord_mul_montx: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ecp_nistz256_ord_mul_montx: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + +$L$ecp_nistz256_ord_mul_montx: + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ord_mulx_body: + + mov rbx,rdx + mov rdx,QWORD[rdx] + mov r9,QWORD[rsi] + mov r10,QWORD[8+rsi] + mov r11,QWORD[16+rsi] + mov r12,QWORD[24+rsi] + lea rsi,[((-128))+rsi] + lea r14,[(($L$ord-128))] + mov r15,QWORD[$L$ordK] + + + mulx r9,r8,r9 + mulx r10,rcx,r10 + mulx r11,rbp,r11 + add r9,rcx + mulx r12,rcx,r12 + mov rdx,r8 + mulx rax,rdx,r15 + adc r10,rbp + adc r11,rcx + adc r12,0 + + + xor r13,r13 + mulx rbp,rcx,QWORD[((0+128))+r14] + adcx r8,rcx + adox r9,rbp + + mulx rbp,rcx,QWORD[((8+128))+r14] + adcx r9,rcx + adox r10,rbp + + mulx rbp,rcx,QWORD[((16+128))+r14] + adcx r10,rcx + adox r11,rbp + + mulx rbp,rcx,QWORD[((24+128))+r14] + mov rdx,QWORD[8+rbx] + adcx r11,rcx + adox r12,rbp + adcx r12,r8 + adox r13,r8 + adc r13,0 + + + mulx rbp,rcx,QWORD[((0+128))+rsi] + adcx r9,rcx + adox r10,rbp + + mulx rbp,rcx,QWORD[((8+128))+rsi] + adcx r10,rcx + adox r11,rbp + + mulx rbp,rcx,QWORD[((16+128))+rsi] + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,QWORD[((24+128))+rsi] + mov rdx,r9 + mulx rax,rdx,r15 + adcx r12,rcx + adox r13,rbp + + adcx r13,r8 + adox r8,r8 + adc r8,0 + + + mulx rbp,rcx,QWORD[((0+128))+r14] + adcx r9,rcx + adox r10,rbp + + mulx rbp,rcx,QWORD[((8+128))+r14] + adcx r10,rcx + adox r11,rbp + + mulx rbp,rcx,QWORD[((16+128))+r14] + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,QWORD[((24+128))+r14] + mov rdx,QWORD[16+rbx] + adcx r12,rcx + adox r13,rbp + adcx r13,r9 + adox r8,r9 + adc r8,0 + + + mulx rbp,rcx,QWORD[((0+128))+rsi] + adcx r10,rcx + adox r11,rbp + + mulx rbp,rcx,QWORD[((8+128))+rsi] + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,QWORD[((16+128))+rsi] + adcx r12,rcx + adox r13,rbp + + mulx rbp,rcx,QWORD[((24+128))+rsi] + mov rdx,r10 + mulx rax,rdx,r15 + adcx r13,rcx + adox r8,rbp + + adcx r8,r9 + adox r9,r9 + adc r9,0 + + + mulx rbp,rcx,QWORD[((0+128))+r14] + adcx r10,rcx + adox r11,rbp + + mulx rbp,rcx,QWORD[((8+128))+r14] + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,QWORD[((16+128))+r14] + adcx r12,rcx + adox r13,rbp + + mulx rbp,rcx,QWORD[((24+128))+r14] + mov rdx,QWORD[24+rbx] + adcx r13,rcx + adox r8,rbp + adcx r8,r10 + adox r9,r10 + adc r9,0 + + + mulx rbp,rcx,QWORD[((0+128))+rsi] + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,QWORD[((8+128))+rsi] + adcx r12,rcx + adox r13,rbp + + mulx rbp,rcx,QWORD[((16+128))+rsi] + adcx r13,rcx + adox r8,rbp + + mulx rbp,rcx,QWORD[((24+128))+rsi] + mov rdx,r11 + mulx rax,rdx,r15 + adcx r8,rcx + adox r9,rbp + + adcx r9,r10 + adox r10,r10 + adc r10,0 + + + mulx rbp,rcx,QWORD[((0+128))+r14] + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,QWORD[((8+128))+r14] + adcx r12,rcx + adox r13,rbp + + mulx rbp,rcx,QWORD[((16+128))+r14] + adcx r13,rcx + adox r8,rbp + + mulx rbp,rcx,QWORD[((24+128))+r14] + lea r14,[128+r14] + mov rbx,r12 + adcx r8,rcx + adox r9,rbp + mov rdx,r13 + adcx r9,r11 + adox r10,r11 + adc r10,0 + + + + mov rcx,r8 + sub r12,QWORD[r14] + sbb r13,QWORD[8+r14] + sbb r8,QWORD[16+r14] + mov rbp,r9 + sbb r9,QWORD[24+r14] + sbb r10,0 + + cmovc r12,rbx + cmovc r13,rdx + cmovc r8,rcx + cmovc r9,rbp + + mov QWORD[rdi],r12 + mov QWORD[8+rdi],r13 + mov QWORD[16+rdi],r8 + mov QWORD[24+rdi],r9 + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ord_mulx_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ecp_nistz256_ord_mul_montx: + + +ALIGN 32 +ecp_nistz256_ord_sqr_montx: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ecp_nistz256_ord_sqr_montx: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + +$L$ecp_nistz256_ord_sqr_montx: + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ord_sqrx_body: + + mov rbx,rdx + mov rdx,QWORD[rsi] + mov r14,QWORD[8+rsi] + mov r15,QWORD[16+rsi] + mov r8,QWORD[24+rsi] + lea rsi,[$L$ord] + jmp NEAR $L$oop_ord_sqrx + +ALIGN 32 +$L$oop_ord_sqrx: + mulx r10,r9,r14 + mulx r11,rcx,r15 + mov rax,rdx +DB 102,73,15,110,206 + mulx r12,rbp,r8 + mov rdx,r14 + add r10,rcx +DB 102,73,15,110,215 + adc r11,rbp + adc r12,0 + xor r13,r13 + + mulx rbp,rcx,r15 + adcx r11,rcx + adox r12,rbp + + mulx rbp,rcx,r8 + mov rdx,r15 + adcx r12,rcx + adox r13,rbp + adc r13,0 + + mulx r14,rcx,r8 + mov rdx,rax +DB 102,73,15,110,216 + xor r15,r15 + adcx r9,r9 + adox r13,rcx + adcx r10,r10 + adox r14,r15 + + + mulx rbp,r8,rdx +DB 102,72,15,126,202 + adcx r11,r11 + adox r9,rbp + adcx r12,r12 + mulx rax,rcx,rdx +DB 102,72,15,126,210 + adcx r13,r13 + adox r10,rcx + adcx r14,r14 + mulx rbp,rcx,rdx +DB 0x67 +DB 102,72,15,126,218 + adox r11,rax + adcx r15,r15 + adox r12,rcx + adox r13,rbp + mulx rax,rcx,rdx + adox r14,rcx + adox r15,rax + + + mov rdx,r8 + mulx rcx,rdx,QWORD[32+rsi] + + xor rax,rax + mulx rbp,rcx,QWORD[rsi] + adcx r8,rcx + adox r9,rbp + mulx rbp,rcx,QWORD[8+rsi] + adcx r9,rcx + adox r10,rbp + mulx rbp,rcx,QWORD[16+rsi] + adcx r10,rcx + adox r11,rbp + mulx rbp,rcx,QWORD[24+rsi] + adcx r11,rcx + adox r8,rbp + adcx r8,rax + + + mov rdx,r9 + mulx rcx,rdx,QWORD[32+rsi] + + mulx rbp,rcx,QWORD[rsi] + adox r9,rcx + adcx r10,rbp + mulx rbp,rcx,QWORD[8+rsi] + adox r10,rcx + adcx r11,rbp + mulx rbp,rcx,QWORD[16+rsi] + adox r11,rcx + adcx r8,rbp + mulx rbp,rcx,QWORD[24+rsi] + adox r8,rcx + adcx r9,rbp + adox r9,rax + + + mov rdx,r10 + mulx rcx,rdx,QWORD[32+rsi] + + mulx rbp,rcx,QWORD[rsi] + adcx r10,rcx + adox r11,rbp + mulx rbp,rcx,QWORD[8+rsi] + adcx r11,rcx + adox r8,rbp + mulx rbp,rcx,QWORD[16+rsi] + adcx r8,rcx + adox r9,rbp + mulx rbp,rcx,QWORD[24+rsi] + adcx r9,rcx + adox r10,rbp + adcx r10,rax + + + mov rdx,r11 + mulx rcx,rdx,QWORD[32+rsi] + + mulx rbp,rcx,QWORD[rsi] + adox r11,rcx + adcx r8,rbp + mulx rbp,rcx,QWORD[8+rsi] + adox r8,rcx + adcx r9,rbp + mulx rbp,rcx,QWORD[16+rsi] + adox r9,rcx + adcx r10,rbp + mulx rbp,rcx,QWORD[24+rsi] + adox r10,rcx + adcx r11,rbp + adox r11,rax + + + add r12,r8 + adc r9,r13 + mov rdx,r12 + adc r10,r14 + adc r11,r15 + mov r14,r9 + adc rax,0 + + + sub r12,QWORD[rsi] + mov r15,r10 + sbb r9,QWORD[8+rsi] + sbb r10,QWORD[16+rsi] + mov r8,r11 + sbb r11,QWORD[24+rsi] + sbb rax,0 + + cmovnc rdx,r12 + cmovnc r14,r9 + cmovnc r15,r10 + cmovnc r8,r11 + + dec rbx + jnz NEAR $L$oop_ord_sqrx + + mov QWORD[rdi],rdx + mov QWORD[8+rdi],r14 + pxor xmm1,xmm1 + mov QWORD[16+rdi],r15 + pxor xmm2,xmm2 + mov QWORD[24+rdi],r8 + pxor xmm3,xmm3 + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ord_sqrx_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ecp_nistz256_ord_sqr_montx: + + + + global ecp_nistz256_to_mont ALIGN 32 @@ -2808,15 +3983,23 @@ $L$SEH_begin_ecp_nistz256_mul_mont: mov rdx,r8 + mov ecx,0x80100 and ecx,DWORD[((OPENSSL_ia32cap_P+8))] $L$mul_mont: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + +$L$mul_body: cmp ecx,0x80100 je NEAR $L$mul_montx mov rbx,rdx @@ -2841,15 +4024,25 @@ $L$mul_montx: call __ecp_nistz256_mul_montx $L$mul_mont_done: - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$mul_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_mul_mont: @@ -3087,14 +4280,22 @@ $L$SEH_begin_ecp_nistz256_sqr_mont: mov rsi,rdx + mov ecx,0x80100 and ecx,DWORD[((OPENSSL_ia32cap_P+8))] push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + +$L$sqr_body: cmp ecx,0x80100 je NEAR $L$sqr_montx mov rax,QWORD[rsi] @@ -3115,15 +4316,25 @@ $L$sqr_montx: call __ecp_nistz256_sqr_montx $L$sqr_mont_done: - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$sqr_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_sqr_mont: @@ -3599,9 +4810,13 @@ $L$SEH_begin_ecp_nistz256_from_mont: mov rsi,rdx + push r12 + push r13 +$L$from_body: + mov rax,QWORD[rsi] mov r13,QWORD[(($L$poly+24))] mov r9,QWORD[8+rsi] @@ -3681,11 +4896,17 @@ $L$SEH_begin_ecp_nistz256_from_mont: mov QWORD[16+rdi],r10 mov QWORD[24+rdi],r11 - pop r13 - pop r12 + mov r13,QWORD[rsp] + + mov r12,QWORD[8+rsp] + + lea rsp,[16+rsp] + +$L$from_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_from_mont: @@ -3794,8 +5015,8 @@ $L$select_loop_sse_w5: movaps xmm14,XMMWORD[128+rsp] movaps xmm15,XMMWORD[144+rsp] lea rsp,[168+rsp] -$L$SEH_end_ecp_nistz256_gather_w5: DB 0F3h,0C3h ;repret +$L$SEH_end_ecp_nistz256_gather_w5: @@ -3889,8 +5110,8 @@ $L$select_loop_sse_w7: movaps xmm14,XMMWORD[128+rsp] movaps xmm15,XMMWORD[144+rsp] lea rsp,[168+rsp] -$L$SEH_end_ecp_nistz256_gather_w7: DB 0F3h,0C3h ;repret +$L$SEH_end_ecp_nistz256_gather_w7: @@ -3900,6 +5121,7 @@ ecp_nistz256_avx2_gather_w5: $L$avx2_gather_w5: vzeroupper lea rax,[((-136))+rsp] + mov r11,rsp $L$SEH_begin_ecp_nistz256_avx2_gather_w5: DB 0x48,0x8d,0x60,0xe0 DB 0xc5,0xf8,0x29,0x70,0xe0 @@ -3973,9 +5195,9 @@ $L$select_loop_avx2_w5: movaps xmm13,XMMWORD[112+rsp] movaps xmm14,XMMWORD[128+rsp] movaps xmm15,XMMWORD[144+rsp] - lea rsp,[168+rsp] -$L$SEH_end_ecp_nistz256_avx2_gather_w5: + lea rsp,[r11] DB 0F3h,0C3h ;repret +$L$SEH_end_ecp_nistz256_avx2_gather_w5: @@ -3986,6 +5208,7 @@ ALIGN 32 ecp_nistz256_avx2_gather_w7: $L$avx2_gather_w7: vzeroupper + mov r11,rsp lea rax,[((-136))+rsp] $L$SEH_begin_ecp_nistz256_avx2_gather_w7: DB 0x48,0x8d,0x60,0xe0 @@ -4075,9 +5298,9 @@ $L$select_loop_avx2_w7: movaps xmm13,XMMWORD[112+rsp] movaps xmm14,XMMWORD[128+rsp] movaps xmm15,XMMWORD[144+rsp] - lea rsp,[168+rsp] -$L$SEH_end_ecp_nistz256_avx2_gather_w7: + lea rsp,[r11] DB 0F3h,0C3h ;repret +$L$SEH_end_ecp_nistz256_avx2_gather_w7: ALIGN 32 @@ -4212,18 +5435,27 @@ $L$SEH_begin_ecp_nistz256_point_double: mov rsi,rdx + mov ecx,0x80100 and ecx,DWORD[((OPENSSL_ia32cap_P+8))] cmp ecx,0x80100 je NEAR $L$point_doublex push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp,32*5+8 +$L$point_doubleq_body: + $L$point_double_shortcutq: movdqu xmm0,XMMWORD[rsi] mov rbx,rsi @@ -4405,16 +5637,27 @@ DB 102,72,15,126,203 DB 102,72,15,126,207 call __ecp_nistz256_sub_fromq - add rsp,32*5+8 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + lea rsi,[((160+56))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbx,QWORD[((-16))+rsi] + + mov rbp,QWORD[((-8))+rsi] + + lea rsp,[rsi] + +$L$point_doubleq_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_point_double: global ecp_nistz256_point_add @@ -4429,18 +5672,27 @@ $L$SEH_begin_ecp_nistz256_point_add: mov rdx,r8 + mov ecx,0x80100 and ecx,DWORD[((OPENSSL_ia32cap_P+8))] cmp ecx,0x80100 je NEAR $L$point_addx push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp,32*18+8 +$L$point_addq_body: + movdqu xmm0,XMMWORD[rsi] movdqu xmm1,XMMWORD[16+rsi] movdqu xmm2,XMMWORD[32+rsi] @@ -4816,16 +6068,27 @@ DB 102,72,15,126,199 movdqu XMMWORD[48+rdi],xmm3 $L$add_doneq: - add rsp,32*18+8 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + lea rsi,[((576+56))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbx,QWORD[((-16))+rsi] + + mov rbp,QWORD[((-8))+rsi] + + lea rsp,[rsi] + +$L$point_addq_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_point_add: global ecp_nistz256_point_add_affine @@ -4840,18 +6103,27 @@ $L$SEH_begin_ecp_nistz256_point_add_affine: mov rdx,r8 + mov ecx,0x80100 and ecx,DWORD[((OPENSSL_ia32cap_P+8))] cmp ecx,0x80100 je NEAR $L$point_add_affinex push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp,32*15+8 +$L$add_affineq_body: + movdqu xmm0,XMMWORD[rsi] mov rbx,rdx movdqu xmm1,XMMWORD[16+rsi] @@ -5133,16 +6405,27 @@ DB 102,72,15,126,199 movdqu XMMWORD[32+rdi],xmm2 movdqu XMMWORD[48+rdi],xmm3 - add rsp,32*15+8 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + lea rsi,[((480+56))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbx,QWORD[((-16))+rsi] + + mov rbp,QWORD[((-8))+rsi] + + lea rsp,[rsi] + +$L$add_affineq_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_point_add_affine: ALIGN 32 @@ -5282,15 +6565,24 @@ $L$SEH_begin_ecp_nistz256_point_doublex: mov rsi,rdx + $L$point_doublex: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp,32*5+8 +$L$point_doublex_body: + $L$point_double_shortcutx: movdqu xmm0,XMMWORD[rsi] mov rbx,rsi @@ -5472,16 +6764,27 @@ DB 102,72,15,126,203 DB 102,72,15,126,207 call __ecp_nistz256_sub_fromx - add rsp,32*5+8 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + lea rsi,[((160+56))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbx,QWORD[((-16))+rsi] + + mov rbp,QWORD[((-8))+rsi] + + lea rsp,[rsi] + +$L$point_doublex_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_point_doublex: ALIGN 32 @@ -5495,15 +6798,24 @@ $L$SEH_begin_ecp_nistz256_point_addx: mov rdx,r8 + $L$point_addx: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp,32*18+8 +$L$point_addx_body: + movdqu xmm0,XMMWORD[rsi] movdqu xmm1,XMMWORD[16+rsi] movdqu xmm2,XMMWORD[32+rsi] @@ -5879,16 +7191,27 @@ DB 102,72,15,126,199 movdqu XMMWORD[48+rdi],xmm3 $L$add_donex: - add rsp,32*18+8 - pop r15 - pop r14 - pop r13 - pop r12 - pop rbx - pop rbp + lea rsi,[((576+56))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbx,QWORD[((-16))+rsi] + + mov rbp,QWORD[((-8))+rsi] + + lea rsp,[rsi] + +$L$point_addx_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_ecp_nistz256_point_addx: ALIGN 32 @@ -5902,15 +7225,24 @@ $L$SEH_begin_ecp_nistz256_point_add_affinex: mov rdx,r8 + $L$point_add_affinex: push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp,32*15+8 +$L$add_affinex_body: + movdqu xmm0,XMMWORD[rsi] mov rbx,rdx movdqu xmm1,XMMWORD[16+rsi] @@ -6192,14 +7524,375 @@ DB 102,72,15,126,199 movdqu XMMWORD[32+rdi],xmm2 movdqu XMMWORD[48+rdi],xmm3 - add rsp,32*15+8 + lea rsi,[((480+56))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbx,QWORD[((-16))+rsi] + + mov rbp,QWORD[((-8))+rsi] + + lea rsp,[rsi] + +$L$add_affinex_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ecp_nistz256_point_add_affinex: +EXTERN __imp_RtlVirtualUnwind + + +ALIGN 16 +short_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + lea rax,[16+rax] + + mov r12,QWORD[((-8))+rax] + mov r13,QWORD[((-16))+rax] + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + + jmp NEAR $L$common_seh_tail + + + +ALIGN 16 +full_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + mov r10d,DWORD[8+r11] + lea rax,[r10*1+rax] + + mov rbp,QWORD[((-8))+rax] + mov rbx,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq pop r15 pop r14 pop r13 pop r12 - pop rbx pop rbp - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] + pop rbx + pop rdi + pop rsi DB 0F3h,0C3h ;repret -$L$SEH_end_ecp_nistz256_point_add_affinex: + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ecp_nistz256_mul_by_2 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_mul_by_2 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_mul_by_2 wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_div_by_2 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_div_by_2 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_div_by_2 wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_mul_by_3 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_mul_by_3 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_mul_by_3 wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_add wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_add wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_add wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_sub wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_sub wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_sub wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_neg wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_neg wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_neg wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_ord_mul_mont wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_mul_mont wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_mul_mont wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_ord_sqr_mont wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_sqr_mont wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_sqr_mont wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_ord_mul_montx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_mul_montx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_mul_montx wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_ord_sqr_montx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_sqr_montx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_sqr_montx wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_to_mont wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_to_mont wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_to_mont wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_mul_mont wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_mul_mont wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_mul_mont wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_sqr_mont wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_sqr_mont wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_sqr_mont wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_from_mont wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_from_mont wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_from_mont wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_gather_w5 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_gather_w5 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_gather_wX wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_gather_w7 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_gather_w7 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_gather_wX wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_avx2_gather_w5 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_avx2_gather_w5 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_avx2_gather_wX wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_avx2_gather_w7 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_avx2_gather_w7 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_avx2_gather_wX wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_point_double wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_double wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_double wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add_affine wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add_affine wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add_affine wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_point_doublex wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_doublex wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_doublex wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_addx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_addx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_addx wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add_affinex wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add_affinex wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add_affinex wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ecp_nistz256_mul_by_2: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$mul_by_2_body wrt ..imagebase,$L$mul_by_2_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_div_by_2: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$div_by_2_body wrt ..imagebase,$L$div_by_2_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_mul_by_3: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$mul_by_3_body wrt ..imagebase,$L$mul_by_3_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_add: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$add_body wrt ..imagebase,$L$add_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_sub: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$sub_body wrt ..imagebase,$L$sub_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_neg: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$neg_body wrt ..imagebase,$L$neg_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_ord_mul_mont: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$ord_mul_body wrt ..imagebase,$L$ord_mul_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_ord_sqr_mont: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$ord_sqr_body wrt ..imagebase,$L$ord_sqr_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_ord_mul_montx: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$ord_mulx_body wrt ..imagebase,$L$ord_mulx_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_ord_sqr_montx: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$ord_sqrx_body wrt ..imagebase,$L$ord_sqrx_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_to_mont: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_mul_mont: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_sqr_mont: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$sqr_body wrt ..imagebase,$L$sqr_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_from_mont: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$from_body wrt ..imagebase,$L$from_epilogue wrt ..imagebase +$L$SEH_info_ecp_nistz256_gather_wX: +DB 0x01,0x33,0x16,0x00 +DB 0x33,0xf8,0x09,0x00 +DB 0x2e,0xe8,0x08,0x00 +DB 0x29,0xd8,0x07,0x00 +DB 0x24,0xc8,0x06,0x00 +DB 0x1f,0xb8,0x05,0x00 +DB 0x1a,0xa8,0x04,0x00 +DB 0x15,0x98,0x03,0x00 +DB 0x10,0x88,0x02,0x00 +DB 0x0c,0x78,0x01,0x00 +DB 0x08,0x68,0x00,0x00 +DB 0x04,0x01,0x15,0x00 +ALIGN 8 +$L$SEH_info_ecp_nistz256_avx2_gather_wX: +DB 0x01,0x36,0x17,0x0b +DB 0x36,0xf8,0x09,0x00 +DB 0x31,0xe8,0x08,0x00 +DB 0x2c,0xd8,0x07,0x00 +DB 0x27,0xc8,0x06,0x00 +DB 0x22,0xb8,0x05,0x00 +DB 0x1d,0xa8,0x04,0x00 +DB 0x18,0x98,0x03,0x00 +DB 0x13,0x88,0x02,0x00 +DB 0x0e,0x78,0x01,0x00 +DB 0x09,0x68,0x00,0x00 +DB 0x04,0x01,0x15,0x00 +DB 0x00,0xb3,0x00,0x00 +ALIGN 8 +$L$SEH_info_ecp_nistz256_point_double: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$point_doubleq_body wrt ..imagebase,$L$point_doubleq_epilogue wrt ..imagebase + DD 32*5+56,0 +$L$SEH_info_ecp_nistz256_point_add: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$point_addq_body wrt ..imagebase,$L$point_addq_epilogue wrt ..imagebase + DD 32*18+56,0 +$L$SEH_info_ecp_nistz256_point_add_affine: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$add_affineq_body wrt ..imagebase,$L$add_affineq_epilogue wrt ..imagebase + DD 32*15+56,0 +ALIGN 8 +$L$SEH_info_ecp_nistz256_point_doublex: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$point_doublex_body wrt ..imagebase,$L$point_doublex_epilogue wrt ..imagebase + DD 32*5+56,0 +$L$SEH_info_ecp_nistz256_point_addx: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$point_addx_body wrt ..imagebase,$L$point_addx_epilogue wrt ..imagebase + DD 32*18+56,0 +$L$SEH_info_ecp_nistz256_point_add_affinex: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$add_affinex_body wrt ..imagebase,$L$add_affinex_epilogue wrt ..imagebase + DD 32*15+56,0 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/x25519-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/x25519-x86_64.asm new file mode 100644 index 0000000000..84d55134ac --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/x25519-x86_64.asm @@ -0,0 +1,1054 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global x25519_fe51_mul + +ALIGN 32 +x25519_fe51_mul: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe51_mul: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-40))+rsp] + +$L$fe51_mul_body: + + mov rax,QWORD[rsi] + mov r11,QWORD[rdx] + mov r12,QWORD[8+rdx] + mov r13,QWORD[16+rdx] + mov rbp,QWORD[24+rdx] + mov r14,QWORD[32+rdx] + + mov QWORD[32+rsp],rdi + mov rdi,rax + mul r11 + mov QWORD[rsp],r11 + mov rbx,rax + mov rax,rdi + mov rcx,rdx + mul r12 + mov QWORD[8+rsp],r12 + mov r8,rax + mov rax,rdi + lea r15,[r14*8+r14] + mov r9,rdx + mul r13 + mov QWORD[16+rsp],r13 + mov r10,rax + mov rax,rdi + lea rdi,[r15*2+r14] + mov r11,rdx + mul rbp + mov r12,rax + mov rax,QWORD[rsi] + mov r13,rdx + mul r14 + mov r14,rax + mov rax,QWORD[8+rsi] + mov r15,rdx + + mul rdi + add rbx,rax + mov rax,QWORD[16+rsi] + adc rcx,rdx + mul rdi + add r8,rax + mov rax,QWORD[24+rsi] + adc r9,rdx + mul rdi + add r10,rax + mov rax,QWORD[32+rsi] + adc r11,rdx + mul rdi + imul rdi,rbp,19 + add r12,rax + mov rax,QWORD[8+rsi] + adc r13,rdx + mul rbp + mov rbp,QWORD[16+rsp] + add r14,rax + mov rax,QWORD[16+rsi] + adc r15,rdx + + mul rdi + add rbx,rax + mov rax,QWORD[24+rsi] + adc rcx,rdx + mul rdi + add r8,rax + mov rax,QWORD[32+rsi] + adc r9,rdx + mul rdi + imul rdi,rbp,19 + add r10,rax + mov rax,QWORD[8+rsi] + adc r11,rdx + mul rbp + add r12,rax + mov rax,QWORD[16+rsi] + adc r13,rdx + mul rbp + mov rbp,QWORD[8+rsp] + add r14,rax + mov rax,QWORD[24+rsi] + adc r15,rdx + + mul rdi + add rbx,rax + mov rax,QWORD[32+rsi] + adc rcx,rdx + mul rdi + add r8,rax + mov rax,QWORD[8+rsi] + adc r9,rdx + mul rbp + imul rdi,rbp,19 + add r10,rax + mov rax,QWORD[16+rsi] + adc r11,rdx + mul rbp + add r12,rax + mov rax,QWORD[24+rsi] + adc r13,rdx + mul rbp + mov rbp,QWORD[rsp] + add r14,rax + mov rax,QWORD[32+rsi] + adc r15,rdx + + mul rdi + add rbx,rax + mov rax,QWORD[8+rsi] + adc rcx,rdx + mul rbp + add r8,rax + mov rax,QWORD[16+rsi] + adc r9,rdx + mul rbp + add r10,rax + mov rax,QWORD[24+rsi] + adc r11,rdx + mul rbp + add r12,rax + mov rax,QWORD[32+rsi] + adc r13,rdx + mul rbp + add r14,rax + adc r15,rdx + + mov rdi,QWORD[32+rsp] + jmp NEAR $L$reduce51 +$L$fe51_mul_epilogue: + +$L$SEH_end_x25519_fe51_mul: + +global x25519_fe51_sqr + +ALIGN 32 +x25519_fe51_sqr: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe51_sqr: + mov rdi,rcx + mov rsi,rdx + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-40))+rsp] + +$L$fe51_sqr_body: + + mov rax,QWORD[rsi] + mov r15,QWORD[16+rsi] + mov rbp,QWORD[32+rsi] + + mov QWORD[32+rsp],rdi + lea r14,[rax*1+rax] + mul rax + mov rbx,rax + mov rax,QWORD[8+rsi] + mov rcx,rdx + mul r14 + mov r8,rax + mov rax,r15 + mov QWORD[rsp],r15 + mov r9,rdx + mul r14 + mov r10,rax + mov rax,QWORD[24+rsi] + mov r11,rdx + imul rdi,rbp,19 + mul r14 + mov r12,rax + mov rax,rbp + mov r13,rdx + mul r14 + mov r14,rax + mov rax,rbp + mov r15,rdx + + mul rdi + add r12,rax + mov rax,QWORD[8+rsi] + adc r13,rdx + + mov rsi,QWORD[24+rsi] + lea rbp,[rax*1+rax] + mul rax + add r10,rax + mov rax,QWORD[rsp] + adc r11,rdx + mul rbp + add r12,rax + mov rax,rbp + adc r13,rdx + mul rsi + add r14,rax + mov rax,rbp + adc r15,rdx + imul rbp,rsi,19 + mul rdi + add rbx,rax + lea rax,[rsi*1+rsi] + adc rcx,rdx + + mul rdi + add r10,rax + mov rax,rsi + adc r11,rdx + mul rbp + add r8,rax + mov rax,QWORD[rsp] + adc r9,rdx + + lea rsi,[rax*1+rax] + mul rax + add r14,rax + mov rax,rbp + adc r15,rdx + mul rsi + add rbx,rax + mov rax,rsi + adc rcx,rdx + mul rdi + add r8,rax + adc r9,rdx + + mov rdi,QWORD[32+rsp] + jmp NEAR $L$reduce51 + +ALIGN 32 +$L$reduce51: + mov rbp,0x7ffffffffffff + + mov rdx,r10 + shr r10,51 + shl r11,13 + and rdx,rbp + or r11,r10 + add r12,r11 + adc r13,0 + + mov rax,rbx + shr rbx,51 + shl rcx,13 + and rax,rbp + or rcx,rbx + add r8,rcx + adc r9,0 + + mov rbx,r12 + shr r12,51 + shl r13,13 + and rbx,rbp + or r13,r12 + add r14,r13 + adc r15,0 + + mov rcx,r8 + shr r8,51 + shl r9,13 + and rcx,rbp + or r9,r8 + add rdx,r9 + + mov r10,r14 + shr r14,51 + shl r15,13 + and r10,rbp + or r15,r14 + + lea r14,[r15*8+r15] + lea r15,[r14*2+r15] + add rax,r15 + + mov r8,rdx + and rdx,rbp + shr r8,51 + add rbx,r8 + + mov r9,rax + and rax,rbp + shr r9,51 + add rcx,r9 + + mov QWORD[rdi],rax + mov QWORD[8+rdi],rcx + mov QWORD[16+rdi],rdx + mov QWORD[24+rdi],rbx + mov QWORD[32+rdi],r10 + + mov r15,QWORD[40+rsp] + + mov r14,QWORD[48+rsp] + + mov r13,QWORD[56+rsp] + + mov r12,QWORD[64+rsp] + + mov rbx,QWORD[72+rsp] + + mov rbp,QWORD[80+rsp] + + lea rsp,[88+rsp] + +$L$fe51_sqr_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_x25519_fe51_sqr: + +global x25519_fe51_mul121666 + +ALIGN 32 +x25519_fe51_mul121666: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe51_mul121666: + mov rdi,rcx + mov rsi,rdx + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-40))+rsp] + +$L$fe51_mul121666_body: + mov eax,121666 + + mul QWORD[rsi] + mov rbx,rax + mov eax,121666 + mov rcx,rdx + mul QWORD[8+rsi] + mov r8,rax + mov eax,121666 + mov r9,rdx + mul QWORD[16+rsi] + mov r10,rax + mov eax,121666 + mov r11,rdx + mul QWORD[24+rsi] + mov r12,rax + mov eax,121666 + mov r13,rdx + mul QWORD[32+rsi] + mov r14,rax + mov r15,rdx + + jmp NEAR $L$reduce51 +$L$fe51_mul121666_epilogue: + +$L$SEH_end_x25519_fe51_mul121666: +EXTERN OPENSSL_ia32cap_P +global x25519_fe64_eligible + +ALIGN 32 +x25519_fe64_eligible: + mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] + xor eax,eax + and ecx,0x80100 + cmp ecx,0x80100 + cmove eax,ecx + DB 0F3h,0C3h ;repret + + +global x25519_fe64_mul + +ALIGN 32 +x25519_fe64_mul: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe64_mul: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + push rdi + + lea rsp,[((-16))+rsp] + +$L$fe64_mul_body: + + mov rax,rdx + mov rbp,QWORD[rdx] + mov rdx,QWORD[rsi] + mov rcx,QWORD[8+rax] + mov r14,QWORD[16+rax] + mov r15,QWORD[24+rax] + + mulx rax,r8,rbp + xor edi,edi + mulx rbx,r9,rcx + adcx r9,rax + mulx rax,r10,r14 + adcx r10,rbx + mulx r12,r11,r15 + mov rdx,QWORD[8+rsi] + adcx r11,rax + mov QWORD[rsp],r14 + adcx r12,rdi + + mulx rbx,rax,rbp + adox r9,rax + adcx r10,rbx + mulx rbx,rax,rcx + adox r10,rax + adcx r11,rbx + mulx rbx,rax,r14 + adox r11,rax + adcx r12,rbx + mulx r13,rax,r15 + mov rdx,QWORD[16+rsi] + adox r12,rax + adcx r13,rdi + adox r13,rdi + + mulx rbx,rax,rbp + adcx r10,rax + adox r11,rbx + mulx rbx,rax,rcx + adcx r11,rax + adox r12,rbx + mulx rbx,rax,r14 + adcx r12,rax + adox r13,rbx + mulx r14,rax,r15 + mov rdx,QWORD[24+rsi] + adcx r13,rax + adox r14,rdi + adcx r14,rdi + + mulx rbx,rax,rbp + adox r11,rax + adcx r12,rbx + mulx rbx,rax,rcx + adox r12,rax + adcx r13,rbx + mulx rbx,rax,QWORD[rsp] + adox r13,rax + adcx r14,rbx + mulx r15,rax,r15 + mov edx,38 + adox r14,rax + adcx r15,rdi + adox r15,rdi + + jmp NEAR $L$reduce64 +$L$fe64_mul_epilogue: + +$L$SEH_end_x25519_fe64_mul: + +global x25519_fe64_sqr + +ALIGN 32 +x25519_fe64_sqr: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe64_sqr: + mov rdi,rcx + mov rsi,rdx + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + push rdi + + lea rsp,[((-16))+rsp] + +$L$fe64_sqr_body: + + mov rdx,QWORD[rsi] + mov rcx,QWORD[8+rsi] + mov rbp,QWORD[16+rsi] + mov rsi,QWORD[24+rsi] + + + mulx r15,r8,rdx + mulx rax,r9,rcx + xor edi,edi + mulx rbx,r10,rbp + adcx r10,rax + mulx r12,r11,rsi + mov rdx,rcx + adcx r11,rbx + adcx r12,rdi + + + mulx rbx,rax,rbp + adox r11,rax + adcx r12,rbx + mulx r13,rax,rsi + mov rdx,rbp + adox r12,rax + adcx r13,rdi + + + mulx r14,rax,rsi + mov rdx,rcx + adox r13,rax + adcx r14,rdi + adox r14,rdi + + adcx r9,r9 + adox r9,r15 + adcx r10,r10 + mulx rbx,rax,rdx + mov rdx,rbp + adcx r11,r11 + adox r10,rax + adcx r12,r12 + adox r11,rbx + mulx rbx,rax,rdx + mov rdx,rsi + adcx r13,r13 + adox r12,rax + adcx r14,r14 + adox r13,rbx + mulx r15,rax,rdx + mov edx,38 + adox r14,rax + adcx r15,rdi + adox r15,rdi + jmp NEAR $L$reduce64 + +ALIGN 32 +$L$reduce64: + mulx rbx,rax,r12 + adcx r8,rax + adox r9,rbx + mulx rbx,rax,r13 + adcx r9,rax + adox r10,rbx + mulx rbx,rax,r14 + adcx r10,rax + adox r11,rbx + mulx r12,rax,r15 + adcx r11,rax + adox r12,rdi + adcx r12,rdi + + mov rdi,QWORD[16+rsp] + imul r12,rdx + + add r8,r12 + adc r9,0 + adc r10,0 + adc r11,0 + + sbb rax,rax + and rax,38 + + add r8,rax + mov QWORD[8+rdi],r9 + mov QWORD[16+rdi],r10 + mov QWORD[24+rdi],r11 + mov QWORD[rdi],r8 + + mov r15,QWORD[24+rsp] + + mov r14,QWORD[32+rsp] + + mov r13,QWORD[40+rsp] + + mov r12,QWORD[48+rsp] + + mov rbx,QWORD[56+rsp] + + mov rbp,QWORD[64+rsp] + + lea rsp,[72+rsp] + +$L$fe64_sqr_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_x25519_fe64_sqr: + +global x25519_fe64_mul121666 + +ALIGN 32 +x25519_fe64_mul121666: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe64_mul121666: + mov rdi,rcx + mov rsi,rdx + + +$L$fe64_mul121666_body: + mov edx,121666 + mulx rcx,r8,QWORD[rsi] + mulx rax,r9,QWORD[8+rsi] + add r9,rcx + mulx rcx,r10,QWORD[16+rsi] + adc r10,rax + mulx rax,r11,QWORD[24+rsi] + adc r11,rcx + adc rax,0 + + imul rax,rax,38 + + add r8,rax + adc r9,0 + adc r10,0 + adc r11,0 + + sbb rax,rax + and rax,38 + + add r8,rax + mov QWORD[8+rdi],r9 + mov QWORD[16+rdi],r10 + mov QWORD[24+rdi],r11 + mov QWORD[rdi],r8 + +$L$fe64_mul121666_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_x25519_fe64_mul121666: + +global x25519_fe64_add + +ALIGN 32 +x25519_fe64_add: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe64_add: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + +$L$fe64_add_body: + mov r8,QWORD[rsi] + mov r9,QWORD[8+rsi] + mov r10,QWORD[16+rsi] + mov r11,QWORD[24+rsi] + + add r8,QWORD[rdx] + adc r9,QWORD[8+rdx] + adc r10,QWORD[16+rdx] + adc r11,QWORD[24+rdx] + + sbb rax,rax + and rax,38 + + add r8,rax + adc r9,0 + adc r10,0 + mov QWORD[8+rdi],r9 + adc r11,0 + mov QWORD[16+rdi],r10 + sbb rax,rax + mov QWORD[24+rdi],r11 + and rax,38 + + add r8,rax + mov QWORD[rdi],r8 + +$L$fe64_add_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_x25519_fe64_add: + +global x25519_fe64_sub + +ALIGN 32 +x25519_fe64_sub: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe64_sub: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + +$L$fe64_sub_body: + mov r8,QWORD[rsi] + mov r9,QWORD[8+rsi] + mov r10,QWORD[16+rsi] + mov r11,QWORD[24+rsi] + + sub r8,QWORD[rdx] + sbb r9,QWORD[8+rdx] + sbb r10,QWORD[16+rdx] + sbb r11,QWORD[24+rdx] + + sbb rax,rax + and rax,38 + + sub r8,rax + sbb r9,0 + sbb r10,0 + mov QWORD[8+rdi],r9 + sbb r11,0 + mov QWORD[16+rdi],r10 + sbb rax,rax + mov QWORD[24+rdi],r11 + and rax,38 + + sub r8,rax + mov QWORD[rdi],r8 + +$L$fe64_sub_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_x25519_fe64_sub: + +global x25519_fe64_tobytes + +ALIGN 32 +x25519_fe64_tobytes: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_x25519_fe64_tobytes: + mov rdi,rcx + mov rsi,rdx + + +$L$fe64_to_body: + mov r8,QWORD[rsi] + mov r9,QWORD[8+rsi] + mov r10,QWORD[16+rsi] + mov r11,QWORD[24+rsi] + + + lea rax,[r11*1+r11] + sar r11,63 + shr rax,1 + and r11,19 + add r11,19 + + add r8,r11 + adc r9,0 + adc r10,0 + adc rax,0 + + lea r11,[rax*1+rax] + sar rax,63 + shr r11,1 + not rax + and rax,19 + + sub r8,rax + sbb r9,0 + sbb r10,0 + sbb r11,0 + + mov QWORD[rdi],r8 + mov QWORD[8+rdi],r9 + mov QWORD[16+rdi],r10 + mov QWORD[24+rdi],r11 + +$L$fe64_to_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_x25519_fe64_tobytes: +DB 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101 +DB 115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 +DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 +DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +EXTERN __imp_RtlVirtualUnwind + + +ALIGN 16 +short_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + jmp NEAR $L$common_seh_tail + + + +ALIGN 16 +full_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + mov r10d,DWORD[8+r11] + lea rax,[r10*1+rax] + + mov rbp,QWORD[((-8))+rax] + mov rbx,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_x25519_fe51_mul wrt ..imagebase + DD $L$SEH_end_x25519_fe51_mul wrt ..imagebase + DD $L$SEH_info_x25519_fe51_mul wrt ..imagebase + + DD $L$SEH_begin_x25519_fe51_sqr wrt ..imagebase + DD $L$SEH_end_x25519_fe51_sqr wrt ..imagebase + DD $L$SEH_info_x25519_fe51_sqr wrt ..imagebase + + DD $L$SEH_begin_x25519_fe51_mul121666 wrt ..imagebase + DD $L$SEH_end_x25519_fe51_mul121666 wrt ..imagebase + DD $L$SEH_info_x25519_fe51_mul121666 wrt ..imagebase + DD $L$SEH_begin_x25519_fe64_mul wrt ..imagebase + DD $L$SEH_end_x25519_fe64_mul wrt ..imagebase + DD $L$SEH_info_x25519_fe64_mul wrt ..imagebase + + DD $L$SEH_begin_x25519_fe64_sqr wrt ..imagebase + DD $L$SEH_end_x25519_fe64_sqr wrt ..imagebase + DD $L$SEH_info_x25519_fe64_sqr wrt ..imagebase + + DD $L$SEH_begin_x25519_fe64_mul121666 wrt ..imagebase + DD $L$SEH_end_x25519_fe64_mul121666 wrt ..imagebase + DD $L$SEH_info_x25519_fe64_mul121666 wrt ..imagebase + + DD $L$SEH_begin_x25519_fe64_add wrt ..imagebase + DD $L$SEH_end_x25519_fe64_add wrt ..imagebase + DD $L$SEH_info_x25519_fe64_add wrt ..imagebase + + DD $L$SEH_begin_x25519_fe64_sub wrt ..imagebase + DD $L$SEH_end_x25519_fe64_sub wrt ..imagebase + DD $L$SEH_info_x25519_fe64_sub wrt ..imagebase + + DD $L$SEH_begin_x25519_fe64_tobytes wrt ..imagebase + DD $L$SEH_end_x25519_fe64_tobytes wrt ..imagebase + DD $L$SEH_info_x25519_fe64_tobytes wrt ..imagebase +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_x25519_fe51_mul: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$fe51_mul_body wrt ..imagebase,$L$fe51_mul_epilogue wrt ..imagebase + DD 88,0 +$L$SEH_info_x25519_fe51_sqr: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$fe51_sqr_body wrt ..imagebase,$L$fe51_sqr_epilogue wrt ..imagebase + DD 88,0 +$L$SEH_info_x25519_fe51_mul121666: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$fe51_mul121666_body wrt ..imagebase,$L$fe51_mul121666_epilogue wrt ..imagebase + DD 88,0 +$L$SEH_info_x25519_fe64_mul: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$fe64_mul_body wrt ..imagebase,$L$fe64_mul_epilogue wrt ..imagebase + DD 72,0 +$L$SEH_info_x25519_fe64_sqr: +DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$fe64_sqr_body wrt ..imagebase,$L$fe64_sqr_epilogue wrt ..imagebase + DD 72,0 +$L$SEH_info_x25519_fe64_mul121666: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$fe64_mul121666_body wrt ..imagebase,$L$fe64_mul121666_epilogue wrt ..imagebase +$L$SEH_info_x25519_fe64_add: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$fe64_add_body wrt ..imagebase,$L$fe64_add_epilogue wrt ..imagebase +$L$SEH_info_x25519_fe64_sub: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$fe64_sub_body wrt ..imagebase,$L$fe64_sub_epilogue wrt ..imagebase +$L$SEH_info_x25519_fe64_tobytes: +DB 9,0,0,0 + DD short_handler wrt ..imagebase + DD $L$fe64_to_body wrt ..imagebase,$L$fe64_to_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h index 289768d956..dc8306eda3 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,5 +12,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H +# define DSO_WIN32 # define DSO_EXTENSION ".dll" + #endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm index 8bb2cfb77f..3fd339153b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm @@ -18,11 +18,17 @@ $L$SEH_begin_md5_block_asm_data_order: mov rdx,r8 + push rbp + push rbx + push r12 + push r14 + push r15 + $L$prologue: @@ -669,15 +675,22 @@ $L$end: mov DWORD[12+rbp],edx mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r12,QWORD[16+rsp] + mov rbx,QWORD[24+rsp] + mov rbp,QWORD[32+rsp] + add rsp,40 + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_md5_block_asm_data_order: EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm index 741a9e4f3a..b1d8332457 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm @@ -36,23 +36,6 @@ $L$resume_ctr32: vpxor xmm12,xmm12,xmm15 vmovups xmm2,XMMWORD[((16-128))+rcx] vpclmulqdq xmm6,xmm7,xmm3,0x01 - - - - - - - - - - - - - - - - - xor r12,r12 cmp r15,r14 @@ -349,20 +332,25 @@ $L$SEH_begin_aesni_gcm_decrypt: mov r9,QWORD[48+rsp] - xor r10,r10 - - + xor r10,r10 cmp rdx,0x60 jb NEAR $L$gcm_dec_abort lea rax,[rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[(-216)+rax],xmm6 movaps XMMWORD[(-200)+rax],xmm7 @@ -403,15 +391,7 @@ $L$dec_no_key_aliasing: vmovdqu xmm7,XMMWORD[80+rdi] lea r14,[rdi] vmovdqu xmm4,XMMWORD[64+rdi] - - - - - - - lea r15,[((-192))+rdx*1+rdi] - vmovdqu xmm5,XMMWORD[48+rdi] shr rdx,4 xor r10,r10 @@ -454,17 +434,25 @@ $L$dec_no_key_aliasing: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$gcm_dec_abort: mov rax,r10 mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_gcm_decrypt: ALIGN 32 @@ -573,21 +561,25 @@ $L$SEH_begin_aesni_gcm_encrypt: mov r9,QWORD[48+rsp] - xor r10,r10 - - - + xor r10,r10 cmp rdx,0x60*3 jb NEAR $L$gcm_enc_abort lea rax,[rsp] + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[(-216)+rax],xmm6 movaps XMMWORD[(-200)+rax],xmm7 @@ -623,16 +615,7 @@ $L$gcm_enc_body: $L$enc_no_key_aliasing: lea r14,[rsi] - - - - - - - - lea r15,[((-192))+rdx*1+rsi] - shr rdx,4 call _aesni_ctr32_6x @@ -844,17 +827,25 @@ $L$enc_no_key_aliasing: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$gcm_enc_abort: mov rax,r10 mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_aesni_gcm_encrypt: ALIGN 64 $L$bswap_mask: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm index e5204bf81d..b227e2400e 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm @@ -18,9 +18,21 @@ $L$SEH_begin_gcm_gmult_4bit: mov rsi,rdx + push rbx + push rbp + push r12 + + push r13 + + push r14 + + push r15 + + sub rsp,280 + $L$gmult_prologue: movzx r8,BYTE[15+rdi] @@ -97,12 +109,17 @@ $L$break1: mov QWORD[8+rdi],r8 mov QWORD[rdi],r9 - mov rbx,QWORD[16+rsp] - lea rsp,[24+rsp] + lea rsi,[((280+48))+rsp] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$gmult_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_gcm_gmult_4bit: global gcm_ghash_4bit @@ -118,13 +135,21 @@ $L$SEH_begin_gcm_ghash_4bit: mov rcx,r9 + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,280 + $L$ghash_prologue: mov r14,rdx mov r15,rcx @@ -669,18 +694,27 @@ $L$outer_loop: mov QWORD[8+rdi],r8 mov QWORD[rdi],r9 - lea rsi,[280+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + lea rsi,[((280+48))+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$ghash_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_gcm_ghash_4bit: global gcm_init_clmul @@ -1916,14 +1950,20 @@ se_handler: cmp rbx,r10 jae NEAR $L$in_prologue - lea rax,[24+rax] + lea rax,[((48+280))+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] mov QWORD[144+r8],rbx mov QWORD[160+r8],rbp mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 $L$in_prologue: mov rdi,QWORD[8+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm index 15fde3cba6..5717654508 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm @@ -45,6 +45,11 @@ $L$SEH_begin_poly1305_init: lea rax,[poly1305_blocks_avx2] bt r9,37 cmovc r10,rax + mov rax,2149646336 + shr r9,32 + and r9,rax + cmp r9,rax + je NEAR $L$init_base2_44 mov rax,0x0ffffffc0fffffff mov rcx,0x0ffffffc0ffffffc and rax,QWORD[rsi] @@ -73,16 +78,23 @@ $L$SEH_begin_poly1305_blocks: mov rcx,r9 + $L$blocks: shr rdx,4 jz NEAR $L$no_data push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$blocks_body: mov r15,rdx @@ -153,17 +165,25 @@ $L$oop: mov QWORD[16+rdi],rbp mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov r12,QWORD[24+rsp] + mov rbp,QWORD[32+rsp] + mov rbx,QWORD[40+rsp] + lea rsp,[48+rsp] + $L$no_data: $L$blocks_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_poly1305_blocks: @@ -420,6 +440,7 @@ $L$SEH_begin_poly1305_blocks_avx: mov rcx,r9 + mov r8d,DWORD[20+rdi] cmp rdx,128 jae NEAR $L$blocks_avx @@ -439,11 +460,17 @@ $L$blocks_avx: jz NEAR $L$even_avx push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$blocks_avx_body: mov r15,rdx @@ -546,26 +573,41 @@ $L$store_base2_26_avx: ALIGN 16 $L$done_avx: mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov r12,QWORD[24+rsp] + mov rbp,QWORD[32+rsp] + mov rbx,QWORD[40+rsp] + lea rsp,[48+rsp] + $L$no_data_avx: $L$blocks_avx_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + ALIGN 32 $L$base2_64_avx: + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$base2_64_avx_body: mov r15,rdx @@ -625,18 +667,27 @@ $L$proceed_avx: mov rdx,r15 mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov r12,QWORD[24+rsp] + mov rbp,QWORD[32+rsp] + mov rbx,QWORD[40+rsp] + lea rax,[48+rsp] lea rsp,[48+rsp] + $L$base2_64_avx_epilogue: jmp NEAR $L$do_avx + ALIGN 32 $L$even_avx: + vmovd xmm0,DWORD[rdi] vmovd xmm1,DWORD[4+rdi] vmovd xmm2,DWORD[8+rdi] @@ -1230,6 +1281,7 @@ $L$do_avx_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_poly1305_blocks_avx: @@ -1310,6 +1362,7 @@ $L$SEH_begin_poly1305_blocks_avx2: mov rcx,r9 + mov r8d,DWORD[20+rdi] cmp rdx,128 jae NEAR $L$blocks_avx2 @@ -1329,11 +1382,17 @@ $L$blocks_avx2: jz NEAR $L$even_avx2 push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$blocks_avx2_body: mov r15,rdx @@ -1442,26 +1501,41 @@ $L$store_base2_26_avx2: ALIGN 16 $L$done_avx2: mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov r12,QWORD[24+rsp] + mov rbp,QWORD[32+rsp] + mov rbx,QWORD[40+rsp] + lea rsp,[48+rsp] + $L$no_data_avx2: $L$blocks_avx2_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + ALIGN 32 $L$base2_64_avx2: + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + $L$base2_64_avx2_body: mov r15,rdx @@ -1524,20 +1598,32 @@ $L$init_avx2: $L$proceed_avx2: mov rdx,r15 + mov r10d,DWORD[((OPENSSL_ia32cap_P+8))] + mov r11d,3221291008 mov r15,QWORD[rsp] + mov r14,QWORD[8+rsp] + mov r13,QWORD[16+rsp] + mov r12,QWORD[24+rsp] + mov rbp,QWORD[32+rsp] + mov rbx,QWORD[40+rsp] + lea rax,[48+rsp] lea rsp,[48+rsp] + $L$base2_64_avx2_epilogue: jmp NEAR $L$do_avx2 + ALIGN 32 $L$even_avx2: + + mov r10d,DWORD[((OPENSSL_ia32cap_P+8))] vmovd xmm0,DWORD[rdi] vmovd xmm1,DWORD[4+rdi] vmovd xmm2,DWORD[8+rdi] @@ -1545,6 +1631,12 @@ $L$even_avx2: vmovd xmm4,DWORD[16+rdi] $L$do_avx2: + cmp rdx,512 + jb NEAR $L$skip_avx512 + and r10d,r11d + test r10d,65536 + jnz NEAR $L$blocks_avx512 +$L$skip_avx512: lea r11,[((-248))+rsp] sub rsp,0x1c8 vmovdqa XMMWORD[80+r11],xmm6 @@ -1558,8 +1650,9 @@ $L$do_avx2: vmovdqa XMMWORD[208+r11],xmm14 vmovdqa XMMWORD[224+r11],xmm15 $L$do_avx2_body: - lea rdi,[((48+64))+rdi] lea rcx,[$L$const] + lea rdi,[((48+64))+rdi] + vmovdqa ymm7,YMMWORD[96+rcx] vmovdqu xmm9,XMMWORD[((-64))+rdi] @@ -1569,36 +1662,28 @@ $L$do_avx2_body: vmovdqu xmm11,XMMWORD[((-16))+rdi] vmovdqu xmm12,XMMWORD[rdi] vmovdqu xmm13,XMMWORD[16+rdi] + lea rax,[144+rsp] vmovdqu xmm14,XMMWORD[32+rdi] - vpermq ymm9,ymm9,0x15 + vpermd ymm9,ymm7,ymm9 vmovdqu xmm15,XMMWORD[48+rdi] - vpermq ymm10,ymm10,0x15 - vpshufd ymm9,ymm9,0xc8 + vpermd ymm10,ymm7,ymm10 vmovdqu xmm5,XMMWORD[64+rdi] - vpermq ymm6,ymm6,0x15 - vpshufd ymm10,ymm10,0xc8 + vpermd ymm6,ymm7,ymm6 vmovdqa YMMWORD[rsp],ymm9 - vpermq ymm11,ymm11,0x15 - vpshufd ymm6,ymm6,0xc8 - vmovdqa YMMWORD[32+rsp],ymm10 - vpermq ymm12,ymm12,0x15 - vpshufd ymm11,ymm11,0xc8 - vmovdqa YMMWORD[64+rsp],ymm6 - vpermq ymm13,ymm13,0x15 - vpshufd ymm12,ymm12,0xc8 - vmovdqa YMMWORD[96+rsp],ymm11 - vpermq ymm14,ymm14,0x15 - vpshufd ymm13,ymm13,0xc8 - vmovdqa YMMWORD[128+rsp],ymm12 - vpermq ymm15,ymm15,0x15 - vpshufd ymm14,ymm14,0xc8 - vmovdqa YMMWORD[160+rsp],ymm13 - vpermq ymm5,ymm5,0x15 - vpshufd ymm15,ymm15,0xc8 - vmovdqa YMMWORD[192+rsp],ymm14 - vpshufd ymm5,ymm5,0xc8 - vmovdqa YMMWORD[224+rsp],ymm15 - vmovdqa YMMWORD[256+rsp],ymm5 + vpermd ymm11,ymm7,ymm11 + vmovdqa YMMWORD[(32-144)+rax],ymm10 + vpermd ymm12,ymm7,ymm12 + vmovdqa YMMWORD[(64-144)+rax],ymm6 + vpermd ymm13,ymm7,ymm13 + vmovdqa YMMWORD[(96-144)+rax],ymm11 + vpermd ymm14,ymm7,ymm14 + vmovdqa YMMWORD[(128-144)+rax],ymm12 + vpermd ymm15,ymm7,ymm15 + vmovdqa YMMWORD[(160-144)+rax],ymm13 + vpermd ymm5,ymm7,ymm5 + vmovdqa YMMWORD[(192-144)+rax],ymm14 + vmovdqa YMMWORD[(224-144)+rax],ymm15 + vmovdqa YMMWORD[(256-144)+rax],ymm5 vmovdqa ymm5,YMMWORD[64+rcx] @@ -1625,7 +1710,6 @@ $L$do_avx2_body: vpand ymm10,ymm10,ymm5 vpor ymm6,ymm6,YMMWORD[32+rcx] - lea rax,[144+rsp] vpaddq ymm2,ymm9,ymm2 sub rdx,64 jz NEAR $L$tail_avx2 @@ -1935,7 +2019,1593 @@ $L$do_avx2_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_poly1305_blocks_avx2: + +ALIGN 32 +poly1305_blocks_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_poly1305_blocks_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + +$L$blocks_avx512: + mov eax,15 + kmovw k2,eax + lea r11,[((-248))+rsp] + sub rsp,0x1c8 + vmovdqa XMMWORD[80+r11],xmm6 + vmovdqa XMMWORD[96+r11],xmm7 + vmovdqa XMMWORD[112+r11],xmm8 + vmovdqa XMMWORD[128+r11],xmm9 + vmovdqa XMMWORD[144+r11],xmm10 + vmovdqa XMMWORD[160+r11],xmm11 + vmovdqa XMMWORD[176+r11],xmm12 + vmovdqa XMMWORD[192+r11],xmm13 + vmovdqa XMMWORD[208+r11],xmm14 + vmovdqa XMMWORD[224+r11],xmm15 +$L$do_avx512_body: + lea rcx,[$L$const] + lea rdi,[((48+64))+rdi] + vmovdqa ymm9,YMMWORD[96+rcx] + + + vmovdqu xmm11,XMMWORD[((-64))+rdi] + and rsp,-512 + vmovdqu xmm12,XMMWORD[((-48))+rdi] + mov rax,0x20 + vmovdqu xmm7,XMMWORD[((-32))+rdi] + vmovdqu xmm13,XMMWORD[((-16))+rdi] + vmovdqu xmm8,XMMWORD[rdi] + vmovdqu xmm14,XMMWORD[16+rdi] + vmovdqu xmm10,XMMWORD[32+rdi] + vmovdqu xmm15,XMMWORD[48+rdi] + vmovdqu xmm6,XMMWORD[64+rdi] + vpermd zmm16,zmm9,zmm11 + vpbroadcastq zmm5,QWORD[64+rcx] + vpermd zmm17,zmm9,zmm12 + vpermd zmm21,zmm9,zmm7 + vpermd zmm18,zmm9,zmm13 + vmovdqa64 ZMMWORD[rsp]{k2},zmm16 + vpsrlq zmm7,zmm16,32 + vpermd zmm22,zmm9,zmm8 + vmovdqu64 ZMMWORD[rax*1+rsp]{k2},zmm17 + vpsrlq zmm8,zmm17,32 + vpermd zmm19,zmm9,zmm14 + vmovdqa64 ZMMWORD[64+rsp]{k2},zmm21 + vpermd zmm23,zmm9,zmm10 + vpermd zmm20,zmm9,zmm15 + vmovdqu64 ZMMWORD[64+rax*1+rsp]{k2},zmm18 + vpermd zmm24,zmm9,zmm6 + vmovdqa64 ZMMWORD[128+rsp]{k2},zmm22 + vmovdqu64 ZMMWORD[128+rax*1+rsp]{k2},zmm19 + vmovdqa64 ZMMWORD[192+rsp]{k2},zmm23 + vmovdqu64 ZMMWORD[192+rax*1+rsp]{k2},zmm20 + vmovdqa64 ZMMWORD[256+rsp]{k2},zmm24 + + + + + + + + + + + vpmuludq zmm11,zmm16,zmm7 + vpmuludq zmm12,zmm17,zmm7 + vpmuludq zmm13,zmm18,zmm7 + vpmuludq zmm14,zmm19,zmm7 + vpmuludq zmm15,zmm20,zmm7 + vpsrlq zmm9,zmm18,32 + + vpmuludq zmm25,zmm24,zmm8 + vpmuludq zmm26,zmm16,zmm8 + vpmuludq zmm27,zmm17,zmm8 + vpmuludq zmm28,zmm18,zmm8 + vpmuludq zmm29,zmm19,zmm8 + vpsrlq zmm10,zmm19,32 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + + vpmuludq zmm25,zmm23,zmm9 + vpmuludq zmm26,zmm24,zmm9 + vpmuludq zmm28,zmm17,zmm9 + vpmuludq zmm29,zmm18,zmm9 + vpmuludq zmm27,zmm16,zmm9 + vpsrlq zmm6,zmm20,32 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm13,zmm13,zmm27 + + vpmuludq zmm25,zmm22,zmm10 + vpmuludq zmm28,zmm16,zmm10 + vpmuludq zmm29,zmm17,zmm10 + vpmuludq zmm26,zmm23,zmm10 + vpmuludq zmm27,zmm24,zmm10 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + + vpmuludq zmm28,zmm24,zmm6 + vpmuludq zmm29,zmm16,zmm6 + vpmuludq zmm25,zmm21,zmm6 + vpmuludq zmm26,zmm22,zmm6 + vpmuludq zmm27,zmm23,zmm6 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + + + + vmovdqu64 zmm10,ZMMWORD[rsi] + vmovdqu64 zmm6,ZMMWORD[64+rsi] + lea rsi,[128+rsi] + + + + + vpsrlq zmm28,zmm14,26 + vpandq zmm14,zmm14,zmm5 + vpaddq zmm15,zmm15,zmm28 + + vpsrlq zmm25,zmm11,26 + vpandq zmm11,zmm11,zmm5 + vpaddq zmm12,zmm12,zmm25 + + vpsrlq zmm29,zmm15,26 + vpandq zmm15,zmm15,zmm5 + + vpsrlq zmm26,zmm12,26 + vpandq zmm12,zmm12,zmm5 + vpaddq zmm13,zmm13,zmm26 + + vpaddq zmm11,zmm11,zmm29 + vpsllq zmm29,zmm29,2 + vpaddq zmm11,zmm11,zmm29 + + vpsrlq zmm27,zmm13,26 + vpandq zmm13,zmm13,zmm5 + vpaddq zmm14,zmm14,zmm27 + + vpsrlq zmm25,zmm11,26 + vpandq zmm11,zmm11,zmm5 + vpaddq zmm12,zmm12,zmm25 + + vpsrlq zmm28,zmm14,26 + vpandq zmm14,zmm14,zmm5 + vpaddq zmm15,zmm15,zmm28 + + + + + + vpunpcklqdq zmm7,zmm10,zmm6 + vpunpckhqdq zmm6,zmm10,zmm6 + + + + + + + vmovdqa32 zmm25,ZMMWORD[128+rcx] + mov eax,0x7777 + kmovw k1,eax + + vpermd zmm16,zmm25,zmm16 + vpermd zmm17,zmm25,zmm17 + vpermd zmm18,zmm25,zmm18 + vpermd zmm19,zmm25,zmm19 + vpermd zmm20,zmm25,zmm20 + + vpermd zmm16{k1},zmm25,zmm11 + vpermd zmm17{k1},zmm25,zmm12 + vpermd zmm18{k1},zmm25,zmm13 + vpermd zmm19{k1},zmm25,zmm14 + vpermd zmm20{k1},zmm25,zmm15 + + vpslld zmm21,zmm17,2 + vpslld zmm22,zmm18,2 + vpslld zmm23,zmm19,2 + vpslld zmm24,zmm20,2 + vpaddd zmm21,zmm21,zmm17 + vpaddd zmm22,zmm22,zmm18 + vpaddd zmm23,zmm23,zmm19 + vpaddd zmm24,zmm24,zmm20 + + vpbroadcastq zmm30,QWORD[32+rcx] + + vpsrlq zmm9,zmm7,52 + vpsllq zmm10,zmm6,12 + vporq zmm9,zmm9,zmm10 + vpsrlq zmm8,zmm7,26 + vpsrlq zmm10,zmm6,14 + vpsrlq zmm6,zmm6,40 + vpandq zmm9,zmm9,zmm5 + vpandq zmm7,zmm7,zmm5 + + + + + vpaddq zmm2,zmm9,zmm2 + sub rdx,192 + jbe NEAR $L$tail_avx512 + jmp NEAR $L$oop_avx512 + +ALIGN 32 +$L$oop_avx512: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vpmuludq zmm14,zmm17,zmm2 + vpaddq zmm0,zmm7,zmm0 + vpmuludq zmm15,zmm18,zmm2 + vpandq zmm8,zmm8,zmm5 + vpmuludq zmm11,zmm23,zmm2 + vpandq zmm10,zmm10,zmm5 + vpmuludq zmm12,zmm24,zmm2 + vporq zmm6,zmm6,zmm30 + vpmuludq zmm13,zmm16,zmm2 + vpaddq zmm1,zmm8,zmm1 + vpaddq zmm3,zmm10,zmm3 + vpaddq zmm4,zmm6,zmm4 + + vmovdqu64 zmm10,ZMMWORD[rsi] + vmovdqu64 zmm6,ZMMWORD[64+rsi] + lea rsi,[128+rsi] + vpmuludq zmm28,zmm19,zmm0 + vpmuludq zmm29,zmm20,zmm0 + vpmuludq zmm25,zmm16,zmm0 + vpmuludq zmm26,zmm17,zmm0 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + + vpmuludq zmm28,zmm18,zmm1 + vpmuludq zmm29,zmm19,zmm1 + vpmuludq zmm25,zmm24,zmm1 + vpmuludq zmm27,zmm18,zmm0 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm13,zmm13,zmm27 + + vpunpcklqdq zmm7,zmm10,zmm6 + vpunpckhqdq zmm6,zmm10,zmm6 + + vpmuludq zmm28,zmm16,zmm3 + vpmuludq zmm29,zmm17,zmm3 + vpmuludq zmm26,zmm16,zmm1 + vpmuludq zmm27,zmm17,zmm1 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + + vpmuludq zmm28,zmm24,zmm4 + vpmuludq zmm29,zmm16,zmm4 + vpmuludq zmm25,zmm22,zmm3 + vpmuludq zmm26,zmm23,zmm3 + vpaddq zmm14,zmm14,zmm28 + vpmuludq zmm27,zmm24,zmm3 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + + vpmuludq zmm25,zmm21,zmm4 + vpmuludq zmm26,zmm22,zmm4 + vpmuludq zmm27,zmm23,zmm4 + vpaddq zmm0,zmm11,zmm25 + vpaddq zmm1,zmm12,zmm26 + vpaddq zmm2,zmm13,zmm27 + + + + + vpsrlq zmm9,zmm7,52 + vpsllq zmm10,zmm6,12 + + vpsrlq zmm3,zmm14,26 + vpandq zmm14,zmm14,zmm5 + vpaddq zmm4,zmm15,zmm3 + + vporq zmm9,zmm9,zmm10 + + vpsrlq zmm11,zmm0,26 + vpandq zmm0,zmm0,zmm5 + vpaddq zmm1,zmm1,zmm11 + + vpandq zmm9,zmm9,zmm5 + + vpsrlq zmm15,zmm4,26 + vpandq zmm4,zmm4,zmm5 + + vpsrlq zmm12,zmm1,26 + vpandq zmm1,zmm1,zmm5 + vpaddq zmm2,zmm2,zmm12 + + vpaddq zmm0,zmm0,zmm15 + vpsllq zmm15,zmm15,2 + vpaddq zmm0,zmm0,zmm15 + + vpaddq zmm2,zmm2,zmm9 + vpsrlq zmm8,zmm7,26 + + vpsrlq zmm13,zmm2,26 + vpandq zmm2,zmm2,zmm5 + vpaddq zmm3,zmm14,zmm13 + + vpsrlq zmm10,zmm6,14 + + vpsrlq zmm11,zmm0,26 + vpandq zmm0,zmm0,zmm5 + vpaddq zmm1,zmm1,zmm11 + + vpsrlq zmm6,zmm6,40 + + vpsrlq zmm14,zmm3,26 + vpandq zmm3,zmm3,zmm5 + vpaddq zmm4,zmm4,zmm14 + + vpandq zmm7,zmm7,zmm5 + + + + + sub rdx,128 + ja NEAR $L$oop_avx512 + +$L$tail_avx512: + + + + + + vpsrlq zmm16,zmm16,32 + vpsrlq zmm17,zmm17,32 + vpsrlq zmm18,zmm18,32 + vpsrlq zmm23,zmm23,32 + vpsrlq zmm24,zmm24,32 + vpsrlq zmm19,zmm19,32 + vpsrlq zmm20,zmm20,32 + vpsrlq zmm21,zmm21,32 + vpsrlq zmm22,zmm22,32 + + + + lea rsi,[rdx*1+rsi] + + + vpaddq zmm0,zmm7,zmm0 + + vpmuludq zmm14,zmm17,zmm2 + vpmuludq zmm15,zmm18,zmm2 + vpmuludq zmm11,zmm23,zmm2 + vpandq zmm8,zmm8,zmm5 + vpmuludq zmm12,zmm24,zmm2 + vpandq zmm10,zmm10,zmm5 + vpmuludq zmm13,zmm16,zmm2 + vporq zmm6,zmm6,zmm30 + vpaddq zmm1,zmm8,zmm1 + vpaddq zmm3,zmm10,zmm3 + vpaddq zmm4,zmm6,zmm4 + + vmovdqu xmm7,XMMWORD[rsi] + vpmuludq zmm28,zmm19,zmm0 + vpmuludq zmm29,zmm20,zmm0 + vpmuludq zmm25,zmm16,zmm0 + vpmuludq zmm26,zmm17,zmm0 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + + vmovdqu xmm8,XMMWORD[16+rsi] + vpmuludq zmm28,zmm18,zmm1 + vpmuludq zmm29,zmm19,zmm1 + vpmuludq zmm25,zmm24,zmm1 + vpmuludq zmm27,zmm18,zmm0 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm13,zmm13,zmm27 + + vinserti128 ymm7,ymm7,XMMWORD[32+rsi],1 + vpmuludq zmm28,zmm16,zmm3 + vpmuludq zmm29,zmm17,zmm3 + vpmuludq zmm26,zmm16,zmm1 + vpmuludq zmm27,zmm17,zmm1 + vpaddq zmm14,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + + vinserti128 ymm8,ymm8,XMMWORD[48+rsi],1 + vpmuludq zmm28,zmm24,zmm4 + vpmuludq zmm29,zmm16,zmm4 + vpmuludq zmm25,zmm22,zmm3 + vpmuludq zmm26,zmm23,zmm3 + vpmuludq zmm27,zmm24,zmm3 + vpaddq zmm3,zmm14,zmm28 + vpaddq zmm15,zmm15,zmm29 + vpaddq zmm11,zmm11,zmm25 + vpaddq zmm12,zmm12,zmm26 + vpaddq zmm13,zmm13,zmm27 + + vpmuludq zmm25,zmm21,zmm4 + vpmuludq zmm26,zmm22,zmm4 + vpmuludq zmm27,zmm23,zmm4 + vpaddq zmm0,zmm11,zmm25 + vpaddq zmm1,zmm12,zmm26 + vpaddq zmm2,zmm13,zmm27 + + + + + mov eax,1 + vpermq zmm14,zmm3,0xb1 + vpermq zmm4,zmm15,0xb1 + vpermq zmm11,zmm0,0xb1 + vpermq zmm12,zmm1,0xb1 + vpermq zmm13,zmm2,0xb1 + vpaddq zmm3,zmm3,zmm14 + vpaddq zmm4,zmm4,zmm15 + vpaddq zmm0,zmm0,zmm11 + vpaddq zmm1,zmm1,zmm12 + vpaddq zmm2,zmm2,zmm13 + + kmovw k3,eax + vpermq zmm14,zmm3,0x2 + vpermq zmm15,zmm4,0x2 + vpermq zmm11,zmm0,0x2 + vpermq zmm12,zmm1,0x2 + vpermq zmm13,zmm2,0x2 + vpaddq zmm3,zmm3,zmm14 + vpaddq zmm4,zmm4,zmm15 + vpaddq zmm0,zmm0,zmm11 + vpaddq zmm1,zmm1,zmm12 + vpaddq zmm2,zmm2,zmm13 + + vextracti64x4 ymm14,zmm3,0x1 + vextracti64x4 ymm15,zmm4,0x1 + vextracti64x4 ymm11,zmm0,0x1 + vextracti64x4 ymm12,zmm1,0x1 + vextracti64x4 ymm13,zmm2,0x1 + vpaddq zmm3{k3}{z},zmm3,zmm14 + vpaddq zmm4{k3}{z},zmm4,zmm15 + vpaddq zmm0{k3}{z},zmm0,zmm11 + vpaddq zmm1{k3}{z},zmm1,zmm12 + vpaddq zmm2{k3}{z},zmm2,zmm13 + + + + vpsrlq ymm14,ymm3,26 + vpand ymm3,ymm3,ymm5 + vpsrldq ymm9,ymm7,6 + vpsrldq ymm10,ymm8,6 + vpunpckhqdq ymm6,ymm7,ymm8 + vpaddq ymm4,ymm4,ymm14 + + vpsrlq ymm11,ymm0,26 + vpand ymm0,ymm0,ymm5 + vpunpcklqdq ymm9,ymm9,ymm10 + vpunpcklqdq ymm7,ymm7,ymm8 + vpaddq ymm1,ymm1,ymm11 + + vpsrlq ymm15,ymm4,26 + vpand ymm4,ymm4,ymm5 + + vpsrlq ymm12,ymm1,26 + vpand ymm1,ymm1,ymm5 + vpsrlq ymm10,ymm9,30 + vpsrlq ymm9,ymm9,4 + vpaddq ymm2,ymm2,ymm12 + + vpaddq ymm0,ymm0,ymm15 + vpsllq ymm15,ymm15,2 + vpsrlq ymm8,ymm7,26 + vpsrlq ymm6,ymm6,40 + vpaddq ymm0,ymm0,ymm15 + + vpsrlq ymm13,ymm2,26 + vpand ymm2,ymm2,ymm5 + vpand ymm9,ymm9,ymm5 + vpand ymm7,ymm7,ymm5 + vpaddq ymm3,ymm3,ymm13 + + vpsrlq ymm11,ymm0,26 + vpand ymm0,ymm0,ymm5 + vpaddq ymm2,ymm9,ymm2 + vpand ymm8,ymm8,ymm5 + vpaddq ymm1,ymm1,ymm11 + + vpsrlq ymm14,ymm3,26 + vpand ymm3,ymm3,ymm5 + vpand ymm10,ymm10,ymm5 + vpor ymm6,ymm6,YMMWORD[32+rcx] + vpaddq ymm4,ymm4,ymm14 + + lea rax,[144+rsp] + add rdx,64 + jnz NEAR $L$tail_avx2 + + vpsubq ymm2,ymm2,ymm9 + vmovd DWORD[(-112)+rdi],xmm0 + vmovd DWORD[(-108)+rdi],xmm1 + vmovd DWORD[(-104)+rdi],xmm2 + vmovd DWORD[(-100)+rdi],xmm3 + vmovd DWORD[(-96)+rdi],xmm4 + vzeroall + movdqa xmm6,XMMWORD[80+r11] + movdqa xmm7,XMMWORD[96+r11] + movdqa xmm8,XMMWORD[112+r11] + movdqa xmm9,XMMWORD[128+r11] + movdqa xmm10,XMMWORD[144+r11] + movdqa xmm11,XMMWORD[160+r11] + movdqa xmm12,XMMWORD[176+r11] + movdqa xmm13,XMMWORD[192+r11] + movdqa xmm14,XMMWORD[208+r11] + movdqa xmm15,XMMWORD[224+r11] + lea rsp,[248+r11] +$L$do_avx512_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_poly1305_blocks_avx512: + +ALIGN 32 +poly1305_init_base2_44: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_poly1305_init_base2_44: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + xor rax,rax + mov QWORD[rdi],rax + mov QWORD[8+rdi],rax + mov QWORD[16+rdi],rax + +$L$init_base2_44: + lea r10,[poly1305_blocks_vpmadd52] + lea r11,[poly1305_emit_base2_44] + + mov rax,0x0ffffffc0fffffff + mov rcx,0x0ffffffc0ffffffc + and rax,QWORD[rsi] + mov r8,0x00000fffffffffff + and rcx,QWORD[8+rsi] + mov r9,0x00000fffffffffff + and r8,rax + shrd rax,rcx,44 + mov QWORD[40+rdi],r8 + and rax,r9 + shr rcx,24 + mov QWORD[48+rdi],rax + lea rax,[rax*4+rax] + mov QWORD[56+rdi],rcx + shl rax,2 + lea rcx,[rcx*4+rcx] + shl rcx,2 + mov QWORD[24+rdi],rax + mov QWORD[32+rdi],rcx + mov QWORD[64+rdi],-1 + mov QWORD[rdx],r10 + mov QWORD[8+rdx],r11 + mov eax,1 + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_poly1305_init_base2_44: + +ALIGN 32 +poly1305_blocks_vpmadd52: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_poly1305_blocks_vpmadd52: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + shr rdx,4 + jz NEAR $L$no_data_vpmadd52 + + shl rcx,40 + mov r8,QWORD[64+rdi] + + + + + + + mov rax,3 + mov r10,1 + cmp rdx,4 + cmovae rax,r10 + test r8,r8 + cmovns rax,r10 + + and rax,rdx + jz NEAR $L$blocks_vpmadd52_4x + + sub rdx,rax + mov r10d,7 + mov r11d,1 + kmovw k7,r10d + lea r10,[$L$2_44_inp_permd] + kmovw k1,r11d + + vmovq xmm21,rcx + vmovdqa64 ymm19,YMMWORD[r10] + vmovdqa64 ymm20,YMMWORD[32+r10] + vpermq ymm21,ymm21,0xcf + vmovdqa64 ymm22,YMMWORD[64+r10] + + vmovdqu64 ymm16{k7}{z},[rdi] + vmovdqu64 ymm3{k7}{z},[40+rdi] + vmovdqu64 ymm4{k7}{z},[32+rdi] + vmovdqu64 ymm5{k7}{z},[24+rdi] + + vmovdqa64 ymm23,YMMWORD[96+r10] + vmovdqa64 ymm24,YMMWORD[128+r10] + + jmp NEAR $L$oop_vpmadd52 + +ALIGN 32 +$L$oop_vpmadd52: + vmovdqu32 xmm18,XMMWORD[rsi] + lea rsi,[16+rsi] + + vpermd ymm18,ymm19,ymm18 + vpsrlvq ymm18,ymm18,ymm20 + vpandq ymm18,ymm18,ymm22 + vporq ymm18,ymm18,ymm21 + + vpaddq ymm16,ymm16,ymm18 + + vpermq ymm0{k7}{z},ymm16,0 + vpermq ymm1{k7}{z},ymm16,85 + vpermq ymm2{k7}{z},ymm16,170 + + vpxord ymm16,ymm16,ymm16 + vpxord ymm17,ymm17,ymm17 + + vpmadd52luq ymm16,ymm0,ymm3 + vpmadd52huq ymm17,ymm0,ymm3 + + vpmadd52luq ymm16,ymm1,ymm4 + vpmadd52huq ymm17,ymm1,ymm4 + + vpmadd52luq ymm16,ymm2,ymm5 + vpmadd52huq ymm17,ymm2,ymm5 + + vpsrlvq ymm18,ymm16,ymm23 + vpsllvq ymm17,ymm17,ymm24 + vpandq ymm16,ymm16,ymm22 + + vpaddq ymm17,ymm17,ymm18 + + vpermq ymm17,ymm17,147 + + vpaddq ymm16,ymm16,ymm17 + + vpsrlvq ymm18,ymm16,ymm23 + vpandq ymm16,ymm16,ymm22 + + vpermq ymm18,ymm18,147 + + vpaddq ymm16,ymm16,ymm18 + + vpermq ymm18{k1}{z},ymm16,147 + + vpaddq ymm16,ymm16,ymm18 + vpsllq ymm18,ymm18,2 + + vpaddq ymm16,ymm16,ymm18 + + dec rax + jnz NEAR $L$oop_vpmadd52 + + vmovdqu64 YMMWORD[rdi]{k7},ymm16 + + test rdx,rdx + jnz NEAR $L$blocks_vpmadd52_4x + +$L$no_data_vpmadd52: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_poly1305_blocks_vpmadd52: + +ALIGN 32 +poly1305_blocks_vpmadd52_4x: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_poly1305_blocks_vpmadd52_4x: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + shr rdx,4 + jz NEAR $L$no_data_vpmadd52_4x + + shl rcx,40 + mov r8,QWORD[64+rdi] + +$L$blocks_vpmadd52_4x: + vpbroadcastq ymm31,rcx + + vmovdqa64 ymm28,YMMWORD[$L$x_mask44] + mov eax,5 + vmovdqa64 ymm29,YMMWORD[$L$x_mask42] + kmovw k1,eax + + test r8,r8 + js NEAR $L$init_vpmadd52 + + vmovq xmm0,QWORD[rdi] + vmovq xmm1,QWORD[8+rdi] + vmovq xmm2,QWORD[16+rdi] + + test rdx,3 + jnz NEAR $L$blocks_vpmadd52_2x_do + +$L$blocks_vpmadd52_4x_do: + vpbroadcastq ymm3,QWORD[64+rdi] + vpbroadcastq ymm4,QWORD[96+rdi] + vpbroadcastq ymm5,QWORD[128+rdi] + vpbroadcastq ymm16,QWORD[160+rdi] + +$L$blocks_vpmadd52_4x_key_loaded: + vpsllq ymm17,ymm5,2 + vpaddq ymm17,ymm17,ymm5 + vpsllq ymm17,ymm17,2 + + test rdx,7 + jz NEAR $L$blocks_vpmadd52_8x + + vmovdqu64 ymm26,YMMWORD[rsi] + vmovdqu64 ymm27,YMMWORD[32+rsi] + lea rsi,[64+rsi] + + vpunpcklqdq ymm25,ymm26,ymm27 + vpunpckhqdq ymm27,ymm26,ymm27 + + + + vpsrlq ymm26,ymm27,24 + vporq ymm26,ymm26,ymm31 + vpaddq ymm2,ymm2,ymm26 + vpandq ymm24,ymm25,ymm28 + vpsrlq ymm25,ymm25,44 + vpsllq ymm27,ymm27,20 + vporq ymm25,ymm25,ymm27 + vpandq ymm25,ymm25,ymm28 + + sub rdx,4 + jz NEAR $L$tail_vpmadd52_4x + jmp NEAR $L$oop_vpmadd52_4x + ud2 + +ALIGN 32 +$L$init_vpmadd52: + vmovq xmm16,QWORD[24+rdi] + vmovq xmm2,QWORD[56+rdi] + vmovq xmm17,QWORD[32+rdi] + vmovq xmm3,QWORD[40+rdi] + vmovq xmm4,QWORD[48+rdi] + + vmovdqa ymm0,ymm3 + vmovdqa ymm1,ymm4 + vmovdqa ymm5,ymm2 + + mov eax,2 + +$L$mul_init_vpmadd52: + vpxorq ymm18,ymm18,ymm18 + vpmadd52luq ymm18,ymm16,ymm2 + vpxorq ymm19,ymm19,ymm19 + vpmadd52huq ymm19,ymm16,ymm2 + vpxorq ymm20,ymm20,ymm20 + vpmadd52luq ymm20,ymm17,ymm2 + vpxorq ymm21,ymm21,ymm21 + vpmadd52huq ymm21,ymm17,ymm2 + vpxorq ymm22,ymm22,ymm22 + vpmadd52luq ymm22,ymm3,ymm2 + vpxorq ymm23,ymm23,ymm23 + vpmadd52huq ymm23,ymm3,ymm2 + + vpmadd52luq ymm18,ymm3,ymm0 + vpmadd52huq ymm19,ymm3,ymm0 + vpmadd52luq ymm20,ymm4,ymm0 + vpmadd52huq ymm21,ymm4,ymm0 + vpmadd52luq ymm22,ymm5,ymm0 + vpmadd52huq ymm23,ymm5,ymm0 + + vpmadd52luq ymm18,ymm17,ymm1 + vpmadd52huq ymm19,ymm17,ymm1 + vpmadd52luq ymm20,ymm3,ymm1 + vpmadd52huq ymm21,ymm3,ymm1 + vpmadd52luq ymm22,ymm4,ymm1 + vpmadd52huq ymm23,ymm4,ymm1 + + + + vpsrlq ymm30,ymm18,44 + vpsllq ymm19,ymm19,8 + vpandq ymm0,ymm18,ymm28 + vpaddq ymm19,ymm19,ymm30 + + vpaddq ymm20,ymm20,ymm19 + + vpsrlq ymm30,ymm20,44 + vpsllq ymm21,ymm21,8 + vpandq ymm1,ymm20,ymm28 + vpaddq ymm21,ymm21,ymm30 + + vpaddq ymm22,ymm22,ymm21 + + vpsrlq ymm30,ymm22,42 + vpsllq ymm23,ymm23,10 + vpandq ymm2,ymm22,ymm29 + vpaddq ymm23,ymm23,ymm30 + + vpaddq ymm0,ymm0,ymm23 + vpsllq ymm23,ymm23,2 + + vpaddq ymm0,ymm0,ymm23 + + vpsrlq ymm30,ymm0,44 + vpandq ymm0,ymm0,ymm28 + + vpaddq ymm1,ymm1,ymm30 + + dec eax + jz NEAR $L$done_init_vpmadd52 + + vpunpcklqdq ymm4,ymm1,ymm4 + vpbroadcastq xmm1,xmm1 + vpunpcklqdq ymm5,ymm2,ymm5 + vpbroadcastq xmm2,xmm2 + vpunpcklqdq ymm3,ymm0,ymm3 + vpbroadcastq xmm0,xmm0 + + vpsllq ymm16,ymm4,2 + vpsllq ymm17,ymm5,2 + vpaddq ymm16,ymm16,ymm4 + vpaddq ymm17,ymm17,ymm5 + vpsllq ymm16,ymm16,2 + vpsllq ymm17,ymm17,2 + + jmp NEAR $L$mul_init_vpmadd52 + ud2 + +ALIGN 32 +$L$done_init_vpmadd52: + vinserti128 ymm4,ymm1,xmm4,1 + vinserti128 ymm5,ymm2,xmm5,1 + vinserti128 ymm3,ymm0,xmm3,1 + + vpermq ymm4,ymm4,216 + vpermq ymm5,ymm5,216 + vpermq ymm3,ymm3,216 + + vpsllq ymm16,ymm4,2 + vpaddq ymm16,ymm16,ymm4 + vpsllq ymm16,ymm16,2 + + vmovq xmm0,QWORD[rdi] + vmovq xmm1,QWORD[8+rdi] + vmovq xmm2,QWORD[16+rdi] + + test rdx,3 + jnz NEAR $L$done_init_vpmadd52_2x + + vmovdqu64 YMMWORD[64+rdi],ymm3 + vpbroadcastq ymm3,xmm3 + vmovdqu64 YMMWORD[96+rdi],ymm4 + vpbroadcastq ymm4,xmm4 + vmovdqu64 YMMWORD[128+rdi],ymm5 + vpbroadcastq ymm5,xmm5 + vmovdqu64 YMMWORD[160+rdi],ymm16 + vpbroadcastq ymm16,xmm16 + + jmp NEAR $L$blocks_vpmadd52_4x_key_loaded + ud2 + +ALIGN 32 +$L$done_init_vpmadd52_2x: + vmovdqu64 YMMWORD[64+rdi],ymm3 + vpsrldq ymm3,ymm3,8 + vmovdqu64 YMMWORD[96+rdi],ymm4 + vpsrldq ymm4,ymm4,8 + vmovdqu64 YMMWORD[128+rdi],ymm5 + vpsrldq ymm5,ymm5,8 + vmovdqu64 YMMWORD[160+rdi],ymm16 + vpsrldq ymm16,ymm16,8 + jmp NEAR $L$blocks_vpmadd52_2x_key_loaded + ud2 + +ALIGN 32 +$L$blocks_vpmadd52_2x_do: + vmovdqu64 ymm5{k1}{z},[((128+8))+rdi] + vmovdqu64 ymm16{k1}{z},[((160+8))+rdi] + vmovdqu64 ymm3{k1}{z},[((64+8))+rdi] + vmovdqu64 ymm4{k1}{z},[((96+8))+rdi] + +$L$blocks_vpmadd52_2x_key_loaded: + vmovdqu64 ymm26,YMMWORD[rsi] + vpxorq ymm27,ymm27,ymm27 + lea rsi,[32+rsi] + + vpunpcklqdq ymm25,ymm26,ymm27 + vpunpckhqdq ymm27,ymm26,ymm27 + + + + vpsrlq ymm26,ymm27,24 + vporq ymm26,ymm26,ymm31 + vpaddq ymm2,ymm2,ymm26 + vpandq ymm24,ymm25,ymm28 + vpsrlq ymm25,ymm25,44 + vpsllq ymm27,ymm27,20 + vporq ymm25,ymm25,ymm27 + vpandq ymm25,ymm25,ymm28 + + jmp NEAR $L$tail_vpmadd52_2x + ud2 + +ALIGN 32 +$L$oop_vpmadd52_4x: + + vpaddq ymm0,ymm0,ymm24 + vpaddq ymm1,ymm1,ymm25 + + vpxorq ymm18,ymm18,ymm18 + vpmadd52luq ymm18,ymm16,ymm2 + vpxorq ymm19,ymm19,ymm19 + vpmadd52huq ymm19,ymm16,ymm2 + vpxorq ymm20,ymm20,ymm20 + vpmadd52luq ymm20,ymm17,ymm2 + vpxorq ymm21,ymm21,ymm21 + vpmadd52huq ymm21,ymm17,ymm2 + vpxorq ymm22,ymm22,ymm22 + vpmadd52luq ymm22,ymm3,ymm2 + vpxorq ymm23,ymm23,ymm23 + vpmadd52huq ymm23,ymm3,ymm2 + + vmovdqu64 ymm26,YMMWORD[rsi] + vmovdqu64 ymm27,YMMWORD[32+rsi] + lea rsi,[64+rsi] + vpmadd52luq ymm18,ymm3,ymm0 + vpmadd52huq ymm19,ymm3,ymm0 + vpmadd52luq ymm20,ymm4,ymm0 + vpmadd52huq ymm21,ymm4,ymm0 + vpmadd52luq ymm22,ymm5,ymm0 + vpmadd52huq ymm23,ymm5,ymm0 + + vpunpcklqdq ymm25,ymm26,ymm27 + vpunpckhqdq ymm27,ymm26,ymm27 + vpmadd52luq ymm18,ymm17,ymm1 + vpmadd52huq ymm19,ymm17,ymm1 + vpmadd52luq ymm20,ymm3,ymm1 + vpmadd52huq ymm21,ymm3,ymm1 + vpmadd52luq ymm22,ymm4,ymm1 + vpmadd52huq ymm23,ymm4,ymm1 + + + + vpsrlq ymm30,ymm18,44 + vpsllq ymm19,ymm19,8 + vpandq ymm0,ymm18,ymm28 + vpaddq ymm19,ymm19,ymm30 + + vpsrlq ymm26,ymm27,24 + vporq ymm26,ymm26,ymm31 + vpaddq ymm20,ymm20,ymm19 + + vpsrlq ymm30,ymm20,44 + vpsllq ymm21,ymm21,8 + vpandq ymm1,ymm20,ymm28 + vpaddq ymm21,ymm21,ymm30 + + vpandq ymm24,ymm25,ymm28 + vpsrlq ymm25,ymm25,44 + vpsllq ymm27,ymm27,20 + vpaddq ymm22,ymm22,ymm21 + + vpsrlq ymm30,ymm22,42 + vpsllq ymm23,ymm23,10 + vpandq ymm2,ymm22,ymm29 + vpaddq ymm23,ymm23,ymm30 + + vpaddq ymm2,ymm2,ymm26 + vpaddq ymm0,ymm0,ymm23 + vpsllq ymm23,ymm23,2 + + vpaddq ymm0,ymm0,ymm23 + vporq ymm25,ymm25,ymm27 + vpandq ymm25,ymm25,ymm28 + + vpsrlq ymm30,ymm0,44 + vpandq ymm0,ymm0,ymm28 + + vpaddq ymm1,ymm1,ymm30 + + sub rdx,4 + jnz NEAR $L$oop_vpmadd52_4x + +$L$tail_vpmadd52_4x: + vmovdqu64 ymm5,YMMWORD[128+rdi] + vmovdqu64 ymm16,YMMWORD[160+rdi] + vmovdqu64 ymm3,YMMWORD[64+rdi] + vmovdqu64 ymm4,YMMWORD[96+rdi] + +$L$tail_vpmadd52_2x: + vpsllq ymm17,ymm5,2 + vpaddq ymm17,ymm17,ymm5 + vpsllq ymm17,ymm17,2 + + + vpaddq ymm0,ymm0,ymm24 + vpaddq ymm1,ymm1,ymm25 + + vpxorq ymm18,ymm18,ymm18 + vpmadd52luq ymm18,ymm16,ymm2 + vpxorq ymm19,ymm19,ymm19 + vpmadd52huq ymm19,ymm16,ymm2 + vpxorq ymm20,ymm20,ymm20 + vpmadd52luq ymm20,ymm17,ymm2 + vpxorq ymm21,ymm21,ymm21 + vpmadd52huq ymm21,ymm17,ymm2 + vpxorq ymm22,ymm22,ymm22 + vpmadd52luq ymm22,ymm3,ymm2 + vpxorq ymm23,ymm23,ymm23 + vpmadd52huq ymm23,ymm3,ymm2 + + vpmadd52luq ymm18,ymm3,ymm0 + vpmadd52huq ymm19,ymm3,ymm0 + vpmadd52luq ymm20,ymm4,ymm0 + vpmadd52huq ymm21,ymm4,ymm0 + vpmadd52luq ymm22,ymm5,ymm0 + vpmadd52huq ymm23,ymm5,ymm0 + + vpmadd52luq ymm18,ymm17,ymm1 + vpmadd52huq ymm19,ymm17,ymm1 + vpmadd52luq ymm20,ymm3,ymm1 + vpmadd52huq ymm21,ymm3,ymm1 + vpmadd52luq ymm22,ymm4,ymm1 + vpmadd52huq ymm23,ymm4,ymm1 + + + + + mov eax,1 + kmovw k1,eax + vpsrldq ymm24,ymm18,8 + vpsrldq ymm0,ymm19,8 + vpsrldq ymm25,ymm20,8 + vpsrldq ymm1,ymm21,8 + vpaddq ymm18,ymm18,ymm24 + vpaddq ymm19,ymm19,ymm0 + vpsrldq ymm26,ymm22,8 + vpsrldq ymm2,ymm23,8 + vpaddq ymm20,ymm20,ymm25 + vpaddq ymm21,ymm21,ymm1 + vpermq ymm24,ymm18,0x2 + vpermq ymm0,ymm19,0x2 + vpaddq ymm22,ymm22,ymm26 + vpaddq ymm23,ymm23,ymm2 + + vpermq ymm25,ymm20,0x2 + vpermq ymm1,ymm21,0x2 + vpaddq ymm18{k1}{z},ymm18,ymm24 + vpaddq ymm19{k1}{z},ymm19,ymm0 + vpermq ymm26,ymm22,0x2 + vpermq ymm2,ymm23,0x2 + vpaddq ymm20{k1}{z},ymm20,ymm25 + vpaddq ymm21{k1}{z},ymm21,ymm1 + vpaddq ymm22{k1}{z},ymm22,ymm26 + vpaddq ymm23{k1}{z},ymm23,ymm2 + + + + vpsrlq ymm30,ymm18,44 + vpsllq ymm19,ymm19,8 + vpandq ymm0,ymm18,ymm28 + vpaddq ymm19,ymm19,ymm30 + + vpaddq ymm20,ymm20,ymm19 + + vpsrlq ymm30,ymm20,44 + vpsllq ymm21,ymm21,8 + vpandq ymm1,ymm20,ymm28 + vpaddq ymm21,ymm21,ymm30 + + vpaddq ymm22,ymm22,ymm21 + + vpsrlq ymm30,ymm22,42 + vpsllq ymm23,ymm23,10 + vpandq ymm2,ymm22,ymm29 + vpaddq ymm23,ymm23,ymm30 + + vpaddq ymm0,ymm0,ymm23 + vpsllq ymm23,ymm23,2 + + vpaddq ymm0,ymm0,ymm23 + + vpsrlq ymm30,ymm0,44 + vpandq ymm0,ymm0,ymm28 + + vpaddq ymm1,ymm1,ymm30 + + + sub rdx,2 + ja NEAR $L$blocks_vpmadd52_4x_do + + vmovq QWORD[rdi],xmm0 + vmovq QWORD[8+rdi],xmm1 + vmovq QWORD[16+rdi],xmm2 + vzeroall + +$L$no_data_vpmadd52_4x: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_poly1305_blocks_vpmadd52_4x: + +ALIGN 32 +poly1305_blocks_vpmadd52_8x: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_poly1305_blocks_vpmadd52_8x: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + shr rdx,4 + jz NEAR $L$no_data_vpmadd52_8x + + shl rcx,40 + mov r8,QWORD[64+rdi] + + vmovdqa64 ymm28,YMMWORD[$L$x_mask44] + vmovdqa64 ymm29,YMMWORD[$L$x_mask42] + + test r8,r8 + js NEAR $L$init_vpmadd52 + + vmovq xmm0,QWORD[rdi] + vmovq xmm1,QWORD[8+rdi] + vmovq xmm2,QWORD[16+rdi] + +$L$blocks_vpmadd52_8x: + + + + vmovdqu64 ymm5,YMMWORD[128+rdi] + vmovdqu64 ymm16,YMMWORD[160+rdi] + vmovdqu64 ymm3,YMMWORD[64+rdi] + vmovdqu64 ymm4,YMMWORD[96+rdi] + + vpsllq ymm17,ymm5,2 + vpaddq ymm17,ymm17,ymm5 + vpsllq ymm17,ymm17,2 + + vpbroadcastq ymm8,xmm5 + vpbroadcastq ymm6,xmm3 + vpbroadcastq ymm7,xmm4 + + vpxorq ymm18,ymm18,ymm18 + vpmadd52luq ymm18,ymm16,ymm8 + vpxorq ymm19,ymm19,ymm19 + vpmadd52huq ymm19,ymm16,ymm8 + vpxorq ymm20,ymm20,ymm20 + vpmadd52luq ymm20,ymm17,ymm8 + vpxorq ymm21,ymm21,ymm21 + vpmadd52huq ymm21,ymm17,ymm8 + vpxorq ymm22,ymm22,ymm22 + vpmadd52luq ymm22,ymm3,ymm8 + vpxorq ymm23,ymm23,ymm23 + vpmadd52huq ymm23,ymm3,ymm8 + + vpmadd52luq ymm18,ymm3,ymm6 + vpmadd52huq ymm19,ymm3,ymm6 + vpmadd52luq ymm20,ymm4,ymm6 + vpmadd52huq ymm21,ymm4,ymm6 + vpmadd52luq ymm22,ymm5,ymm6 + vpmadd52huq ymm23,ymm5,ymm6 + + vpmadd52luq ymm18,ymm17,ymm7 + vpmadd52huq ymm19,ymm17,ymm7 + vpmadd52luq ymm20,ymm3,ymm7 + vpmadd52huq ymm21,ymm3,ymm7 + vpmadd52luq ymm22,ymm4,ymm7 + vpmadd52huq ymm23,ymm4,ymm7 + + + + vpsrlq ymm30,ymm18,44 + vpsllq ymm19,ymm19,8 + vpandq ymm6,ymm18,ymm28 + vpaddq ymm19,ymm19,ymm30 + + vpaddq ymm20,ymm20,ymm19 + + vpsrlq ymm30,ymm20,44 + vpsllq ymm21,ymm21,8 + vpandq ymm7,ymm20,ymm28 + vpaddq ymm21,ymm21,ymm30 + + vpaddq ymm22,ymm22,ymm21 + + vpsrlq ymm30,ymm22,42 + vpsllq ymm23,ymm23,10 + vpandq ymm8,ymm22,ymm29 + vpaddq ymm23,ymm23,ymm30 + + vpaddq ymm6,ymm6,ymm23 + vpsllq ymm23,ymm23,2 + + vpaddq ymm6,ymm6,ymm23 + + vpsrlq ymm30,ymm6,44 + vpandq ymm6,ymm6,ymm28 + + vpaddq ymm7,ymm7,ymm30 + + + + + + vpunpcklqdq ymm26,ymm8,ymm5 + vpunpckhqdq ymm5,ymm8,ymm5 + vpunpcklqdq ymm24,ymm6,ymm3 + vpunpckhqdq ymm3,ymm6,ymm3 + vpunpcklqdq ymm25,ymm7,ymm4 + vpunpckhqdq ymm4,ymm7,ymm4 + vshufi64x2 zmm8,zmm26,zmm5,0x44 + vshufi64x2 zmm6,zmm24,zmm3,0x44 + vshufi64x2 zmm7,zmm25,zmm4,0x44 + + vmovdqu64 zmm26,ZMMWORD[rsi] + vmovdqu64 zmm27,ZMMWORD[64+rsi] + lea rsi,[128+rsi] + + vpsllq zmm10,zmm8,2 + vpsllq zmm9,zmm7,2 + vpaddq zmm10,zmm10,zmm8 + vpaddq zmm9,zmm9,zmm7 + vpsllq zmm10,zmm10,2 + vpsllq zmm9,zmm9,2 + + vpbroadcastq zmm31,rcx + vpbroadcastq zmm28,xmm28 + vpbroadcastq zmm29,xmm29 + + vpbroadcastq zmm16,xmm9 + vpbroadcastq zmm17,xmm10 + vpbroadcastq zmm3,xmm6 + vpbroadcastq zmm4,xmm7 + vpbroadcastq zmm5,xmm8 + + vpunpcklqdq zmm25,zmm26,zmm27 + vpunpckhqdq zmm27,zmm26,zmm27 + + + + vpsrlq zmm26,zmm27,24 + vporq zmm26,zmm26,zmm31 + vpaddq zmm2,zmm2,zmm26 + vpandq zmm24,zmm25,zmm28 + vpsrlq zmm25,zmm25,44 + vpsllq zmm27,zmm27,20 + vporq zmm25,zmm25,zmm27 + vpandq zmm25,zmm25,zmm28 + + sub rdx,8 + jz NEAR $L$tail_vpmadd52_8x + jmp NEAR $L$oop_vpmadd52_8x + +ALIGN 32 +$L$oop_vpmadd52_8x: + + vpaddq zmm0,zmm0,zmm24 + vpaddq zmm1,zmm1,zmm25 + + vpxorq zmm18,zmm18,zmm18 + vpmadd52luq zmm18,zmm16,zmm2 + vpxorq zmm19,zmm19,zmm19 + vpmadd52huq zmm19,zmm16,zmm2 + vpxorq zmm20,zmm20,zmm20 + vpmadd52luq zmm20,zmm17,zmm2 + vpxorq zmm21,zmm21,zmm21 + vpmadd52huq zmm21,zmm17,zmm2 + vpxorq zmm22,zmm22,zmm22 + vpmadd52luq zmm22,zmm3,zmm2 + vpxorq zmm23,zmm23,zmm23 + vpmadd52huq zmm23,zmm3,zmm2 + + vmovdqu64 zmm26,ZMMWORD[rsi] + vmovdqu64 zmm27,ZMMWORD[64+rsi] + lea rsi,[128+rsi] + vpmadd52luq zmm18,zmm3,zmm0 + vpmadd52huq zmm19,zmm3,zmm0 + vpmadd52luq zmm20,zmm4,zmm0 + vpmadd52huq zmm21,zmm4,zmm0 + vpmadd52luq zmm22,zmm5,zmm0 + vpmadd52huq zmm23,zmm5,zmm0 + + vpunpcklqdq zmm25,zmm26,zmm27 + vpunpckhqdq zmm27,zmm26,zmm27 + vpmadd52luq zmm18,zmm17,zmm1 + vpmadd52huq zmm19,zmm17,zmm1 + vpmadd52luq zmm20,zmm3,zmm1 + vpmadd52huq zmm21,zmm3,zmm1 + vpmadd52luq zmm22,zmm4,zmm1 + vpmadd52huq zmm23,zmm4,zmm1 + + + + vpsrlq zmm30,zmm18,44 + vpsllq zmm19,zmm19,8 + vpandq zmm0,zmm18,zmm28 + vpaddq zmm19,zmm19,zmm30 + + vpsrlq zmm26,zmm27,24 + vporq zmm26,zmm26,zmm31 + vpaddq zmm20,zmm20,zmm19 + + vpsrlq zmm30,zmm20,44 + vpsllq zmm21,zmm21,8 + vpandq zmm1,zmm20,zmm28 + vpaddq zmm21,zmm21,zmm30 + + vpandq zmm24,zmm25,zmm28 + vpsrlq zmm25,zmm25,44 + vpsllq zmm27,zmm27,20 + vpaddq zmm22,zmm22,zmm21 + + vpsrlq zmm30,zmm22,42 + vpsllq zmm23,zmm23,10 + vpandq zmm2,zmm22,zmm29 + vpaddq zmm23,zmm23,zmm30 + + vpaddq zmm2,zmm2,zmm26 + vpaddq zmm0,zmm0,zmm23 + vpsllq zmm23,zmm23,2 + + vpaddq zmm0,zmm0,zmm23 + vporq zmm25,zmm25,zmm27 + vpandq zmm25,zmm25,zmm28 + + vpsrlq zmm30,zmm0,44 + vpandq zmm0,zmm0,zmm28 + + vpaddq zmm1,zmm1,zmm30 + + sub rdx,8 + jnz NEAR $L$oop_vpmadd52_8x + +$L$tail_vpmadd52_8x: + + vpaddq zmm0,zmm0,zmm24 + vpaddq zmm1,zmm1,zmm25 + + vpxorq zmm18,zmm18,zmm18 + vpmadd52luq zmm18,zmm9,zmm2 + vpxorq zmm19,zmm19,zmm19 + vpmadd52huq zmm19,zmm9,zmm2 + vpxorq zmm20,zmm20,zmm20 + vpmadd52luq zmm20,zmm10,zmm2 + vpxorq zmm21,zmm21,zmm21 + vpmadd52huq zmm21,zmm10,zmm2 + vpxorq zmm22,zmm22,zmm22 + vpmadd52luq zmm22,zmm6,zmm2 + vpxorq zmm23,zmm23,zmm23 + vpmadd52huq zmm23,zmm6,zmm2 + + vpmadd52luq zmm18,zmm6,zmm0 + vpmadd52huq zmm19,zmm6,zmm0 + vpmadd52luq zmm20,zmm7,zmm0 + vpmadd52huq zmm21,zmm7,zmm0 + vpmadd52luq zmm22,zmm8,zmm0 + vpmadd52huq zmm23,zmm8,zmm0 + + vpmadd52luq zmm18,zmm10,zmm1 + vpmadd52huq zmm19,zmm10,zmm1 + vpmadd52luq zmm20,zmm6,zmm1 + vpmadd52huq zmm21,zmm6,zmm1 + vpmadd52luq zmm22,zmm7,zmm1 + vpmadd52huq zmm23,zmm7,zmm1 + + + + + mov eax,1 + kmovw k1,eax + vpsrldq zmm24,zmm18,8 + vpsrldq zmm0,zmm19,8 + vpsrldq zmm25,zmm20,8 + vpsrldq zmm1,zmm21,8 + vpaddq zmm18,zmm18,zmm24 + vpaddq zmm19,zmm19,zmm0 + vpsrldq zmm26,zmm22,8 + vpsrldq zmm2,zmm23,8 + vpaddq zmm20,zmm20,zmm25 + vpaddq zmm21,zmm21,zmm1 + vpermq zmm24,zmm18,0x2 + vpermq zmm0,zmm19,0x2 + vpaddq zmm22,zmm22,zmm26 + vpaddq zmm23,zmm23,zmm2 + + vpermq zmm25,zmm20,0x2 + vpermq zmm1,zmm21,0x2 + vpaddq zmm18,zmm18,zmm24 + vpaddq zmm19,zmm19,zmm0 + vpermq zmm26,zmm22,0x2 + vpermq zmm2,zmm23,0x2 + vpaddq zmm20,zmm20,zmm25 + vpaddq zmm21,zmm21,zmm1 + vextracti64x4 ymm24,zmm18,1 + vextracti64x4 ymm0,zmm19,1 + vpaddq zmm22,zmm22,zmm26 + vpaddq zmm23,zmm23,zmm2 + + vextracti64x4 ymm25,zmm20,1 + vextracti64x4 ymm1,zmm21,1 + vextracti64x4 ymm26,zmm22,1 + vextracti64x4 ymm2,zmm23,1 + vpaddq ymm18{k1}{z},ymm18,ymm24 + vpaddq ymm19{k1}{z},ymm19,ymm0 + vpaddq ymm20{k1}{z},ymm20,ymm25 + vpaddq ymm21{k1}{z},ymm21,ymm1 + vpaddq ymm22{k1}{z},ymm22,ymm26 + vpaddq ymm23{k1}{z},ymm23,ymm2 + + + + vpsrlq ymm30,ymm18,44 + vpsllq ymm19,ymm19,8 + vpandq ymm0,ymm18,ymm28 + vpaddq ymm19,ymm19,ymm30 + + vpaddq ymm20,ymm20,ymm19 + + vpsrlq ymm30,ymm20,44 + vpsllq ymm21,ymm21,8 + vpandq ymm1,ymm20,ymm28 + vpaddq ymm21,ymm21,ymm30 + + vpaddq ymm22,ymm22,ymm21 + + vpsrlq ymm30,ymm22,42 + vpsllq ymm23,ymm23,10 + vpandq ymm2,ymm22,ymm29 + vpaddq ymm23,ymm23,ymm30 + + vpaddq ymm0,ymm0,ymm23 + vpsllq ymm23,ymm23,2 + + vpaddq ymm0,ymm0,ymm23 + + vpsrlq ymm30,ymm0,44 + vpandq ymm0,ymm0,ymm28 + + vpaddq ymm1,ymm1,ymm30 + + + + vmovq QWORD[rdi],xmm0 + vmovq QWORD[8+rdi],xmm1 + vmovq QWORD[16+rdi],xmm2 + vzeroall + +$L$no_data_vpmadd52_8x: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_poly1305_blocks_vpmadd52_8x: + +ALIGN 32 +poly1305_emit_base2_44: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_poly1305_emit_base2_44: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + mov r8,QWORD[rdi] + mov r9,QWORD[8+rdi] + mov r10,QWORD[16+rdi] + + mov rax,r9 + shr r9,20 + shl rax,44 + mov rcx,r10 + shr r10,40 + shl rcx,24 + + add r8,rax + adc r9,rcx + adc r10,0 + + mov rax,r8 + add r8,5 + mov rcx,r9 + adc r9,0 + adc r10,0 + shr r10,2 + cmovnz rax,r8 + cmovnz rcx,r9 + + add rax,QWORD[rdx] + adc rcx,QWORD[8+rdx] + mov QWORD[rsi],rax + mov QWORD[8+rsi],rcx + + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_poly1305_emit_base2_44: ALIGN 64 $L$const: $L$mask24: @@ -1944,13 +3614,131 @@ $L$129: DD 16777216,0,16777216,0,16777216,0,16777216,0 $L$mask26: DD 0x3ffffff,0,0x3ffffff,0,0x3ffffff,0,0x3ffffff,0 -$L$five: - DD 5,0,5,0,5,0,5,0 +$L$permd_avx2: + DD 2,2,2,3,2,0,2,1 +$L$permd_avx512: + DD 0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7 + +$L$2_44_inp_permd: + DD 0,1,1,2,2,3,7,7 +$L$2_44_inp_shift: + DQ 0,12,24,64 +$L$2_44_mask: + DQ 0xfffffffffff,0xfffffffffff,0x3ffffffffff,0xffffffffffffffff +$L$2_44_shift_rgt: + DQ 44,44,42,64 +$L$2_44_shift_lft: + DQ 8,8,10,64 + +ALIGN 64 +$L$x_mask44: + DQ 0xfffffffffff,0xfffffffffff,0xfffffffffff,0xfffffffffff + DQ 0xfffffffffff,0xfffffffffff,0xfffffffffff,0xfffffffffff +$L$x_mask42: + DQ 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff + DQ 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff DB 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 DB 108,46,111,114,103,62,0 ALIGN 16 +global xor128_encrypt_n_pad + +ALIGN 16 +xor128_encrypt_n_pad: + sub rdx,r8 + sub rcx,r8 + mov r10,r9 + shr r9,4 + jz NEAR $L$tail_enc + nop +$L$oop_enc_xmm: + movdqu xmm0,XMMWORD[r8*1+rdx] + pxor xmm0,XMMWORD[r8] + movdqu XMMWORD[r8*1+rcx],xmm0 + movdqa XMMWORD[r8],xmm0 + lea r8,[16+r8] + dec r9 + jnz NEAR $L$oop_enc_xmm + + and r10,15 + jz NEAR $L$done_enc + +$L$tail_enc: + mov r9,16 + sub r9,r10 + xor eax,eax +$L$oop_enc_byte: + mov al,BYTE[r8*1+rdx] + xor al,BYTE[r8] + mov BYTE[r8*1+rcx],al + mov BYTE[r8],al + lea r8,[1+r8] + dec r10 + jnz NEAR $L$oop_enc_byte + + xor eax,eax +$L$oop_enc_pad: + mov BYTE[r8],al + lea r8,[1+r8] + dec r9 + jnz NEAR $L$oop_enc_pad + +$L$done_enc: + mov rax,r8 + DB 0F3h,0C3h ;repret + + +global xor128_decrypt_n_pad + +ALIGN 16 +xor128_decrypt_n_pad: + sub rdx,r8 + sub rcx,r8 + mov r10,r9 + shr r9,4 + jz NEAR $L$tail_dec + nop +$L$oop_dec_xmm: + movdqu xmm0,XMMWORD[r8*1+rdx] + movdqa xmm1,XMMWORD[r8] + pxor xmm1,xmm0 + movdqu XMMWORD[r8*1+rcx],xmm1 + movdqa XMMWORD[r8],xmm0 + lea r8,[16+r8] + dec r9 + jnz NEAR $L$oop_dec_xmm + + pxor xmm1,xmm1 + and r10,15 + jz NEAR $L$done_dec + +$L$tail_dec: + mov r9,16 + sub r9,r10 + xor eax,eax + xor r11,r11 +$L$oop_dec_byte: + mov r11b,BYTE[r8*1+rdx] + mov al,BYTE[r8] + xor al,r11b + mov BYTE[r8*1+rcx],al + mov BYTE[r8],r11b + lea r8,[1+r8] + dec r10 + jnz NEAR $L$oop_dec_byte + + xor eax,eax +$L$oop_dec_pad: + mov BYTE[r8],al + lea r8,[1+r8] + dec r9 + jnz NEAR $L$oop_dec_pad + +$L$done_dec: + mov rax,r8 + DB 0F3h,0C3h ;repret + EXTERN __imp_RtlVirtualUnwind ALIGN 16 @@ -2121,6 +3909,9 @@ ALIGN 4 DD $L$even_avx2 wrt ..imagebase DD $L$SEH_end_poly1305_blocks_avx2 wrt ..imagebase DD $L$SEH_info_poly1305_blocks_avx2_3 wrt ..imagebase + DD $L$SEH_begin_poly1305_blocks_avx512 wrt ..imagebase + DD $L$SEH_end_poly1305_blocks_avx512 wrt ..imagebase + DD $L$SEH_info_poly1305_blocks_avx512 wrt ..imagebase section .xdata rdata align=8 ALIGN 8 $L$SEH_info_poly1305_init: @@ -2170,3 +3961,7 @@ $L$SEH_info_poly1305_blocks_avx2_3: DB 9,0,0,0 DD avx_handler wrt ..imagebase DD $L$do_avx2_body wrt ..imagebase,$L$do_avx2_epilogue wrt ..imagebase +$L$SEH_info_poly1305_blocks_avx512: +DB 9,0,0,0 + DD avx_handler wrt ..imagebase + DD $L$do_avx512_body wrt ..imagebase,$L$do_avx512_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-md5-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-md5-x86_64.asm index f1ea9652d9..5e42fe63df 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-md5-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-md5-x86_64.asm @@ -21,15 +21,23 @@ $L$SEH_begin_rc4_md5_enc: mov r9,QWORD[48+rsp] + cmp r9,0 je NEAR $L$abort push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,40 + $L$body: mov r11,rcx mov r12,r9 @@ -1264,17 +1272,25 @@ $L$oop: mov DWORD[((-4))+rdi],ecx mov r15,QWORD[40+rsp] + mov r14,QWORD[48+rsp] + mov r13,QWORD[56+rsp] + mov r12,QWORD[64+rsp] + mov rbp,QWORD[72+rsp] + mov rbx,QWORD[80+rsp] + lea rsp,[88+rsp] + $L$epilogue: $L$abort: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_rc4_md5_enc: EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-x86_64.asm index 9c042ec082..5732b40ed6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/rc4/rc4-x86_64.asm @@ -25,9 +25,13 @@ $L$SEH_begin_RC4: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret $L$entry: + push rbx + push r12 + push r13 + $L$prologue: mov r11,rsi mov r12,rdx @@ -528,13 +532,18 @@ $L$exit: mov DWORD[((-4))+rdi],ecx mov r13,QWORD[rsp] + mov r12,QWORD[8+rsp] + mov rbx,QWORD[16+rsp] + add rsp,24 + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_RC4: global RC4_set_key diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm new file mode 100644 index 0000000000..d0471cb3b3 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm @@ -0,0 +1,525 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + + +ALIGN 32 +__KeccakF1600: + mov rax,QWORD[60+rdi] + mov rbx,QWORD[68+rdi] + mov rcx,QWORD[76+rdi] + mov rdx,QWORD[84+rdi] + mov rbp,QWORD[92+rdi] + jmp NEAR $L$oop + +ALIGN 32 +$L$oop: + mov r8,QWORD[((-100))+rdi] + mov r9,QWORD[((-52))+rdi] + mov r10,QWORD[((-4))+rdi] + mov r11,QWORD[44+rdi] + + xor rcx,QWORD[((-84))+rdi] + xor rdx,QWORD[((-76))+rdi] + xor rax,r8 + xor rbx,QWORD[((-92))+rdi] + xor rcx,QWORD[((-44))+rdi] + xor rax,QWORD[((-60))+rdi] + mov r12,rbp + xor rbp,QWORD[((-68))+rdi] + + xor rcx,r10 + xor rax,QWORD[((-20))+rdi] + xor rdx,QWORD[((-36))+rdi] + xor rbx,r9 + xor rbp,QWORD[((-28))+rdi] + + xor rcx,QWORD[36+rdi] + xor rax,QWORD[20+rdi] + xor rdx,QWORD[4+rdi] + xor rbx,QWORD[((-12))+rdi] + xor rbp,QWORD[12+rdi] + + mov r13,rcx + rol rcx,1 + xor rcx,rax + xor rdx,r11 + + rol rax,1 + xor rax,rdx + xor rbx,QWORD[28+rdi] + + rol rdx,1 + xor rdx,rbx + xor rbp,QWORD[52+rdi] + + rol rbx,1 + xor rbx,rbp + + rol rbp,1 + xor rbp,r13 + xor r9,rcx + xor r10,rdx + rol r9,44 + xor r11,rbp + xor r12,rax + rol r10,43 + xor r8,rbx + mov r13,r9 + rol r11,21 + or r9,r10 + xor r9,r8 + rol r12,14 + + xor r9,QWORD[r15] + lea r15,[8+r15] + + mov r14,r12 + and r12,r11 + mov QWORD[((-100))+rsi],r9 + xor r12,r10 + not r10 + mov QWORD[((-84))+rsi],r12 + + or r10,r11 + mov r12,QWORD[76+rdi] + xor r10,r13 + mov QWORD[((-92))+rsi],r10 + + and r13,r8 + mov r9,QWORD[((-28))+rdi] + xor r13,r14 + mov r10,QWORD[((-20))+rdi] + mov QWORD[((-68))+rsi],r13 + + or r14,r8 + mov r8,QWORD[((-76))+rdi] + xor r14,r11 + mov r11,QWORD[28+rdi] + mov QWORD[((-76))+rsi],r14 + + + xor r8,rbp + xor r12,rdx + rol r8,28 + xor r11,rcx + xor r9,rax + rol r12,61 + rol r11,45 + xor r10,rbx + rol r9,20 + mov r13,r8 + or r8,r12 + rol r10,3 + + xor r8,r11 + mov QWORD[((-36))+rsi],r8 + + mov r14,r9 + and r9,r13 + mov r8,QWORD[((-92))+rdi] + xor r9,r12 + not r12 + mov QWORD[((-28))+rsi],r9 + + or r12,r11 + mov r9,QWORD[((-44))+rdi] + xor r12,r10 + mov QWORD[((-44))+rsi],r12 + + and r11,r10 + mov r12,QWORD[60+rdi] + xor r11,r14 + mov QWORD[((-52))+rsi],r11 + + or r14,r10 + mov r10,QWORD[4+rdi] + xor r14,r13 + mov r11,QWORD[52+rdi] + mov QWORD[((-60))+rsi],r14 + + + xor r10,rbp + xor r11,rax + rol r10,25 + xor r9,rdx + rol r11,8 + xor r12,rbx + rol r9,6 + xor r8,rcx + rol r12,18 + mov r13,r10 + and r10,r11 + rol r8,1 + + not r11 + xor r10,r9 + mov QWORD[((-12))+rsi],r10 + + mov r14,r12 + and r12,r11 + mov r10,QWORD[((-12))+rdi] + xor r12,r13 + mov QWORD[((-4))+rsi],r12 + + or r13,r9 + mov r12,QWORD[84+rdi] + xor r13,r8 + mov QWORD[((-20))+rsi],r13 + + and r9,r8 + xor r9,r14 + mov QWORD[12+rsi],r9 + + or r14,r8 + mov r9,QWORD[((-60))+rdi] + xor r14,r11 + mov r11,QWORD[36+rdi] + mov QWORD[4+rsi],r14 + + + mov r8,QWORD[((-68))+rdi] + + xor r10,rcx + xor r11,rdx + rol r10,10 + xor r9,rbx + rol r11,15 + xor r12,rbp + rol r9,36 + xor r8,rax + rol r12,56 + mov r13,r10 + or r10,r11 + rol r8,27 + + not r11 + xor r10,r9 + mov QWORD[28+rsi],r10 + + mov r14,r12 + or r12,r11 + xor r12,r13 + mov QWORD[36+rsi],r12 + + and r13,r9 + xor r13,r8 + mov QWORD[20+rsi],r13 + + or r9,r8 + xor r9,r14 + mov QWORD[52+rsi],r9 + + and r8,r14 + xor r8,r11 + mov QWORD[44+rsi],r8 + + + xor rdx,QWORD[((-84))+rdi] + xor rbp,QWORD[((-36))+rdi] + rol rdx,62 + xor rcx,QWORD[68+rdi] + rol rbp,55 + xor rax,QWORD[12+rdi] + rol rcx,2 + xor rbx,QWORD[20+rdi] + xchg rdi,rsi + rol rax,39 + rol rbx,41 + mov r13,rdx + and rdx,rbp + not rbp + xor rdx,rcx + mov QWORD[92+rdi],rdx + + mov r14,rax + and rax,rbp + xor rax,r13 + mov QWORD[60+rdi],rax + + or r13,rcx + xor r13,rbx + mov QWORD[84+rdi],r13 + + and rcx,rbx + xor rcx,r14 + mov QWORD[76+rdi],rcx + + or rbx,r14 + xor rbx,rbp + mov QWORD[68+rdi],rbx + + mov rbp,rdx + mov rdx,r13 + + test r15,255 + jnz NEAR $L$oop + + lea r15,[((-192))+r15] + DB 0F3h,0C3h ;repret + + + +ALIGN 32 +KeccakF1600: + + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + + lea rdi,[100+rdi] + sub rsp,200 + + + not QWORD[((-92))+rdi] + not QWORD[((-84))+rdi] + not QWORD[((-36))+rdi] + not QWORD[((-4))+rdi] + not QWORD[36+rdi] + not QWORD[60+rdi] + + lea r15,[iotas] + lea rsi,[100+rsp] + + call __KeccakF1600 + + not QWORD[((-92))+rdi] + not QWORD[((-84))+rdi] + not QWORD[((-36))+rdi] + not QWORD[((-4))+rdi] + not QWORD[36+rdi] + not QWORD[60+rdi] + lea rdi,[((-100))+rdi] + + add rsp,200 + + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + + DB 0F3h,0C3h ;repret + + +global SHA3_absorb + +ALIGN 32 +SHA3_absorb: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_SHA3_absorb: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + + lea rdi,[100+rdi] + sub rsp,232 + + + mov r9,rsi + lea rsi,[100+rsp] + + not QWORD[((-92))+rdi] + not QWORD[((-84))+rdi] + not QWORD[((-36))+rdi] + not QWORD[((-4))+rdi] + not QWORD[36+rdi] + not QWORD[60+rdi] + lea r15,[iotas] + + mov QWORD[((216-100))+rsi],rcx + +$L$oop_absorb: + cmp rdx,rcx + jc NEAR $L$done_absorb + + shr rcx,3 + lea r8,[((-100))+rdi] + +$L$block_absorb: + mov rax,QWORD[r9] + lea r9,[8+r9] + xor rax,QWORD[r8] + lea r8,[8+r8] + sub rdx,8 + mov QWORD[((-8))+r8],rax + sub rcx,1 + jnz NEAR $L$block_absorb + + mov QWORD[((200-100))+rsi],r9 + mov QWORD[((208-100))+rsi],rdx + call __KeccakF1600 + mov r9,QWORD[((200-100))+rsi] + mov rdx,QWORD[((208-100))+rsi] + mov rcx,QWORD[((216-100))+rsi] + jmp NEAR $L$oop_absorb + +ALIGN 32 +$L$done_absorb: + mov rax,rdx + + not QWORD[((-92))+rdi] + not QWORD[((-84))+rdi] + not QWORD[((-36))+rdi] + not QWORD[((-4))+rdi] + not QWORD[36+rdi] + not QWORD[60+rdi] + + add rsp,232 + + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_SHA3_absorb: +global SHA3_squeeze + +ALIGN 32 +SHA3_squeeze: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_SHA3_squeeze: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + + push r12 + + push r13 + + push r14 + + + shr rcx,3 + mov r8,rdi + mov r12,rsi + mov r13,rdx + mov r14,rcx + jmp NEAR $L$oop_squeeze + +ALIGN 32 +$L$oop_squeeze: + cmp r13,8 + jb NEAR $L$tail_squeeze + + mov rax,QWORD[r8] + lea r8,[8+r8] + mov QWORD[r12],rax + lea r12,[8+r12] + sub r13,8 + jz NEAR $L$done_squeeze + + sub rcx,1 + jnz NEAR $L$oop_squeeze + + call KeccakF1600 + mov r8,rdi + mov rcx,r14 + jmp NEAR $L$oop_squeeze + +$L$tail_squeeze: + mov rsi,r8 + mov rdi,r12 + mov rcx,r13 +DB 0xf3,0xa4 + +$L$done_squeeze: + pop r14 + + pop r13 + + pop r12 + + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_SHA3_squeeze: +ALIGN 256 + DQ 0,0,0,0,0,0,0,0 + +iotas: + DQ 0x0000000000000001 + DQ 0x0000000000008082 + DQ 0x800000000000808a + DQ 0x8000000080008000 + DQ 0x000000000000808b + DQ 0x0000000080000001 + DQ 0x8000000080008081 + DQ 0x8000000000008009 + DQ 0x000000000000008a + DQ 0x0000000000000088 + DQ 0x0000000080008009 + DQ 0x000000008000000a + DQ 0x000000008000808b + DQ 0x800000000000008b + DQ 0x8000000000008089 + DQ 0x8000000000008003 + DQ 0x8000000000008002 + DQ 0x8000000000000080 + DQ 0x000000000000800a + DQ 0x800000008000000a + DQ 0x8000000080008081 + DQ 0x8000000000008080 + DQ 0x0000000080000001 + DQ 0x8000000080008008 + +DB 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111 +DB 114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102 +DB 111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84 +DB 79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64 +DB 111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm index cfc4874e52..725bf4e796 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm @@ -20,14 +20,18 @@ $L$SEH_begin_sha1_multi_block: mov rdx,r8 + mov rcx,QWORD[((OPENSSL_ia32cap_P+4))] bt rcx,61 jc NEAR _shaext_shortcut test ecx,268435456 jnz NEAR _avx_shortcut mov rax,rsp + push rbx + push rbp + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -42,6 +46,7 @@ $L$SEH_begin_sha1_multi_block: sub rsp,288 and rsp,-256 mov QWORD[272+rsp],rax + $L$body: lea rbp,[K_XX_XX] lea rbx,[256+rsp] @@ -2571,6 +2576,7 @@ DB 102,15,56,0,197 $L$done: mov rax,QWORD[272+rsp] + movaps xmm6,XMMWORD[((-184))+rax] movaps xmm7,XMMWORD[((-168))+rax] movaps xmm8,XMMWORD[((-152))+rax] @@ -2582,12 +2588,16 @@ $L$done: movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_multi_block: ALIGN 32 @@ -2601,10 +2611,14 @@ $L$SEH_begin_sha1_multi_block_shaext: mov rdx,r8 + _shaext_shortcut: mov rax,rsp + push rbx + push rbp + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -2981,12 +2995,16 @@ $L$done_shaext: movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue_shaext: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_multi_block_shaext: ALIGN 32 @@ -3000,6 +3018,7 @@ $L$SEH_begin_sha1_multi_block_avx: mov rdx,r8 + _avx_shortcut: shr rcx,32 cmp edx,2 @@ -3010,8 +3029,11 @@ _avx_shortcut: ALIGN 32 $L$avx: mov rax,rsp + push rbx + push rbp + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -3026,6 +3048,7 @@ $L$avx: sub rsp,288 and rsp,-256 mov QWORD[272+rsp],rax + $L$body_avx: lea rbp,[K_XX_XX] lea rbx,[256+rsp] @@ -5075,6 +5098,7 @@ $L$oop_avx: $L$done_avx: mov rax,QWORD[272+rsp] + vzeroupper movaps xmm6,XMMWORD[((-184))+rax] movaps xmm7,XMMWORD[((-168))+rax] @@ -5087,12 +5111,16 @@ $L$done_avx: movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_multi_block_avx: ALIGN 32 @@ -5106,14 +5134,22 @@ $L$SEH_begin_sha1_multi_block_avx2: mov rdx,r8 + _avx2_shortcut: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -5128,6 +5164,7 @@ _avx2_shortcut: sub rsp,576 and rsp,-256 mov QWORD[544+rsp],rax + $L$body_avx2: lea rbp,[K_XX_XX] shr edx,1 @@ -7314,6 +7351,7 @@ $L$oop_avx2: $L$done_avx2: mov rax,QWORD[544+rsp] + vzeroupper movaps xmm6,XMMWORD[((-216))+rax] movaps xmm7,XMMWORD[((-200))+rax] @@ -7326,16 +7364,24 @@ $L$done_avx2: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue_avx2: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_multi_block_avx2: ALIGN 256 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm index 6282079ede..d796380ae8 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm @@ -19,6 +19,7 @@ $L$SEH_begin_sha1_block_data_order: mov rdx,r8 + mov r9d,DWORD[((OPENSSL_ia32cap_P+0))] mov r8d,DWORD[((OPENSSL_ia32cap_P+4))] mov r10d,DWORD[((OPENSSL_ia32cap_P+8))] @@ -39,17 +40,24 @@ $L$SEH_begin_sha1_block_data_order: ALIGN 16 $L$ialu: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + mov r8,rdi sub rsp,72 mov r9,rsi and rsp,-64 mov r10,rdx mov QWORD[64+rsp],rax + $L$prologue: mov esi,DWORD[r8] @@ -1244,16 +1252,24 @@ $L$loop: jnz NEAR $L$loop mov rsi,QWORD[64+rsp] + mov r14,QWORD[((-40))+rsi] + mov r13,QWORD[((-32))+rsi] + mov r12,QWORD[((-24))+rsi] + mov rbp,QWORD[((-16))+rsi] + mov rbx,QWORD[((-8))+rsi] + lea rsp,[rsi] + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_block_data_order: ALIGN 32 @@ -1268,6 +1284,7 @@ $L$SEH_begin_sha1_block_data_order_shaext: _shaext_shortcut: + lea rsp,[((-72))+rsp] movaps XMMWORD[(-8-64)+rax],xmm6 movaps XMMWORD[(-8-48)+rax],xmm7 @@ -1441,6 +1458,7 @@ DB 102,15,56,0,251 movaps xmm9,XMMWORD[((-8-16))+rax] mov rsp,rax $L$epilogue_shaext: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret @@ -1458,21 +1476,27 @@ $L$SEH_begin_sha1_block_data_order_ssse3: _ssse3_shortcut: - mov rax,rsp + + mov r11,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + lea rsp,[((-160))+rsp] - movaps XMMWORD[(-40-96)+rax],xmm6 - movaps XMMWORD[(-40-80)+rax],xmm7 - movaps XMMWORD[(-40-64)+rax],xmm8 - movaps XMMWORD[(-40-48)+rax],xmm9 - movaps XMMWORD[(-40-32)+rax],xmm10 - movaps XMMWORD[(-40-16)+rax],xmm11 + movaps XMMWORD[(-40-96)+r11],xmm6 + movaps XMMWORD[(-40-80)+r11],xmm7 + movaps XMMWORD[(-40-64)+r11],xmm8 + movaps XMMWORD[(-40-48)+r11],xmm9 + movaps XMMWORD[(-40-32)+r11],xmm10 + movaps XMMWORD[(-40-16)+r11],xmm11 $L$prologue_ssse3: - mov r14,rax and rsp,-64 mov r8,rdi mov r9,rsi @@ -1480,7 +1504,7 @@ $L$prologue_ssse3: shl r10,6 add r10,r9 - lea r11,[((K_XX_XX+64))] + lea r14,[((K_XX_XX+64))] mov eax,DWORD[r8] mov ebx,DWORD[4+r8] @@ -1492,8 +1516,8 @@ $L$prologue_ssse3: xor edi,edx and esi,edi - movdqa xmm6,XMMWORD[64+r11] - movdqa xmm9,XMMWORD[((-64))+r11] + movdqa xmm6,XMMWORD[64+r14] + movdqa xmm9,XMMWORD[((-64))+r14] movdqu xmm0,XMMWORD[r9] movdqu xmm1,XMMWORD[16+r9] movdqu xmm2,XMMWORD[32+r9] @@ -1569,7 +1593,7 @@ $L$oop_ssse3: pslld xmm9,2 pxor xmm4,xmm10 xor edx,ebp - movdqa xmm10,XMMWORD[((-64))+r11] + movdqa xmm10,XMMWORD[((-64))+r14] rol ecx,5 add ebx,edi and esi,edx @@ -1630,7 +1654,7 @@ $L$oop_ssse3: pslld xmm10,2 pxor xmm5,xmm8 xor ebp,eax - movdqa xmm8,XMMWORD[((-32))+r11] + movdqa xmm8,XMMWORD[((-32))+r14] rol edx,5 add ecx,edi and esi,ebp @@ -1691,7 +1715,7 @@ $L$oop_ssse3: pslld xmm8,2 pxor xmm6,xmm9 xor eax,ebx - movdqa xmm9,XMMWORD[((-32))+r11] + movdqa xmm9,XMMWORD[((-32))+r14] rol ebp,5 add edx,edi and esi,eax @@ -1752,7 +1776,7 @@ $L$oop_ssse3: pslld xmm9,2 pxor xmm7,xmm10 xor ebx,ecx - movdqa xmm10,XMMWORD[((-32))+r11] + movdqa xmm10,XMMWORD[((-32))+r14] rol eax,5 add ebp,edi and esi,ebx @@ -1863,7 +1887,7 @@ $L$oop_ssse3: pxor xmm2,xmm3 add eax,esi xor edi,edx - movdqa xmm10,XMMWORD[r11] + movdqa xmm10,XMMWORD[r14] ror ecx,7 paddd xmm9,xmm1 add eax,ebx @@ -2098,7 +2122,7 @@ $L$oop_ssse3: pxor xmm7,xmm0 rol ebx,5 add eax,esi - movdqa xmm9,XMMWORD[32+r11] + movdqa xmm9,XMMWORD[32+r14] xor edi,ecx paddd xmm8,xmm6 xor ecx,edx @@ -2389,8 +2413,8 @@ $L$oop_ssse3: add ecx,edx cmp r9,r10 je NEAR $L$done_ssse3 - movdqa xmm6,XMMWORD[64+r11] - movdqa xmm9,XMMWORD[((-64))+r11] + movdqa xmm6,XMMWORD[64+r14] + movdqa xmm9,XMMWORD[((-64))+r14] movdqu xmm0,XMMWORD[r9] movdqu xmm1,XMMWORD[16+r9] movdqu xmm2,XMMWORD[32+r9] @@ -2627,23 +2651,29 @@ $L$done_ssse3: mov DWORD[8+r8],ecx mov DWORD[12+r8],edx mov DWORD[16+r8],ebp - movaps xmm6,XMMWORD[((-40-96))+r14] - movaps xmm7,XMMWORD[((-40-80))+r14] - movaps xmm8,XMMWORD[((-40-64))+r14] - movaps xmm9,XMMWORD[((-40-48))+r14] - movaps xmm10,XMMWORD[((-40-32))+r14] - movaps xmm11,XMMWORD[((-40-16))+r14] - lea rsi,[r14] - mov r14,QWORD[((-40))+rsi] - mov r13,QWORD[((-32))+rsi] - mov r12,QWORD[((-24))+rsi] - mov rbp,QWORD[((-16))+rsi] - mov rbx,QWORD[((-8))+rsi] - lea rsp,[rsi] + movaps xmm6,XMMWORD[((-40-96))+r11] + movaps xmm7,XMMWORD[((-40-80))+r11] + movaps xmm8,XMMWORD[((-40-64))+r11] + movaps xmm9,XMMWORD[((-40-48))+r11] + movaps xmm10,XMMWORD[((-40-32))+r11] + movaps xmm11,XMMWORD[((-40-16))+r11] + mov r14,QWORD[((-40))+r11] + + mov r13,QWORD[((-32))+r11] + + mov r12,QWORD[((-24))+r11] + + mov rbp,QWORD[((-16))+r11] + + mov rbx,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$epilogue_ssse3: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_block_data_order_ssse3: ALIGN 16 @@ -2658,22 +2688,28 @@ $L$SEH_begin_sha1_block_data_order_avx: _avx_shortcut: - mov rax,rsp + + mov r11,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + lea rsp,[((-160))+rsp] vzeroupper - vmovaps XMMWORD[(-40-96)+rax],xmm6 - vmovaps XMMWORD[(-40-80)+rax],xmm7 - vmovaps XMMWORD[(-40-64)+rax],xmm8 - vmovaps XMMWORD[(-40-48)+rax],xmm9 - vmovaps XMMWORD[(-40-32)+rax],xmm10 - vmovaps XMMWORD[(-40-16)+rax],xmm11 + vmovaps XMMWORD[(-40-96)+r11],xmm6 + vmovaps XMMWORD[(-40-80)+r11],xmm7 + vmovaps XMMWORD[(-40-64)+r11],xmm8 + vmovaps XMMWORD[(-40-48)+r11],xmm9 + vmovaps XMMWORD[(-40-32)+r11],xmm10 + vmovaps XMMWORD[(-40-16)+r11],xmm11 $L$prologue_avx: - mov r14,rax and rsp,-64 mov r8,rdi mov r9,rsi @@ -2681,7 +2717,7 @@ $L$prologue_avx: shl r10,6 add r10,r9 - lea r11,[((K_XX_XX+64))] + lea r14,[((K_XX_XX+64))] mov eax,DWORD[r8] mov ebx,DWORD[4+r8] @@ -2693,8 +2729,8 @@ $L$prologue_avx: xor edi,edx and esi,edi - vmovdqa xmm6,XMMWORD[64+r11] - vmovdqa xmm11,XMMWORD[((-64))+r11] + vmovdqa xmm6,XMMWORD[64+r14] + vmovdqa xmm11,XMMWORD[((-64))+r14] vmovdqu xmm0,XMMWORD[r9] vmovdqu xmm1,XMMWORD[16+r9] vmovdqu xmm2,XMMWORD[32+r9] @@ -2819,7 +2855,7 @@ $L$oop_avx: vpxor xmm5,xmm5,xmm10 xor ebp,eax shld edx,edx,5 - vmovdqa xmm11,XMMWORD[((-32))+r11] + vmovdqa xmm11,XMMWORD[((-32))+r14] add ecx,edi and esi,ebp xor ebp,eax @@ -3032,7 +3068,7 @@ $L$oop_avx: add eax,esi xor edi,edx vpaddd xmm9,xmm11,xmm1 - vmovdqa xmm11,XMMWORD[r11] + vmovdqa xmm11,XMMWORD[r14] shrd ecx,ecx,7 add eax,ebx vpxor xmm2,xmm2,xmm8 @@ -3251,7 +3287,7 @@ $L$oop_avx: mov edi,ebx xor esi,edx vpaddd xmm9,xmm11,xmm6 - vmovdqa xmm11,XMMWORD[32+r11] + vmovdqa xmm11,XMMWORD[32+r14] shld ebx,ebx,5 add eax,esi vpxor xmm7,xmm7,xmm8 @@ -3530,8 +3566,8 @@ $L$oop_avx: add ecx,edx cmp r9,r10 je NEAR $L$done_avx - vmovdqa xmm6,XMMWORD[64+r11] - vmovdqa xmm11,XMMWORD[((-64))+r11] + vmovdqa xmm6,XMMWORD[64+r14] + vmovdqa xmm11,XMMWORD[((-64))+r14] vmovdqu xmm0,XMMWORD[r9] vmovdqu xmm1,XMMWORD[16+r9] vmovdqu xmm2,XMMWORD[32+r9] @@ -3767,23 +3803,29 @@ $L$done_avx: mov DWORD[8+r8],ecx mov DWORD[12+r8],edx mov DWORD[16+r8],ebp - movaps xmm6,XMMWORD[((-40-96))+r14] - movaps xmm7,XMMWORD[((-40-80))+r14] - movaps xmm8,XMMWORD[((-40-64))+r14] - movaps xmm9,XMMWORD[((-40-48))+r14] - movaps xmm10,XMMWORD[((-40-32))+r14] - movaps xmm11,XMMWORD[((-40-16))+r14] - lea rsi,[r14] - mov r14,QWORD[((-40))+rsi] - mov r13,QWORD[((-32))+rsi] - mov r12,QWORD[((-24))+rsi] - mov rbp,QWORD[((-16))+rsi] - mov rbx,QWORD[((-8))+rsi] - lea rsp,[rsi] + movaps xmm6,XMMWORD[((-40-96))+r11] + movaps xmm7,XMMWORD[((-40-80))+r11] + movaps xmm8,XMMWORD[((-40-64))+r11] + movaps xmm9,XMMWORD[((-40-48))+r11] + movaps xmm10,XMMWORD[((-40-32))+r11] + movaps xmm11,XMMWORD[((-40-16))+r11] + mov r14,QWORD[((-40))+r11] + + mov r13,QWORD[((-32))+r11] + + mov r12,QWORD[((-24))+r11] + + mov rbp,QWORD[((-16))+r11] + + mov rbx,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_block_data_order_avx: ALIGN 16 @@ -3798,22 +3840,28 @@ $L$SEH_begin_sha1_block_data_order_avx2: _avx2_shortcut: - mov rax,rsp + + mov r11,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + vzeroupper lea rsp,[((-96))+rsp] - vmovaps XMMWORD[(-40-96)+rax],xmm6 - vmovaps XMMWORD[(-40-80)+rax],xmm7 - vmovaps XMMWORD[(-40-64)+rax],xmm8 - vmovaps XMMWORD[(-40-48)+rax],xmm9 - vmovaps XMMWORD[(-40-32)+rax],xmm10 - vmovaps XMMWORD[(-40-16)+rax],xmm11 + vmovaps XMMWORD[(-40-96)+r11],xmm6 + vmovaps XMMWORD[(-40-80)+r11],xmm7 + vmovaps XMMWORD[(-40-64)+r11],xmm8 + vmovaps XMMWORD[(-40-48)+r11],xmm9 + vmovaps XMMWORD[(-40-32)+r11],xmm10 + vmovaps XMMWORD[(-40-16)+r11],xmm11 $L$prologue_avx2: - mov r14,rax mov r8,rdi mov r9,rsi mov r10,rdx @@ -3823,7 +3871,7 @@ $L$prologue_avx2: lea r13,[64+r9] and rsp,-128 add r10,r9 - lea r11,[((K_XX_XX+64))] + lea r14,[((K_XX_XX+64))] mov eax,DWORD[r8] cmp r13,r10 @@ -3832,7 +3880,7 @@ $L$prologue_avx2: mov ecx,DWORD[8+r8] mov edx,DWORD[12+r8] mov esi,DWORD[16+r8] - vmovdqu ymm6,YMMWORD[64+r11] + vmovdqu ymm6,YMMWORD[64+r14] vmovdqu xmm0,XMMWORD[r9] vmovdqu xmm1,XMMWORD[16+r9] @@ -3846,7 +3894,7 @@ $L$prologue_avx2: vpshufb ymm1,ymm1,ymm6 vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 vpshufb ymm2,ymm2,ymm6 - vmovdqu ymm11,YMMWORD[((-64))+r11] + vmovdqu ymm11,YMMWORD[((-64))+r14] vpshufb ymm3,ymm3,ymm6 vpaddd ymm4,ymm0,ymm11 @@ -3878,7 +3926,7 @@ $L$prologue_avx2: vpxor ymm8,ymm8,ymm3 vpxor ymm5,ymm5,ymm8 vpsrld ymm8,ymm5,31 - vmovdqu ymm11,YMMWORD[((-32))+r11] + vmovdqu ymm11,YMMWORD[((-32))+r14] vpslldq ymm10,ymm5,12 vpaddd ymm5,ymm5,ymm5 vpsrld ymm9,ymm10,30 @@ -4032,7 +4080,7 @@ $L$align32_1: add ebp,DWORD[((-56))+r13] andn edi,ebx,esi vpxor ymm2,ymm2,ymm3 - vmovdqu ymm11,YMMWORD[r11] + vmovdqu ymm11,YMMWORD[r14] add ebp,ecx rorx r12d,ebx,27 rorx ecx,ebx,2 @@ -4263,7 +4311,7 @@ $L$align32_1: add eax,DWORD[((-116))+r13] lea eax,[rbx*1+rax] vpxor ymm7,ymm7,ymm0 - vmovdqu ymm11,YMMWORD[32+r11] + vmovdqu ymm11,YMMWORD[32+r14] rorx r12d,ebp,27 rorx ebx,ebp,2 xor ebp,ecx @@ -4708,7 +4756,7 @@ $L$align32_2: cmp r9,r10 je NEAR $L$done_avx2 - vmovdqu ymm6,YMMWORD[64+r11] + vmovdqu ymm6,YMMWORD[64+r14] cmp rdi,r10 ja NEAR $L$ast_avx2 @@ -4924,7 +4972,7 @@ $L$ast_avx2: xor eax,ebx add esi,r12d xor eax,ecx - vmovdqu ymm11,YMMWORD[((-64))+r11] + vmovdqu ymm11,YMMWORD[((-64))+r14] vpshufb ymm0,ymm0,ymm6 add edx,DWORD[68+r13] lea edx,[rax*1+rdx] @@ -5280,7 +5328,7 @@ $L$align32_3: xor esi,ebp add edx,r12d vpsrld ymm8,ymm5,31 - vmovdqu ymm11,YMMWORD[((-32))+r11] + vmovdqu ymm11,YMMWORD[((-32))+r14] xor esi,ebx add ecx,DWORD[104+r13] lea ecx,[rsi*1+rcx] @@ -5473,23 +5521,29 @@ $L$align32_3: $L$done_avx2: vzeroupper - movaps xmm6,XMMWORD[((-40-96))+r14] - movaps xmm7,XMMWORD[((-40-80))+r14] - movaps xmm8,XMMWORD[((-40-64))+r14] - movaps xmm9,XMMWORD[((-40-48))+r14] - movaps xmm10,XMMWORD[((-40-32))+r14] - movaps xmm11,XMMWORD[((-40-16))+r14] - lea rsi,[r14] - mov r14,QWORD[((-40))+rsi] - mov r13,QWORD[((-32))+rsi] - mov r12,QWORD[((-24))+rsi] - mov rbp,QWORD[((-16))+rsi] - mov rbx,QWORD[((-8))+rsi] - lea rsp,[rsi] + movaps xmm6,XMMWORD[((-40-96))+r11] + movaps xmm7,XMMWORD[((-40-80))+r11] + movaps xmm8,XMMWORD[((-40-64))+r11] + movaps xmm9,XMMWORD[((-40-48))+r11] + movaps xmm10,XMMWORD[((-40-32))+r11] + movaps xmm11,XMMWORD[((-40-16))+r11] + mov r14,QWORD[((-40))+r11] + + mov r13,QWORD[((-32))+r11] + + mov r12,QWORD[((-24))+r11] + + mov rbp,QWORD[((-16))+r11] + + mov rbx,QWORD[((-8))+r11] + + lea rsp,[r11] + $L$epilogue_avx2: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha1_block_data_order_avx2: ALIGN 64 K_XX_XX: @@ -5610,15 +5664,13 @@ ssse3_handler: cmp rbx,r10 jb NEAR $L$common_seh_tail - mov rax,QWORD[152+r8] + mov rax,QWORD[208+r8] mov r10d,DWORD[4+r11] lea r10,[r10*1+rsi] cmp rbx,r10 jae NEAR $L$common_seh_tail - mov rax,QWORD[232+r8] - lea rsi,[((-40-96))+rax] lea rdi,[512+r8] mov ecx,12 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm index 9efc2ad7f0..f0754004b2 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm @@ -20,14 +20,18 @@ $L$SEH_begin_sha256_multi_block: mov rdx,r8 + mov rcx,QWORD[((OPENSSL_ia32cap_P+4))] bt rcx,61 jc NEAR _shaext_shortcut test ecx,268435456 jnz NEAR _avx_shortcut mov rax,rsp + push rbx + push rbp + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -42,6 +46,7 @@ $L$SEH_begin_sha256_multi_block: sub rsp,288 and rsp,-256 mov QWORD[272+rsp],rax + $L$body: lea rbp,[((K256+128))] lea rbx,[256+rsp] @@ -2640,6 +2645,7 @@ $L$oop_16_xx: $L$done: mov rax,QWORD[272+rsp] + movaps xmm6,XMMWORD[((-184))+rax] movaps xmm7,XMMWORD[((-168))+rax] movaps xmm8,XMMWORD[((-152))+rax] @@ -2651,12 +2657,16 @@ $L$done: movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_multi_block: ALIGN 32 @@ -2670,10 +2680,14 @@ $L$SEH_begin_sha256_multi_block_shaext: mov rdx,r8 + _shaext_shortcut: mov rax,rsp + push rbx + push rbp + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -3169,12 +3183,16 @@ $L$done_shaext: movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue_shaext: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_multi_block_shaext: ALIGN 32 @@ -3188,6 +3206,7 @@ $L$SEH_begin_sha256_multi_block_avx: mov rdx,r8 + _avx_shortcut: shr rcx,32 cmp edx,2 @@ -3198,8 +3217,11 @@ _avx_shortcut: ALIGN 32 $L$avx: mov rax,rsp + push rbx + push rbp + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -3214,6 +3236,7 @@ $L$avx: sub rsp,288 and rsp,-256 mov QWORD[272+rsp],rax + $L$body_avx: lea rbp,[((K256+128))] lea rbx,[256+rsp] @@ -5442,6 +5465,7 @@ $L$oop_16_xx_avx: $L$done_avx: mov rax,QWORD[272+rsp] + vzeroupper movaps xmm6,XMMWORD[((-184))+rax] movaps xmm7,XMMWORD[((-168))+rax] @@ -5454,12 +5478,16 @@ $L$done_avx: movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_multi_block_avx: ALIGN 32 @@ -5473,14 +5501,22 @@ $L$SEH_begin_sha256_multi_block_avx2: mov rdx,r8 + _avx2_shortcut: mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -5495,6 +5531,7 @@ _avx2_shortcut: sub rsp,576 and rsp,-256 mov QWORD[544+rsp],rax + $L$body_avx2: lea rbp,[((K256+128))] lea rdi,[128+rdi] @@ -7859,6 +7896,7 @@ $L$oop_16_xx_avx2: $L$done_avx2: mov rax,QWORD[544+rsp] + vzeroupper movaps xmm6,XMMWORD[((-216))+rax] movaps xmm7,XMMWORD[((-200))+rax] @@ -7871,16 +7909,24 @@ $L$done_avx2: movaps xmm14,XMMWORD[((-88))+rax] movaps xmm15,XMMWORD[((-72))+rax] mov r15,QWORD[((-48))+rax] + mov r14,QWORD[((-40))+rax] + mov r13,QWORD[((-32))+rax] + mov r12,QWORD[((-24))+rax] + mov rbp,QWORD[((-16))+rax] + mov rbx,QWORD[((-8))+rax] + lea rsp,[rax] + $L$epilogue_avx2: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_multi_block_avx2: ALIGN 256 K256: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm index 31a5279fc3..fc102444ff 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm @@ -19,6 +19,7 @@ $L$SEH_begin_sha256_block_data_order: mov rdx,r8 + lea r11,[OPENSSL_ia32cap_P] mov r9d,DWORD[r11] mov r10d,DWORD[4+r11] @@ -35,13 +36,20 @@ $L$SEH_begin_sha256_block_data_order: je NEAR $L$avx_shortcut test r10d,512 jnz NEAR $L$ssse3_shortcut + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + shl rdx,4 sub rsp,16*4+4*8 lea rdx,[rdx*4+rsi] @@ -49,7 +57,8 @@ $L$SEH_begin_sha256_block_data_order: mov QWORD[((64+0))+rsp],rdi mov QWORD[((64+8))+rsp],rsi mov QWORD[((64+16))+rsp],rdx - mov QWORD[((64+24))+rsp],r11 + mov QWORD[88+rsp],rax + $L$prologue: mov eax,DWORD[rdi] @@ -1713,18 +1722,27 @@ $L$rounds_16_xx: mov DWORD[28+rdi],r11d jb NEAR $L$loop - mov rsi,QWORD[((64+24))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov rsi,QWORD[88+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_block_data_order: ALIGN 64 @@ -2017,14 +2035,22 @@ $L$SEH_begin_sha256_block_data_order_ssse3: mov rdx,r8 + $L$ssse3_shortcut: + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + shl rdx,4 sub rsp,160 lea rdx,[rdx*4+rsi] @@ -2032,7 +2058,8 @@ $L$ssse3_shortcut: mov QWORD[((64+0))+rsp],rdi mov QWORD[((64+8))+rsp],rsi mov QWORD[((64+16))+rsp],rdx - mov QWORD[((64+24))+rsp],r11 + mov QWORD[88+rsp],rax + movaps XMMWORD[(64+32)+rsp],xmm6 movaps XMMWORD[(64+48)+rsp],xmm7 movaps XMMWORD[(64+64)+rsp],xmm8 @@ -3102,22 +3129,31 @@ DB 102,15,58,15,249,4 mov DWORD[28+rdi],r11d jb NEAR $L$loop_ssse3 - mov rsi,QWORD[((64+24))+rsp] + mov rsi,QWORD[88+rsp] + movaps xmm6,XMMWORD[((64+32))+rsp] movaps xmm7,XMMWORD[((64+48))+rsp] movaps xmm8,XMMWORD[((64+64))+rsp] movaps xmm9,XMMWORD[((64+80))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_ssse3: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_block_data_order_ssse3: ALIGN 64 @@ -3131,14 +3167,22 @@ $L$SEH_begin_sha256_block_data_order_avx: mov rdx,r8 + $L$avx_shortcut: + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + shl rdx,4 sub rsp,160 lea rdx,[rdx*4+rsi] @@ -3146,7 +3190,8 @@ $L$avx_shortcut: mov QWORD[((64+0))+rsp],rdi mov QWORD[((64+8))+rsp],rsi mov QWORD[((64+16))+rsp],rdx - mov QWORD[((64+24))+rsp],r11 + mov QWORD[88+rsp],rax + movaps XMMWORD[(64+32)+rsp],xmm6 movaps XMMWORD[(64+48)+rsp],xmm7 movaps XMMWORD[(64+64)+rsp],xmm8 @@ -4177,23 +4222,32 @@ $L$avx_00_47: mov DWORD[28+rdi],r11d jb NEAR $L$loop_avx - mov rsi,QWORD[((64+24))+rsp] + mov rsi,QWORD[88+rsp] + vzeroupper movaps xmm6,XMMWORD[((64+32))+rsp] movaps xmm7,XMMWORD[((64+48))+rsp] movaps xmm8,XMMWORD[((64+64))+rsp] movaps xmm9,XMMWORD[((64+80))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_block_data_order_avx: ALIGN 64 @@ -4207,14 +4261,22 @@ $L$SEH_begin_sha256_block_data_order_avx2: mov rdx,r8 + $L$avx2_shortcut: + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + sub rsp,608 shl rdx,4 and rsp,-256*4 @@ -4223,7 +4285,8 @@ $L$avx2_shortcut: mov QWORD[((64+0))+rsp],rdi mov QWORD[((64+8))+rsp],rsi mov QWORD[((64+16))+rsp],rdx - mov QWORD[((64+24))+rsp],r11 + mov QWORD[88+rsp],rax + movaps XMMWORD[(64+32)+rsp],xmm6 movaps XMMWORD[(64+48)+rsp],xmm7 movaps XMMWORD[(64+64)+rsp],xmm8 @@ -5440,23 +5503,32 @@ $L$ower_avx2: $L$done_avx2: lea rsp,[rbp] - mov rsi,QWORD[((64+24))+rsp] + mov rsi,QWORD[88+rsp] + vzeroupper movaps xmm6,XMMWORD[((64+32))+rsp] movaps xmm7,XMMWORD[((64+48))+rsp] movaps xmm8,XMMWORD[((64+64))+rsp] movaps xmm9,XMMWORD[((64+80))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_avx2: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha256_block_data_order_avx2: EXTERN __imp_RtlVirtualUnwind @@ -5499,7 +5571,6 @@ se_handler: $L$not_in_avx2: mov rsi,rax mov rax,QWORD[((64+24))+rax] - lea rax,[48+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm index 0e99bed5a7..1a9935d7b6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm @@ -19,6 +19,7 @@ $L$SEH_begin_sha512_block_data_order: mov rdx,r8 + lea r11,[OPENSSL_ia32cap_P] mov r9d,DWORD[r11] mov r10d,DWORD[4+r11] @@ -33,13 +34,20 @@ $L$SEH_begin_sha512_block_data_order: or r10d,r9d cmp r10d,1342177792 je NEAR $L$avx_shortcut + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + shl rdx,4 sub rsp,16*8+4*8 lea rdx,[rdx*8+rsi] @@ -47,7 +55,8 @@ $L$SEH_begin_sha512_block_data_order: mov QWORD[((128+0))+rsp],rdi mov QWORD[((128+8))+rsp],rsi mov QWORD[((128+16))+rsp],rdx - mov QWORD[((128+24))+rsp],r11 + mov QWORD[152+rsp],rax + $L$prologue: mov rax,QWORD[rdi] @@ -1711,18 +1720,27 @@ $L$rounds_16_xx: mov QWORD[56+rdi],r11 jb NEAR $L$loop - mov rsi,QWORD[((128+24))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov rsi,QWORD[152+rsp] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha512_block_data_order: ALIGN 64 @@ -1827,14 +1845,22 @@ $L$SEH_begin_sha512_block_data_order_xop: mov rdx,r8 + $L$xop_shortcut: + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + shl rdx,4 sub rsp,256 lea rdx,[rdx*8+rsi] @@ -1842,7 +1868,8 @@ $L$xop_shortcut: mov QWORD[((128+0))+rsp],rdi mov QWORD[((128+8))+rsp],rsi mov QWORD[((128+16))+rsp],rdx - mov QWORD[((128+24))+rsp],r11 + mov QWORD[152+rsp],rax + movaps XMMWORD[(128+32)+rsp],xmm6 movaps XMMWORD[(128+48)+rsp],xmm7 movaps XMMWORD[(128+64)+rsp],xmm8 @@ -2901,7 +2928,8 @@ DB 143,72,120,195,203,42 mov QWORD[56+rdi],r11 jb NEAR $L$loop_xop - mov rsi,QWORD[((128+24))+rsp] + mov rsi,QWORD[152+rsp] + vzeroupper movaps xmm6,XMMWORD[((128+32))+rsp] movaps xmm7,XMMWORD[((128+48))+rsp] @@ -2909,17 +2937,25 @@ DB 143,72,120,195,203,42 movaps xmm9,XMMWORD[((128+80))+rsp] movaps xmm10,XMMWORD[((128+96))+rsp] movaps xmm11,XMMWORD[((128+112))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_xop: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha512_block_data_order_xop: ALIGN 64 @@ -2933,14 +2969,22 @@ $L$SEH_begin_sha512_block_data_order_avx: mov rdx,r8 + $L$avx_shortcut: + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + shl rdx,4 sub rsp,256 lea rdx,[rdx*8+rsi] @@ -2948,7 +2992,8 @@ $L$avx_shortcut: mov QWORD[((128+0))+rsp],rdi mov QWORD[((128+8))+rsp],rsi mov QWORD[((128+16))+rsp],rdx - mov QWORD[((128+24))+rsp],r11 + mov QWORD[152+rsp],rax + movaps XMMWORD[(128+32)+rsp],xmm6 movaps XMMWORD[(128+48)+rsp],xmm7 movaps XMMWORD[(128+64)+rsp],xmm8 @@ -4071,7 +4116,8 @@ $L$avx_00_47: mov QWORD[56+rdi],r11 jb NEAR $L$loop_avx - mov rsi,QWORD[((128+24))+rsp] + mov rsi,QWORD[152+rsp] + vzeroupper movaps xmm6,XMMWORD[((128+32))+rsp] movaps xmm7,XMMWORD[((128+48))+rsp] @@ -4079,17 +4125,25 @@ $L$avx_00_47: movaps xmm9,XMMWORD[((128+80))+rsp] movaps xmm10,XMMWORD[((128+96))+rsp] movaps xmm11,XMMWORD[((128+112))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_avx: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha512_block_data_order_avx: ALIGN 64 @@ -4103,14 +4157,22 @@ $L$SEH_begin_sha512_block_data_order_avx2: mov rdx,r8 + $L$avx2_shortcut: + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + sub rsp,1408 shl rdx,4 and rsp,-256*8 @@ -4119,7 +4181,8 @@ $L$avx2_shortcut: mov QWORD[((128+0))+rsp],rdi mov QWORD[((128+8))+rsp],rsi mov QWORD[((128+16))+rsp],rdx - mov QWORD[((128+24))+rsp],r11 + mov QWORD[152+rsp],rax + movaps XMMWORD[(128+32)+rsp],xmm6 movaps XMMWORD[(128+48)+rsp],xmm7 movaps XMMWORD[(128+64)+rsp],xmm8 @@ -5432,7 +5495,8 @@ $L$ower_avx2: $L$done_avx2: lea rsp,[rbp] - mov rsi,QWORD[((128+24))+rsp] + mov rsi,QWORD[152+rsp] + vzeroupper movaps xmm6,XMMWORD[((128+32))+rsp] movaps xmm7,XMMWORD[((128+48))+rsp] @@ -5440,17 +5504,25 @@ $L$done_avx2: movaps xmm9,XMMWORD[((128+80))+rsp] movaps xmm10,XMMWORD[((128+96))+rsp] movaps xmm11,XMMWORD[((128+112))+rsp] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue_avx2: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_sha512_block_data_order_avx2: EXTERN __imp_RtlVirtualUnwind @@ -5493,7 +5565,6 @@ se_handler: $L$not_in_avx2: mov rsi,rax mov rax,QWORD[((128+24))+rax] - lea rax,[48+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm index 065697e58d..76f7b07678 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm @@ -18,14 +18,22 @@ $L$SEH_begin_whirlpool_block: mov rdx,r8 + + mov rax,rsp + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 - mov r11,rsp + sub rsp,128+40 and rsp,-64 @@ -33,7 +41,8 @@ $L$SEH_begin_whirlpool_block: mov QWORD[r10],rdi mov QWORD[8+r10],rsi mov QWORD[16+r10],rdx - mov QWORD[32+r10],r11 + mov QWORD[32+r10],rax + $L$prologue: mov rbx,r10 @@ -593,17 +602,26 @@ $L$roundsdone: jmp NEAR $L$outerloop $L$alldone: mov rsi,QWORD[32+rbx] - mov r15,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r13,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - mov rbp,QWORD[32+rsi] - mov rbx,QWORD[40+rsi] - lea rsp,[48+rsi] + + mov r15,QWORD[((-48))+rsi] + + mov r14,QWORD[((-40))+rsi] + + mov r13,QWORD[((-32))+rsi] + + mov r12,QWORD[((-24))+rsi] + + mov rbp,QWORD[((-16))+rsi] + + mov rbx,QWORD[((-8))+rsi] + + lea rsp,[rsi] + $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_whirlpool_block: ALIGN 64 @@ -904,7 +922,6 @@ se_handler: jae NEAR $L$in_prologue mov rax,QWORD[((128+32))+rax] - lea rax,[48+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm index 2aede40d9e..e2fec12d22 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm @@ -48,10 +48,12 @@ $L$SEH_begin_OPENSSL_ia32_cpuid: mov rdi,rcx + mov r8,rbx + xor eax,eax - mov DWORD[8+rdi],eax + mov QWORD[8+rdi],rax cpuid mov r11d,eax @@ -122,6 +124,7 @@ $L$intel: $L$nocacheinfo: mov eax,1 cpuid + movd xmm0,eax and edx,0xbfefffff cmp r9d,0 jne NEAR $L$notintel @@ -169,28 +172,47 @@ $L$generic: jc NEAR $L$notknights and ebx,0xfff7ffff $L$notknights: + movd eax,xmm0 + and eax,0x0fff0ff0 + cmp eax,0x00050650 + jne NEAR $L$notskylakex + and ebx,0xfffeffff + +$L$notskylakex: mov DWORD[8+rdi],ebx + mov DWORD[12+rdi],ecx $L$no_extended_info: bt r9d,27 jnc NEAR $L$clear_avx xor ecx,ecx DB 0x0f,0x01,0xd0 + and eax,0xe6 + cmp eax,0xe6 + je NEAR $L$done + and DWORD[8+rdi],0x3fdeffff + + + + and eax,6 cmp eax,6 je NEAR $L$done $L$clear_avx: mov eax,0xefffe7ff and r9d,eax - and DWORD[8+rdi],0xffffffdf + mov eax,0x3fdeffdf + and DWORD[8+rdi],eax $L$done: shl r9,32 mov eax,r10d mov rbx,r8 + or rax,r9 mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_OPENSSL_ia32_cpuid: global OPENSSL_cleanse @@ -236,6 +258,18 @@ CRYPTO_memcmp: xor r10,r10 cmp r8,0 je NEAR $L$no_data + cmp r8,16 + jne NEAR $L$oop_cmp + mov r10,QWORD[rcx] + mov r11,QWORD[8+rcx] + mov r8,1 + xor r10,QWORD[rdx] + xor r11,QWORD[8+rdx] + or r10,r11 + cmovnz rax,r8 + DB 0F3h,0C3h ;repret + +ALIGN 16 $L$oop_cmp: mov r10b,BYTE[rcx] lea rcx,[1+rcx] @@ -347,21 +381,6 @@ $L$done2: sub rax,rcx DB 0F3h,0C3h ;repret -global OPENSSL_ia32_rdrand - -ALIGN 16 -OPENSSL_ia32_rdrand: - mov ecx,8 -$L$oop_rdrand: -DB 72,15,199,240 - jc NEAR $L$break_rdrand - loop $L$oop_rdrand -$L$break_rdrand: - cmp rax,0 - cmove rax,rcx - DB 0F3h,0C3h ;repret - - global OPENSSL_ia32_rdrand_bytes ALIGN 16 @@ -395,28 +414,14 @@ $L$tail_rdrand_bytes: mov BYTE[rcx],r10b lea rcx,[1+rcx] inc rax - shr r8,8 + shr r10,8 dec rdx jnz NEAR $L$tail_rdrand_bytes $L$done_rdrand_bytes: + xor r10,r10 DB 0F3h,0C3h ;repret -global OPENSSL_ia32_rdseed - -ALIGN 16 -OPENSSL_ia32_rdseed: - mov ecx,8 -$L$oop_rdseed: -DB 72,15,199,248 - jc NEAR $L$break_rdseed - loop $L$oop_rdseed -$L$break_rdseed: - cmp rax,0 - cmove rax,rcx - DB 0F3h,0C3h ;repret - - global OPENSSL_ia32_rdseed_bytes ALIGN 16 @@ -450,10 +455,11 @@ $L$tail_rdseed_bytes: mov BYTE[rcx],r10b lea rcx,[1+rcx] inc rax - shr r8,8 + shr r10,8 dec rdx jnz NEAR $L$tail_rdseed_bytes $L$done_rdseed_bytes: + xor r10,r10 DB 0F3h,0C3h ;repret diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/engines/e_padlock-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/engines/e_padlock-x86_64.asm index 1cb48eaf29..526b56f3bd 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/engines/e_padlock-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/engines/e_padlock-x86_64.asm @@ -13,11 +13,20 @@ padlock_capability: cpuid xor eax,eax cmp ebx,0x746e6543 - jne NEAR $L$noluck + jne NEAR $L$zhaoxin cmp edx,0x48727561 jne NEAR $L$noluck cmp ecx,0x736c7561 jne NEAR $L$noluck + jmp NEAR $L$zhaoxinEnd +$L$zhaoxin: + cmp ebx,0x68532020 + jne NEAR $L$noluck + cmp edx,0x68676e61 + jne NEAR $L$noluck + cmp ecx,0x20206961 + jne NEAR $L$noluck +$L$zhaoxinEnd: mov eax,0xC0000000 cpuid mov edx,eax diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h index fd1ca5612f..b1aa3bbf9c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include <openssl/opensslv.h> + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h index 6f7ebc3cd6..0d382187ba 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, -#endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, -#endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, -#endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, #endif - { 0, NULL, NULL} + {0, NULL, NULL} }; #endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi index 7e79976cde..0a53962526 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi @@ -1,11 +1,15 @@ { 'variables': { 'openssl_defines_VC-WIN64A': [ - 'DSO_WIN32', 'NDEBUG', - 'OPENSSL_THREADS', - 'OPENSSL_NO_DYNAMIC_ENGINE', + 'OPENSSL_SYS_WIN32', + 'WIN32_LEAN_AND_MEAN', + 'UNICODE', + '_UNICODE', + '_CRT_SECURE_NO_DEPRECATE', + '_WINSOCK_DEPRECATED_NO_WARNINGS', 'OPENSSL_PIC', + 'OPENSSL_CPUID_OBJ', 'OPENSSL_IA32_SSE2', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_BN_ASM_MONT5', @@ -13,6 +17,7 @@ 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'KECCAK1600_ASM', 'RC4_ASM', 'MD5_ASM', 'AES_ASM', @@ -20,18 +25,20 @@ 'BSAES_ASM', 'GHASH_ASM', 'ECP_NISTZ256_ASM', + 'X25519_ASM', 'PADLOCK_ASM', 'POLY1305_ASM', ], 'openssl_cflags_VC-WIN64A': [ - '-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DUNICODE -D_UNICODE /O2', + '-Wa,--noexecstack', + '/W3 /wd4090 /nologo /O2', + '/Gs0 /GF /Gy', + '/W3 /wd4090 /nologo /O2', ], 'openssl_ex_libs_VC-WIN64A': [ 'ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib', ], 'openssl_cli_srcs_VC-WIN64A': [ - 'openssl/apps/app_rand.c', - 'openssl/apps/apps.c', 'openssl/apps/asn1pars.c', 'openssl/apps/ca.c', 'openssl/apps/ciphers.c', @@ -53,7 +60,6 @@ 'openssl/apps/nseq.c', 'openssl/apps/ocsp.c', 'openssl/apps/openssl.c', - 'openssl/apps/opt.c', 'openssl/apps/passwd.c', 'openssl/apps/pkcs12.c', 'openssl/apps/pkcs7.c', @@ -67,21 +73,26 @@ 'openssl/apps/req.c', 'openssl/apps/rsa.c', 'openssl/apps/rsautl.c', - 'openssl/apps/s_cb.c', 'openssl/apps/s_client.c', 'openssl/apps/s_server.c', - 'openssl/apps/s_socket.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', 'openssl/apps/srp.c', + 'openssl/apps/storeutl.c', 'openssl/apps/ts.c', 'openssl/apps/verify.c', 'openssl/apps/version.c', - 'openssl/apps/win32_init.c', 'openssl/apps/x509.c', + 'openssl/apps/app_rand.c', + 'openssl/apps/apps.c', + 'openssl/apps/bf_prefix.c', + 'openssl/apps/opt.c', + 'openssl/apps/s_cb.c', + 'openssl/apps/s_socket.c', + 'openssl/apps/win32_init.c', ], }, 'defines': ['<@(openssl_defines_VC-WIN64A)'], diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi index 1924b0294f..76c33a9a07 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi @@ -6,12 +6,14 @@ 'openssl/ssl/d1_msg.c', 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', + 'openssl/ssl/packet.c', 'openssl/ssl/pqueue.c', 'openssl/ssl/record/dtls1_bitmap.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', 'openssl/ssl/record/ssl3_buffer.c', 'openssl/ssl/record/ssl3_record.c', + 'openssl/ssl/record/ssl3_record_tls13.c', 'openssl/ssl/s3_cbc.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', @@ -29,16 +31,19 @@ 'openssl/ssl/ssl_stat.c', 'openssl/ssl/ssl_txt.c', 'openssl/ssl/ssl_utst.c', + 'openssl/ssl/statem/extensions.c', + 'openssl/ssl/statem/extensions_clnt.c', + 'openssl/ssl/statem/extensions_cust.c', + 'openssl/ssl/statem/extensions_srvr.c', 'openssl/ssl/statem/statem.c', 'openssl/ssl/statem/statem_clnt.c', 'openssl/ssl/statem/statem_dtls.c', 'openssl/ssl/statem/statem_lib.c', 'openssl/ssl/statem/statem_srvr.c', 'openssl/ssl/t1_enc.c', - 'openssl/ssl/t1_ext.c', 'openssl/ssl/t1_lib.c', - 'openssl/ssl/t1_reneg.c', 'openssl/ssl/t1_trce.c', + 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_srp.c', 'openssl/crypto/aes/aes_cfb.c', 'openssl/crypto/aes/aes_ecb.c', @@ -46,6 +51,7 @@ 'openssl/crypto/aes/aes_misc.c', 'openssl/crypto/aes/aes_ofb.c', 'openssl/crypto/aes/aes_wrap.c', + 'openssl/crypto/aria/aria.c', 'openssl/crypto/asn1/a_bitstr.c', 'openssl/crypto/asn1/a_d2i_fp.c', 'openssl/crypto/asn1/a_digest.c', @@ -68,6 +74,7 @@ 'openssl/crypto/asn1/ameth_lib.c', 'openssl/crypto/asn1/asn1_err.c', 'openssl/crypto/asn1/asn1_gen.c', + 'openssl/crypto/asn1/asn1_item_list.c', 'openssl/crypto/asn1/asn1_lib.c', 'openssl/crypto/asn1/asn1_par.c', 'openssl/crypto/asn1/asn_mime.c', @@ -228,6 +235,7 @@ 'openssl/crypto/ct/ct_sct_ctx.c', 'openssl/crypto/ct/ct_vfy.c', 'openssl/crypto/ct/ct_x509v3.c', + 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', 'openssl/crypto/des/cbc_cksm.c', 'openssl/crypto/des/cbc_enc.c', @@ -245,7 +253,6 @@ 'openssl/crypto/des/pcbc_enc.c', 'openssl/crypto/des/qud_cksm.c', 'openssl/crypto/des/rand_key.c', - 'openssl/crypto/des/rpc_enc.c', 'openssl/crypto/des/set_key.c', 'openssl/crypto/des/str2key.c', 'openssl/crypto/des/xcbc_enc.c', @@ -262,6 +269,7 @@ 'openssl/crypto/dh/dh_pmeth.c', 'openssl/crypto/dh/dh_prn.c', 'openssl/crypto/dh/dh_rfc5114.c', + 'openssl/crypto/dh/dh_rfc7919.c', 'openssl/crypto/dsa/dsa_ameth.c', 'openssl/crypto/dsa/dsa_asn1.c', 'openssl/crypto/dsa/dsa_depr.c', @@ -284,7 +292,12 @@ 'openssl/crypto/dso/dso_win32.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ec/curve25519.c', - 'openssl/crypto/ec/ec2_mult.c', + 'openssl/crypto/ec/curve448/arch_32/f_impl.c', + 'openssl/crypto/ec/curve448/curve448.c', + 'openssl/crypto/ec/curve448/curve448_tables.c', + 'openssl/crypto/ec/curve448/eddsa.c', + 'openssl/crypto/ec/curve448/f_generic.c', + 'openssl/crypto/ec/curve448/scalar.c', 'openssl/crypto/ec/ec2_oct.c', 'openssl/crypto/ec/ec2_smpl.c', 'openssl/crypto/ec/ec_ameth.c', @@ -318,7 +331,6 @@ 'openssl/crypto/ec/ecx_meth.c', 'openssl/crypto/engine/eng_all.c', 'openssl/crypto/engine/eng_cnf.c', - 'openssl/crypto/engine/eng_cryptodev.c', 'openssl/crypto/engine/eng_ctrl.c', 'openssl/crypto/engine/eng_dyn.c', 'openssl/crypto/engine/eng_err.c', @@ -353,6 +365,7 @@ 'openssl/crypto/evp/e_aes.c', 'openssl/crypto/evp/e_aes_cbc_hmac_sha1.c', 'openssl/crypto/evp/e_aes_cbc_hmac_sha256.c', + 'openssl/crypto/evp/e_aria.c', 'openssl/crypto/evp/e_bf.c', 'openssl/crypto/evp/e_camellia.c', 'openssl/crypto/evp/e_cast.c', @@ -367,6 +380,7 @@ 'openssl/crypto/evp/e_rc4_hmac_md5.c', 'openssl/crypto/evp/e_rc5.c', 'openssl/crypto/evp/e_seed.c', + 'openssl/crypto/evp/e_sm4.c', 'openssl/crypto/evp/e_xcbc_d.c', 'openssl/crypto/evp/encode.c', 'openssl/crypto/evp/evp_cnf.c', @@ -384,6 +398,7 @@ 'openssl/crypto/evp/m_null.c', 'openssl/crypto/evp/m_ripemd.c', 'openssl/crypto/evp/m_sha1.c', + 'openssl/crypto/evp/m_sha3.c', 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/m_wp.c', 'openssl/crypto/evp/names.c', @@ -396,10 +411,10 @@ 'openssl/crypto/evp/p_seal.c', 'openssl/crypto/evp/p_sign.c', 'openssl/crypto/evp/p_verify.c', + 'openssl/crypto/evp/pbe_scrypt.c', 'openssl/crypto/evp/pmeth_fn.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', - 'openssl/crypto/evp/scrypt.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', 'openssl/crypto/hmac/hm_ameth.c', @@ -413,6 +428,7 @@ 'openssl/crypto/init.c', 'openssl/crypto/kdf/hkdf.c', 'openssl/crypto/kdf/kdf_err.c', + 'openssl/crypto/kdf/scrypt.c', 'openssl/crypto/kdf/tls1_prf.c', 'openssl/crypto/lhash/lh_stats.c', 'openssl/crypto/lhash/lhash.c', @@ -492,7 +508,10 @@ 'openssl/crypto/pkcs7/pk7_smime.c', 'openssl/crypto/pkcs7/pkcs7err.c', 'openssl/crypto/poly1305/poly1305.c', - 'openssl/crypto/rand/md_rand.c', + 'openssl/crypto/poly1305/poly1305_ameth.c', + 'openssl/crypto/poly1305/poly1305_pmeth.c', + 'openssl/crypto/rand/drbg_ctr.c', + 'openssl/crypto/rand/drbg_lib.c', 'openssl/crypto/rand/rand_egd.c', 'openssl/crypto/rand/rand_err.c', 'openssl/crypto/rand/rand_lib.c', @@ -516,8 +535,8 @@ 'openssl/crypto/rsa/rsa_gen.c', 'openssl/crypto/rsa/rsa_lib.c', 'openssl/crypto/rsa/rsa_meth.c', + 'openssl/crypto/rsa/rsa_mp.c', 'openssl/crypto/rsa/rsa_none.c', - 'openssl/crypto/rsa/rsa_null.c', 'openssl/crypto/rsa/rsa_oaep.c', 'openssl/crypto/rsa/rsa_ossl.c', 'openssl/crypto/rsa/rsa_pk1.c', @@ -538,9 +557,25 @@ 'openssl/crypto/sha/sha1dgst.c', 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/siphash/siphash_ameth.c', + 'openssl/crypto/siphash/siphash_pmeth.c', + 'openssl/crypto/sm2/sm2_crypt.c', + 'openssl/crypto/sm2/sm2_err.c', + 'openssl/crypto/sm2/sm2_pmeth.c', + 'openssl/crypto/sm2/sm2_sign.c', + 'openssl/crypto/sm3/m_sm3.c', + 'openssl/crypto/sm3/sm3.c', + 'openssl/crypto/sm4/sm4.c', 'openssl/crypto/srp/srp_lib.c', 'openssl/crypto/srp/srp_vfy.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/store/loader_file.c', + 'openssl/crypto/store/store_err.c', + 'openssl/crypto/store/store_init.c', + 'openssl/crypto/store/store_lib.c', + 'openssl/crypto/store/store_register.c', + 'openssl/crypto/store/store_strings.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', @@ -558,6 +593,7 @@ 'openssl/crypto/txt_db/txt_db.c', 'openssl/crypto/ui/ui_err.c', 'openssl/crypto/ui/ui_lib.c', + 'openssl/crypto/ui/ui_null.c', 'openssl/crypto/ui/ui_openssl.c', 'openssl/crypto/ui/ui_util.c', 'openssl/crypto/uid.c', @@ -605,6 +641,7 @@ 'openssl/crypto/x509v3/pcy_node.c', 'openssl/crypto/x509v3/pcy_tree.c', 'openssl/crypto/x509v3/v3_addr.c', + 'openssl/crypto/x509v3/v3_admis.c', 'openssl/crypto/x509v3/v3_akey.c', 'openssl/crypto/x509v3/v3_akeya.c', 'openssl/crypto/x509v3/v3_alt.c', @@ -653,12 +690,14 @@ './config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/ec/x25519-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/rc4/rc4-md5-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/rc4/rc4-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm', @@ -669,11 +708,15 @@ './config/archs/VC-WIN64A/asm/engines/e_padlock-x86_64.asm', ], 'openssl_defines_VC-WIN64A': [ - 'DSO_WIN32', 'NDEBUG', - 'OPENSSL_THREADS', - 'OPENSSL_NO_DYNAMIC_ENGINE', + 'OPENSSL_SYS_WIN32', + 'WIN32_LEAN_AND_MEAN', + 'UNICODE', + '_UNICODE', + '_CRT_SECURE_NO_DEPRECATE', + '_WINSOCK_DEPRECATED_NO_WARNINGS', 'OPENSSL_PIC', + 'OPENSSL_CPUID_OBJ', 'OPENSSL_IA32_SSE2', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_BN_ASM_MONT5', @@ -681,6 +724,7 @@ 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'KECCAK1600_ASM', 'RC4_ASM', 'MD5_ASM', 'AES_ASM', @@ -688,11 +732,15 @@ 'BSAES_ASM', 'GHASH_ASM', 'ECP_NISTZ256_ASM', + 'X25519_ASM', 'PADLOCK_ASM', 'POLY1305_ASM', ], 'openssl_cflags_VC-WIN64A': [ - '-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DUNICODE -D_UNICODE /O2', + '-Wa,--noexecstack', + '/W3 /wd4090 /nologo /O2', + '/Gs0 /GF /Gy', + '/W3 /wd4090 /nologo /O2', ], 'openssl_ex_libs_VC-WIN64A': [ 'ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib', |