cjson
fuzzing
inputs
test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9library_config
cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmaketests
inputs
test1 test1.expected test10 test10.expected test11 test11.expected test2 test2.expected test3 test3.expected test4 test4.expected test5 test5.expected test6 test7 test7.expected test8 test8.expected test9 test9.expectedjson-patch-tests
.editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.jsonunity
auto
colour_prompt.rb colour_reporter.rb generate_config.yml generate_module.rb generate_test_runner.rb parse_output.rb stylize_as_junit.rb test_file_filter.rb type_sanitizer.rb unity_test_summary.py unity_test_summary.rb unity_to_junit.pydocs
ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txtexamples
unity_config.hcurl
.github
scripts
cleancmd.pl cmp-config.pl cmp-pkg-config.sh codespell-ignore.words codespell.sh distfiles.sh pyspelling.words pyspelling.yaml randcurl.pl requirements-docs.txt requirements-proselint.txt requirements.txt shellcheck-ci.sh shellcheck.sh spellcheck.curl trimmarkdownheader.pl typos.sh typos.toml verify-examples.pl verify-synopsis.pl yamlcheck.sh yamlcheck.yamlworkflows
appveyor-status.yml checkdocs.yml checksrc.yml checkurls.yml codeql.yml configure-vs-cmake.yml curl-for-win.yml distcheck.yml fuzz.yml http3-linux.yml label.yml linux-old.yml linux.yml macos.yml non-native.yml windows.ymlCMake
CurlSymbolHiding.cmake CurlTests.c FindBrotli.cmake FindCares.cmake FindGSS.cmake FindGnuTLS.cmake FindLDAP.cmake FindLibbacktrace.cmake FindLibgsasl.cmake FindLibidn2.cmake FindLibpsl.cmake FindLibssh.cmake FindLibssh2.cmake FindLibuv.cmake FindMbedTLS.cmake FindNGHTTP2.cmake FindNGHTTP3.cmake FindNGTCP2.cmake FindNettle.cmake FindQuiche.cmake FindRustls.cmake FindWolfSSL.cmake FindZstd.cmake Macros.cmake OtherTests.cmake PickyWarnings.cmake Utilities.cmake cmake_uninstall.in.cmake curl-config.in.cmake unix-cache.cmake win32-cache.cmakedocs
cmdline-opts
.gitignore CMakeLists.txt MANPAGE.md Makefile.am Makefile.inc _AUTHORS.md _BUGS.md _DESCRIPTION.md _ENVIRONMENT.md _EXITCODES.md _FILES.md _GLOBBING.md _NAME.md _OPTIONS.md _OUTPUT.md _PROGRESS.md _PROTOCOLS.md _PROXYPREFIX.md _SEEALSO.md _SYNOPSIS.md _URL.md _VARIABLES.md _VERSION.md _WWW.md abstract-unix-socket.md alt-svc.md anyauth.md append.md aws-sigv4.md basic.md ca-native.md cacert.md capath.md cert-status.md cert-type.md cert.md ciphers.md compressed-ssh.md compressed.md config.md connect-timeout.md connect-to.md continue-at.md cookie-jar.md cookie.md create-dirs.md create-file-mode.md crlf.md crlfile.md curves.md data-ascii.md data-binary.md data-raw.md data-urlencode.md data.md delegation.md digest.md disable-eprt.md disable-epsv.md disable.md disallow-username-in-url.md dns-interface.md dns-ipv4-addr.md dns-ipv6-addr.md dns-servers.md doh-cert-status.md doh-insecure.md doh-url.md dump-ca-embed.md dump-header.md ech.md egd-file.md engine.md etag-compare.md etag-save.md expect100-timeout.md fail-early.md fail-with-body.md fail.md false-start.md follow.md form-escape.md form-string.md form.md ftp-account.md ftp-alternative-to-user.md ftp-create-dirs.md ftp-method.md ftp-pasv.md ftp-port.md ftp-pret.md ftp-skip-pasv-ip.md ftp-ssl-ccc-mode.md ftp-ssl-ccc.md ftp-ssl-control.md get.md globoff.md happy-eyeballs-timeout-ms.md haproxy-clientip.md haproxy-protocol.md head.md header.md help.md hostpubmd5.md hostpubsha256.md hsts.md http0.9.md http1.0.md http1.1.md http2-prior-knowledge.md http2.md http3-only.md http3.md ignore-content-length.md insecure.md interface.md ip-tos.md ipfs-gateway.md ipv4.md ipv6.md json.md junk-session-cookies.md keepalive-cnt.md keepalive-time.md key-type.md key.md knownhosts.md krb.md libcurl.md limit-rate.md list-only.md local-port.md location-trusted.md location.md login-options.md mail-auth.md mail-from.md mail-rcpt-allowfails.md mail-rcpt.md mainpage.idx manual.md max-filesize.md max-redirs.md max-time.md metalink.md mptcp.md negotiate.md netrc-file.md netrc-optional.md netrc.md next.md no-alpn.md no-buffer.md no-clobber.md no-keepalive.md no-npn.md no-progress-meter.md no-sessionid.md noproxy.md ntlm-wb.md ntlm.md oauth2-bearer.md out-null.md output-dir.md output.md parallel-immediate.md parallel-max-host.md parallel-max.md parallel.md pass.md path-as-is.md pinnedpubkey.md post301.md post302.md post303.md preproxy.md progress-bar.md proto-default.md proto-redir.md proto.md proxy-anyauth.md proxy-basic.md proxy-ca-native.md proxy-cacert.md proxy-capath.md proxy-cert-type.md proxy-cert.md proxy-ciphers.md proxy-crlfile.md proxy-digest.md proxy-header.md proxy-http2.md proxy-insecure.md proxy-key-type.md proxy-key.md proxy-negotiate.md proxy-ntlm.md proxy-pass.md proxy-pinnedpubkey.md proxy-service-name.md proxy-ssl-allow-beast.md proxy-ssl-auto-client-cert.md proxy-tls13-ciphers.md proxy-tlsauthtype.md proxy-tlspassword.md proxy-tlsuser.md proxy-tlsv1.md proxy-user.md proxy.md proxy1.0.md proxytunnel.md pubkey.md quote.md random-file.md range.md rate.md raw.md referer.md remote-header-name.md remote-name-all.md remote-name.md remote-time.md remove-on-error.md request-target.md request.md resolve.md retry-all-errors.md retry-connrefused.md retry-delay.md retry-max-time.md retry.md sasl-authzid.md sasl-ir.md service-name.md show-error.md show-headers.md sigalgs.md silent.md skip-existing.md socks4.md socks4a.md socks5-basic.md socks5-gssapi-nec.md socks5-gssapi-service.md socks5-gssapi.md socks5-hostname.md socks5.md speed-limit.md speed-time.md ssl-allow-beast.md ssl-auto-client-cert.md ssl-no-revoke.md ssl-reqd.md ssl-revoke-best-effort.md ssl-sessions.md ssl.md sslv2.md sslv3.md stderr.md styled-output.md suppress-connect-headers.md tcp-fastopen.md tcp-nodelay.md telnet-option.md tftp-blksize.md tftp-no-options.md time-cond.md tls-earlydata.md tls-max.md tls13-ciphers.md tlsauthtype.md tlspassword.md tlsuser.md tlsv1.0.md tlsv1.1.md tlsv1.2.md tlsv1.3.md tlsv1.md tr-encoding.md trace-ascii.md trace-config.md trace-ids.md trace-time.md trace.md unix-socket.md upload-file.md upload-flags.md url-query.md url.md use-ascii.md user-agent.md user.md variable.md verbose.md version.md vlan-priority.md write-out.md xattr.mdexamples
.checksrc .gitignore 10-at-a-time.c CMakeLists.txt Makefile.am Makefile.example Makefile.inc README.md adddocsref.pl address-scope.c altsvc.c anyauthput.c block_ip.c cacertinmem.c certinfo.c chkspeed.c connect-to.c cookie_interface.c crawler.c debug.c default-scheme.c ephiperfifo.c evhiperfifo.c externalsocket.c fileupload.c ftp-delete.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c getredirect.c getreferrer.c ghiper.c headerapi.c hiperfifo.c hsts-preload.c htmltidy.c htmltitle.cpp http-options.c http-post.c http2-download.c http2-pushinmemory.c http2-serverpush.c http2-upload.c http3-present.c http3.c httpcustomheader.c httpput-postfields.c httpput.c https.c imap-append.c imap-authzid.c imap-copy.c imap-create.c imap-delete.c imap-examine.c imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c ipv6.c keepalive.c localport.c log_failed_transfers.c maxconnects.c multi-app.c multi-debugcallback.c multi-double.c multi-event.c multi-formadd.c multi-legacy.c multi-post.c multi-single.c multi-uv.c netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c postinmemory.c postit2-formadd.c postit2.c progressfunc.c protofeats.c range.c resolve.c rtsp-options.c sendrecv.c sepheaders.c sessioninfo.c sftpget.c sftpuploadresume.c shared-connection-cache.c simple.c simplepost.c simplessl.c smooth-gtk-thread.c smtp-authzid.c smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c synctime.c threaded.c unixsocket.c url2file.c urlapi.c usercertinmem.c version-check.pl websocket-cb.c websocket-updown.c websocket.c xmlstream.cinternals
BUFQ.md BUFREF.md CHECKSRC.md CLIENT-READERS.md CLIENT-WRITERS.md CODE_STYLE.md CONNECTION-FILTERS.md CREDENTIALS.md CURLX.md DYNBUF.md HASH.md LLIST.md MID.md MQTT.md MULTI-EV.md NEW-PROTOCOL.md PEERS.md PORTING.md RATELIMITS.md README.md SCORECARD.md SPLAY.md STRPARSE.md THRDPOOL-AND-QUEUE.md TIME-KEEPING.md TLS-SESSIONS.md UINT_SETS.md WEBSOCKET.mdlibcurl
opts
CMakeLists.txt CURLINFO_ACTIVESOCKET.md CURLINFO_APPCONNECT_TIME.md CURLINFO_APPCONNECT_TIME_T.md CURLINFO_CAINFO.md CURLINFO_CAPATH.md CURLINFO_CERTINFO.md CURLINFO_CONDITION_UNMET.md CURLINFO_CONNECT_TIME.md CURLINFO_CONNECT_TIME_T.md CURLINFO_CONN_ID.md CURLINFO_CONTENT_LENGTH_DOWNLOAD.md CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md CURLINFO_CONTENT_LENGTH_UPLOAD.md CURLINFO_CONTENT_LENGTH_UPLOAD_T.md CURLINFO_CONTENT_TYPE.md CURLINFO_COOKIELIST.md CURLINFO_EARLYDATA_SENT_T.md CURLINFO_EFFECTIVE_METHOD.md CURLINFO_EFFECTIVE_URL.md CURLINFO_FILETIME.md CURLINFO_FILETIME_T.md CURLINFO_FTP_ENTRY_PATH.md CURLINFO_HEADER_SIZE.md CURLINFO_HTTPAUTH_AVAIL.md CURLINFO_HTTPAUTH_USED.md CURLINFO_HTTP_CONNECTCODE.md CURLINFO_HTTP_VERSION.md CURLINFO_LASTSOCKET.md CURLINFO_LOCAL_IP.md CURLINFO_LOCAL_PORT.md CURLINFO_NAMELOOKUP_TIME.md CURLINFO_NAMELOOKUP_TIME_T.md CURLINFO_NUM_CONNECTS.md CURLINFO_OS_ERRNO.md CURLINFO_POSTTRANSFER_TIME_T.md CURLINFO_PRETRANSFER_TIME.md CURLINFO_PRETRANSFER_TIME_T.md CURLINFO_PRIMARY_IP.md CURLINFO_PRIMARY_PORT.md CURLINFO_PRIVATE.md CURLINFO_PROTOCOL.md CURLINFO_PROXYAUTH_AVAIL.md CURLINFO_PROXYAUTH_USED.md CURLINFO_PROXY_ERROR.md CURLINFO_PROXY_SSL_VERIFYRESULT.md CURLINFO_QUEUE_TIME_T.md CURLINFO_REDIRECT_COUNT.md CURLINFO_REDIRECT_TIME.md CURLINFO_REDIRECT_TIME_T.md CURLINFO_REDIRECT_URL.md CURLINFO_REFERER.md CURLINFO_REQUEST_SIZE.md CURLINFO_RESPONSE_CODE.md CURLINFO_RETRY_AFTER.md CURLINFO_RTSP_CLIENT_CSEQ.md CURLINFO_RTSP_CSEQ_RECV.md CURLINFO_RTSP_SERVER_CSEQ.md CURLINFO_RTSP_SESSION_ID.md CURLINFO_SCHEME.md CURLINFO_SIZE_DELIVERED.md CURLINFO_SIZE_DOWNLOAD.md CURLINFO_SIZE_DOWNLOAD_T.md CURLINFO_SIZE_UPLOAD.md CURLINFO_SIZE_UPLOAD_T.md CURLINFO_SPEED_DOWNLOAD.md CURLINFO_SPEED_DOWNLOAD_T.md CURLINFO_SPEED_UPLOAD.md CURLINFO_SPEED_UPLOAD_T.md CURLINFO_SSL_ENGINES.md CURLINFO_SSL_VERIFYRESULT.md CURLINFO_STARTTRANSFER_TIME.md CURLINFO_STARTTRANSFER_TIME_T.md CURLINFO_TLS_SESSION.md CURLINFO_TLS_SSL_PTR.md CURLINFO_TOTAL_TIME.md CURLINFO_TOTAL_TIME_T.md CURLINFO_USED_PROXY.md CURLINFO_XFER_ID.md CURLMINFO_XFERS_ADDED.md CURLMINFO_XFERS_CURRENT.md CURLMINFO_XFERS_DONE.md CURLMINFO_XFERS_PENDING.md CURLMINFO_XFERS_RUNNING.md CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md CURLMOPT_MAXCONNECTS.md CURLMOPT_MAX_CONCURRENT_STREAMS.md CURLMOPT_MAX_HOST_CONNECTIONS.md CURLMOPT_MAX_PIPELINE_LENGTH.md CURLMOPT_MAX_TOTAL_CONNECTIONS.md CURLMOPT_NETWORK_CHANGED.md CURLMOPT_NOTIFYDATA.md CURLMOPT_NOTIFYFUNCTION.md CURLMOPT_PIPELINING.md CURLMOPT_PIPELINING_SERVER_BL.md CURLMOPT_PIPELINING_SITE_BL.md CURLMOPT_PUSHDATA.md CURLMOPT_PUSHFUNCTION.md CURLMOPT_QUICK_EXIT.md CURLMOPT_RESOLVE_THREADS_MAX.md CURLMOPT_SOCKETDATA.md CURLMOPT_SOCKETFUNCTION.md CURLMOPT_TIMERDATA.md CURLMOPT_TIMERFUNCTION.md CURLOPT_ABSTRACT_UNIX_SOCKET.md CURLOPT_ACCEPTTIMEOUT_MS.md CURLOPT_ACCEPT_ENCODING.md CURLOPT_ADDRESS_SCOPE.md CURLOPT_ALTSVC.md CURLOPT_ALTSVC_CTRL.md CURLOPT_APPEND.md CURLOPT_AUTOREFERER.md CURLOPT_AWS_SIGV4.md CURLOPT_BUFFERSIZE.md CURLOPT_CAINFO.md CURLOPT_CAINFO_BLOB.md CURLOPT_CAPATH.md CURLOPT_CA_CACHE_TIMEOUT.md CURLOPT_CERTINFO.md CURLOPT_CHUNK_BGN_FUNCTION.md CURLOPT_CHUNK_DATA.md CURLOPT_CHUNK_END_FUNCTION.md CURLOPT_CLOSESOCKETDATA.md CURLOPT_CLOSESOCKETFUNCTION.md CURLOPT_CONNECTTIMEOUT.md CURLOPT_CONNECTTIMEOUT_MS.md CURLOPT_CONNECT_ONLY.md CURLOPT_CONNECT_TO.md CURLOPT_CONV_FROM_NETWORK_FUNCTION.md CURLOPT_CONV_FROM_UTF8_FUNCTION.md CURLOPT_CONV_TO_NETWORK_FUNCTION.md CURLOPT_COOKIE.md CURLOPT_COOKIEFILE.md CURLOPT_COOKIEJAR.md CURLOPT_COOKIELIST.md CURLOPT_COOKIESESSION.md CURLOPT_COPYPOSTFIELDS.md CURLOPT_CRLF.md CURLOPT_CRLFILE.md CURLOPT_CURLU.md CURLOPT_CUSTOMREQUEST.md CURLOPT_DEBUGDATA.md CURLOPT_DEBUGFUNCTION.md CURLOPT_DEFAULT_PROTOCOL.md CURLOPT_DIRLISTONLY.md CURLOPT_DISALLOW_USERNAME_IN_URL.md CURLOPT_DNS_CACHE_TIMEOUT.md CURLOPT_DNS_INTERFACE.md CURLOPT_DNS_LOCAL_IP4.md CURLOPT_DNS_LOCAL_IP6.md CURLOPT_DNS_SERVERS.md CURLOPT_DNS_SHUFFLE_ADDRESSES.md CURLOPT_DNS_USE_GLOBAL_CACHE.md CURLOPT_DOH_SSL_VERIFYHOST.md CURLOPT_DOH_SSL_VERIFYPEER.md CURLOPT_DOH_SSL_VERIFYSTATUS.md CURLOPT_DOH_URL.md CURLOPT_ECH.md CURLOPT_EGDSOCKET.md CURLOPT_ERRORBUFFER.md CURLOPT_EXPECT_100_TIMEOUT_MS.md CURLOPT_FAILONERROR.md CURLOPT_FILETIME.md CURLOPT_FNMATCH_DATA.md CURLOPT_FNMATCH_FUNCTION.md CURLOPT_FOLLOWLOCATION.md CURLOPT_FORBID_REUSE.md CURLOPT_FRESH_CONNECT.md CURLOPT_FTPPORT.md CURLOPT_FTPSSLAUTH.md CURLOPT_FTP_ACCOUNT.md CURLOPT_FTP_ALTERNATIVE_TO_USER.md CURLOPT_FTP_CREATE_MISSING_DIRS.md CURLOPT_FTP_FILEMETHOD.md CURLOPT_FTP_SKIP_PASV_IP.md CURLOPT_FTP_SSL_CCC.md CURLOPT_FTP_USE_EPRT.md CURLOPT_FTP_USE_EPSV.md CURLOPT_FTP_USE_PRET.md CURLOPT_GSSAPI_DELEGATION.md CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md CURLOPT_HAPROXYPROTOCOL.md CURLOPT_HAPROXY_CLIENT_IP.md CURLOPT_HEADER.md CURLOPT_HEADERDATA.md CURLOPT_HEADERFUNCTION.md CURLOPT_HEADEROPT.md CURLOPT_HSTS.md CURLOPT_HSTSREADDATA.md CURLOPT_HSTSREADFUNCTION.md CURLOPT_HSTSWRITEDATA.md CURLOPT_HSTSWRITEFUNCTION.md CURLOPT_HSTS_CTRL.md CURLOPT_HTTP09_ALLOWED.md CURLOPT_HTTP200ALIASES.md CURLOPT_HTTPAUTH.md CURLOPT_HTTPGET.md CURLOPT_HTTPHEADER.md CURLOPT_HTTPPOST.md CURLOPT_HTTPPROXYTUNNEL.md CURLOPT_HTTP_CONTENT_DECODING.md CURLOPT_HTTP_TRANSFER_DECODING.md CURLOPT_HTTP_VERSION.md CURLOPT_IGNORE_CONTENT_LENGTH.md CURLOPT_INFILESIZE.md CURLOPT_INFILESIZE_LARGE.md CURLOPT_INTERFACE.md CURLOPT_INTERLEAVEDATA.md CURLOPT_INTERLEAVEFUNCTION.md CURLOPT_IOCTLDATA.md CURLOPT_IOCTLFUNCTION.md CURLOPT_IPRESOLVE.md CURLOPT_ISSUERCERT.md CURLOPT_ISSUERCERT_BLOB.md CURLOPT_KEEP_SENDING_ON_ERROR.md CURLOPT_KEYPASSWD.md CURLOPT_KRBLEVEL.md CURLOPT_LOCALPORT.md CURLOPT_LOCALPORTRANGE.md CURLOPT_LOGIN_OPTIONS.md CURLOPT_LOW_SPEED_LIMIT.md CURLOPT_LOW_SPEED_TIME.md CURLOPT_MAIL_AUTH.md CURLOPT_MAIL_FROM.md CURLOPT_MAIL_RCPT.md CURLOPT_MAIL_RCPT_ALLOWFAILS.md CURLOPT_MAXAGE_CONN.md CURLOPT_MAXCONNECTS.md CURLOPT_MAXFILESIZE.md CURLOPT_MAXFILESIZE_LARGE.md CURLOPT_MAXLIFETIME_CONN.md CURLOPT_MAXREDIRS.md CURLOPT_MAX_RECV_SPEED_LARGE.md CURLOPT_MAX_SEND_SPEED_LARGE.md CURLOPT_MIMEPOST.md CURLOPT_MIME_OPTIONS.md CURLOPT_NETRC.md CURLOPT_NETRC_FILE.md CURLOPT_NEW_DIRECTORY_PERMS.md CURLOPT_NEW_FILE_PERMS.md CURLOPT_NOBODY.md CURLOPT_NOPROGRESS.md CURLOPT_NOPROXY.md CURLOPT_NOSIGNAL.md CURLOPT_OPENSOCKETDATA.md CURLOPT_OPENSOCKETFUNCTION.md CURLOPT_PASSWORD.md CURLOPT_PATH_AS_IS.md CURLOPT_PINNEDPUBLICKEY.md CURLOPT_PIPEWAIT.md CURLOPT_PORT.md CURLOPT_POST.md CURLOPT_POSTFIELDS.md CURLOPT_POSTFIELDSIZE.md CURLOPT_POSTFIELDSIZE_LARGE.md CURLOPT_POSTQUOTE.md CURLOPT_POSTREDIR.md CURLOPT_PREQUOTE.md CURLOPT_PREREQDATA.md CURLOPT_PREREQFUNCTION.md CURLOPT_PRE_PROXY.md CURLOPT_PRIVATE.md CURLOPT_PROGRESSDATA.md CURLOPT_PROGRESSFUNCTION.md CURLOPT_PROTOCOLS.md CURLOPT_PROTOCOLS_STR.md CURLOPT_PROXY.md CURLOPT_PROXYAUTH.md CURLOPT_PROXYHEADER.md CURLOPT_PROXYPASSWORD.md CURLOPT_PROXYPORT.md CURLOPT_PROXYTYPE.md CURLOPT_PROXYUSERNAME.md CURLOPT_PROXYUSERPWD.md CURLOPT_PROXY_CAINFO.md CURLOPT_PROXY_CAINFO_BLOB.md CURLOPT_PROXY_CAPATH.md CURLOPT_PROXY_CRLFILE.md CURLOPT_PROXY_ISSUERCERT.md CURLOPT_PROXY_ISSUERCERT_BLOB.md CURLOPT_PROXY_KEYPASSWD.md CURLOPT_PROXY_PINNEDPUBLICKEY.md CURLOPT_PROXY_SERVICE_NAME.md CURLOPT_PROXY_SSLCERT.md CURLOPT_PROXY_SSLCERTTYPE.md CURLOPT_PROXY_SSLCERT_BLOB.md CURLOPT_PROXY_SSLKEY.md CURLOPT_PROXY_SSLKEYTYPE.md CURLOPT_PROXY_SSLKEY_BLOB.md CURLOPT_PROXY_SSLVERSION.md CURLOPT_PROXY_SSL_CIPHER_LIST.md CURLOPT_PROXY_SSL_OPTIONS.md CURLOPT_PROXY_SSL_VERIFYHOST.md CURLOPT_PROXY_SSL_VERIFYPEER.md CURLOPT_PROXY_TLS13_CIPHERS.md CURLOPT_PROXY_TLSAUTH_PASSWORD.md CURLOPT_PROXY_TLSAUTH_TYPE.md CURLOPT_PROXY_TLSAUTH_USERNAME.md CURLOPT_PROXY_TRANSFER_MODE.md CURLOPT_PUT.md CURLOPT_QUICK_EXIT.md CURLOPT_QUOTE.md CURLOPT_RANDOM_FILE.md CURLOPT_RANGE.md CURLOPT_READDATA.md CURLOPT_READFUNCTION.md CURLOPT_REDIR_PROTOCOLS.md CURLOPT_REDIR_PROTOCOLS_STR.md CURLOPT_REFERER.md CURLOPT_REQUEST_TARGET.md CURLOPT_RESOLVE.md CURLOPT_RESOLVER_START_DATA.md CURLOPT_RESOLVER_START_FUNCTION.md CURLOPT_RESUME_FROM.md CURLOPT_RESUME_FROM_LARGE.md CURLOPT_RTSP_CLIENT_CSEQ.md CURLOPT_RTSP_REQUEST.md CURLOPT_RTSP_SERVER_CSEQ.md CURLOPT_RTSP_SESSION_ID.md CURLOPT_RTSP_STREAM_URI.md CURLOPT_RTSP_TRANSPORT.md CURLOPT_SASL_AUTHZID.md CURLOPT_SASL_IR.md CURLOPT_SEEKDATA.md CURLOPT_SEEKFUNCTION.md CURLOPT_SERVER_RESPONSE_TIMEOUT.md CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md CURLOPT_SERVICE_NAME.md CURLOPT_SHARE.md CURLOPT_SOCKOPTDATA.md CURLOPT_SOCKOPTFUNCTION.md CURLOPT_SOCKS5_AUTH.md CURLOPT_SOCKS5_GSSAPI_NEC.md CURLOPT_SOCKS5_GSSAPI_SERVICE.md CURLOPT_SSH_AUTH_TYPES.md CURLOPT_SSH_COMPRESSION.md CURLOPT_SSH_HOSTKEYDATA.md CURLOPT_SSH_HOSTKEYFUNCTION.md CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md CURLOPT_SSH_KEYDATA.md CURLOPT_SSH_KEYFUNCTION.md CURLOPT_SSH_KNOWNHOSTS.md CURLOPT_SSH_PRIVATE_KEYFILE.md CURLOPT_SSH_PUBLIC_KEYFILE.md CURLOPT_SSLCERT.md CURLOPT_SSLCERTTYPE.md CURLOPT_SSLCERT_BLOB.md CURLOPT_SSLENGINE.md CURLOPT_SSLENGINE_DEFAULT.md CURLOPT_SSLKEY.md CURLOPT_SSLKEYTYPE.md CURLOPT_SSLKEY_BLOB.md CURLOPT_SSLVERSION.md CURLOPT_SSL_CIPHER_LIST.md CURLOPT_SSL_CTX_DATA.md CURLOPT_SSL_CTX_FUNCTION.md CURLOPT_SSL_EC_CURVES.md CURLOPT_SSL_ENABLE_ALPN.md CURLOPT_SSL_ENABLE_NPN.md CURLOPT_SSL_FALSESTART.md CURLOPT_SSL_OPTIONS.md CURLOPT_SSL_SESSIONID_CACHE.md CURLOPT_SSL_SIGNATURE_ALGORITHMS.md CURLOPT_SSL_VERIFYHOST.md CURLOPT_SSL_VERIFYPEER.md CURLOPT_SSL_VERIFYSTATUS.md CURLOPT_STDERR.md CURLOPT_STREAM_DEPENDS.md CURLOPT_STREAM_DEPENDS_E.md CURLOPT_STREAM_WEIGHT.md CURLOPT_SUPPRESS_CONNECT_HEADERS.md CURLOPT_TCP_FASTOPEN.md CURLOPT_TCP_KEEPALIVE.md CURLOPT_TCP_KEEPCNT.md CURLOPT_TCP_KEEPIDLE.md CURLOPT_TCP_KEEPINTVL.md CURLOPT_TCP_NODELAY.md CURLOPT_TELNETOPTIONS.md CURLOPT_TFTP_BLKSIZE.md CURLOPT_TFTP_NO_OPTIONS.md CURLOPT_TIMECONDITION.md CURLOPT_TIMEOUT.md CURLOPT_TIMEOUT_MS.md CURLOPT_TIMEVALUE.md CURLOPT_TIMEVALUE_LARGE.md CURLOPT_TLS13_CIPHERS.md CURLOPT_TLSAUTH_PASSWORD.md CURLOPT_TLSAUTH_TYPE.md CURLOPT_TLSAUTH_USERNAME.md CURLOPT_TRAILERDATA.md CURLOPT_TRAILERFUNCTION.md CURLOPT_TRANSFERTEXT.md CURLOPT_TRANSFER_ENCODING.md CURLOPT_UNIX_SOCKET_PATH.md CURLOPT_UNRESTRICTED_AUTH.md CURLOPT_UPKEEP_INTERVAL_MS.md CURLOPT_UPLOAD.md CURLOPT_UPLOAD_BUFFERSIZE.md CURLOPT_UPLOAD_FLAGS.md CURLOPT_URL.md CURLOPT_USERAGENT.md CURLOPT_USERNAME.md CURLOPT_USERPWD.md CURLOPT_USE_SSL.md CURLOPT_VERBOSE.md CURLOPT_WILDCARDMATCH.md CURLOPT_WRITEDATA.md CURLOPT_WRITEFUNCTION.md CURLOPT_WS_OPTIONS.md CURLOPT_XFERINFODATA.md CURLOPT_XFERINFOFUNCTION.md CURLOPT_XOAUTH2_BEARER.md CURLSHOPT_LOCKFUNC.md CURLSHOPT_SHARE.md CURLSHOPT_UNLOCKFUNC.md CURLSHOPT_UNSHARE.md CURLSHOPT_USERDATA.md Makefile.am Makefile.incinclude
curl
Makefile.am curl.h curlver.h easy.h header.h mprintf.h multi.h options.h stdcheaders.h system.h typecheck-gcc.h urlapi.h websockets.hlib
curlx
base64.c base64.h basename.c basename.h dynbuf.c dynbuf.h fopen.c fopen.h inet_ntop.c inet_ntop.h inet_pton.c inet_pton.h multibyte.c multibyte.h nonblock.c nonblock.h snprintf.c snprintf.h strcopy.c strcopy.h strdup.c strdup.h strerr.c strerr.h strparse.c strparse.h timediff.c timediff.h timeval.c timeval.h version_win32.c version_win32.h wait.c wait.h warnless.c warnless.h winapi.c winapi.hvauth
cleartext.c cram.c digest.c digest.h digest_sspi.c gsasl.c krb5_gssapi.c krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c spnego_gssapi.c spnego_sspi.c vauth.c vauth.hvquic
curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.hvtls
apple.c apple.h cipher_suite.c cipher_suite.h gtls.c gtls.h hostcheck.c hostcheck.h keylog.c keylog.h mbedtls.c mbedtls.h openssl.c openssl.h rustls.c rustls.h schannel.c schannel.h schannel_int.h schannel_verify.c vtls.c vtls.h vtls_int.h vtls_scache.c vtls_scache.h vtls_spack.c vtls_spack.h wolfssl.c wolfssl.h x509asn1.c x509asn1.hm4
.gitignore curl-amissl.m4 curl-apple-sectrust.m4 curl-compilers.m4 curl-confopts.m4 curl-functions.m4 curl-gnutls.m4 curl-mbedtls.m4 curl-openssl.m4 curl-override.m4 curl-reentrant.m4 curl-rustls.m4 curl-schannel.m4 curl-sysconfig.m4 curl-wolfssl.m4 xc-am-iface.m4 xc-cc-check.m4 xc-lt-iface.m4 xc-val-flgs.m4 zz40-xc-ovr.m4 zz50-xc-ovr.m4projects
OS400
.checksrc README.OS400 ccsidcurl.c ccsidcurl.h config400.default curl.cmd curl.inc.in curlcl.c curlmain.c initscript.sh make-docs.sh make-include.sh make-lib.sh make-src.sh make-tests.sh makefile.sh os400sys.c os400sys.hWindows
tmpl
.gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filtersvms
Makefile.am backup_gnv_curl_src.com build_curl-config_script.com build_gnv_curl.com build_gnv_curl_pcsi_desc.com build_gnv_curl_pcsi_text.com build_gnv_curl_release_notes.com build_libcurl_pc.com build_vms.com clean_gnv_curl.com compare_curl_source.com config_h.com curl_crtl_init.c curl_gnv_build_steps.txt curl_release_note_start.txt curl_startup.com curlmsg.h curlmsg.msg curlmsg.sdl curlmsg_vms.h generate_config_vms_h_curl.com generate_vax_transfer.com gnv_conftest.c_first gnv_curl_configure.sh gnv_libcurl_symbols.opt gnv_link_curl.com macro32_exactcase.patch make_gnv_curl_install.sh make_pcsi_curl_kit_name.com pcsi_gnv_curl_file_list.txt pcsi_product_gnv_curl.com readme report_openssl_version.c setup_gnv_curl_build.com stage_curl_install.com vms_eco_level.hscripts
.checksrc CMakeLists.txt Makefile.am badwords badwords-all badwords.txt cd2cd cd2nroff cdall checksrc-all.pl checksrc.pl cmakelint.sh completion.pl contributors.sh contrithanks.sh coverage.sh delta dmaketgz extract-unit-protos firefox-db2pem.sh installcheck.sh maketgz managen mdlinkcheck mk-ca-bundle.pl mk-unity.pl nroff2cd perlcheck.sh pythonlint.sh randdisable release-notes.pl release-tools.sh schemetable.c singleuse.pl spacecheck.pl top-complexity top-length verify-release wcurlsrc
.checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc config2setopts.c config2setopts.h curl.rc curlinfo.c mk-file-embed.pl mkhelp.pl slist_wc.c slist_wc.h terminal.c terminal.h tool_cb_dbg.c tool_cb_dbg.h tool_cb_hdr.c tool_cb_hdr.h tool_cb_prg.c tool_cb_prg.h tool_cb_rea.c tool_cb_rea.h tool_cb_see.c tool_cb_see.h tool_cb_soc.c tool_cb_soc.h tool_cb_wrt.c tool_cb_wrt.h tool_cfgable.c tool_cfgable.h tool_dirhie.c tool_dirhie.h tool_doswin.c tool_doswin.h tool_easysrc.c tool_easysrc.h tool_filetime.c tool_filetime.h tool_findfile.c tool_findfile.h tool_formparse.c tool_formparse.h tool_getparam.c tool_getparam.h tool_getpass.c tool_getpass.h tool_help.c tool_help.h tool_helpers.c tool_helpers.h tool_hugehelp.h tool_ipfs.c tool_ipfs.h tool_libinfo.c tool_libinfo.h tool_listhelp.c tool_main.c tool_main.h tool_msgs.c tool_msgs.h tool_operate.c tool_operate.h tool_operhlp.c tool_operhlp.h tool_paramhlp.c tool_paramhlp.h tool_parsecfg.c tool_parsecfg.h tool_progress.c tool_progress.h tool_sdecls.h tool_setopt.c tool_setopt.h tool_setup.h tool_ssls.c tool_ssls.h tool_stderr.c tool_stderr.h tool_urlglob.c tool_urlglob.h tool_util.c tool_util.h tool_version.h tool_vms.c tool_vms.h tool_writeout.c tool_writeout.h tool_writeout_json.c tool_writeout_json.h tool_xattr.c tool_xattr.h var.c var.htests
certs
.gitignore CMakeLists.txt Makefile.am Makefile.inc genserv.pl srp-verifier-conf srp-verifier-db test-ca.cnf test-ca.prm test-client-cert.prm test-client-eku-only.prm test-localhost-san-first.prm test-localhost-san-last.prm test-localhost.nn.prm test-localhost.prm test-localhost0h.prmdata
.gitignore DISABLED Makefile.am data-xml1 data1400.c data1401.c data1402.c data1403.c data1404.c data1405.c data1406.c data1407.c data1420.c data1461.txt data1463.txt data1465.c data1481.c data1705-1.md data1705-2.md data1705-3.md data1705-4.md data1705-stdout.1 data1706-1.md data1706-2.md data1706-3.md data1706-4.md data1706-stdout.txt data320.html test1 test10 test100 test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 test1008 test1009 test101 test1010 test1011 test1012 test1013 test1014 test1015 test1016 test1017 test1018 test1019 test102 test1020 test1021 test1022 test1023 test1024 test1025 test1026 test1027 test1028 test1029 test103 test1030 test1031 test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 test104 test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 test1048 test1049 test105 test1050 test1051 test1052 test1053 test1054 test1055 test1056 test1057 test1058 test1059 test106 test1060 test1061 test1062 test1063 test1064 test1065 test1066 test1067 test1068 test1069 test107 test1070 test1071 test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 test108 test1080 test1081 test1082 test1083 test1084 test1085 test1086 test1087 test1088 test1089 test109 test1090 test1091 test1092 test1093 test1094 test1095 test1096 test1097 test1098 test1099 test11 test110 test1100 test1101 test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 test111 test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 test112 test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 test1128 test1129 test113 test1130 test1131 test1132 test1133 test1134 test1135 test1136 test1137 test1138 test1139 test114 test1140 test1141 test1142 test1143 test1144 test1145 test1146 test1147 test1148 test1149 test115 test1150 test1151 test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 test116 test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 test1168 test1169 test117 test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 test1178 test1179 test118 test1180 test1181 test1182 test1183 test1184 test1185 test1186 test1187 test1188 test1189 test119 test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 test1199 test12 test120 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 test1208 test1209 test121 test1210 test1211 test1212 test1213 test1214 test1215 test1216 test1217 test1218 test1219 test122 test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 test1228 test1229 test123 test1230 test1231 test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 test124 test1240 test1241 test1242 test1243 test1244 test1245 test1246 test1247 test1248 test1249 test125 test1250 test1251 test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 test126 test1260 test1261 test1262 test1263 test1264 test1265 test1266 test1267 test1268 test1269 test127 test1270 test1271 test1272 test1273 test1274 test1275 test1276 test1277 test1278 test1279 test128 test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 test1288 test1289 test129 test1290 test1291 test1292 test1293 test1294 test1295 test1296 test1297 test1298 test1299 test13 test130 test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 test1308 test1309 test131 test1310 test1311 test1312 test1313 test1314 test1315 test1316 test1317 test1318 test1319 test132 test1320 test1321 test1322 test1323 test1324 test1325 test1326 test1327 test1328 test1329 test133 test1330 test1331 test1332 test1333 test1334 test1335 test1336 test1337 test1338 test1339 test134 test1340 test1341 test1342 test1343 test1344 test1345 test1346 test1347 test1348 test1349 test135 test1350 test1351 test1352 test1353 test1354 test1355 test1356 test1357 test1358 test1359 test136 test1360 test1361 test1362 test1363 test1364 test1365 test1366 test1367 test1368 test1369 test137 test1370 test1371 test1372 test1373 test1374 test1375 test1376 test1377 test1378 test1379 test138 test1380 test1381 test1382 test1383 test1384 test1385 test1386 test1387 test1388 test1389 test139 test1390 test1391 test1392 test1393 test1394 test1395 test1396 test1397 test1398 test1399 test14 test140 test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 test1408 test1409 test141 test1410 test1411 test1412 test1413 test1414 test1415 test1416 test1417 test1418 test1419 test142 test1420 test1421 test1422 test1423 test1424 test1425 test1426 test1427 test1428 test1429 test143 test1430 test1431 test1432 test1433 test1434 test1435 test1436 test1437 test1438 test1439 test144 test1440 test1441 test1442 test1443 test1444 test1445 test1446 test1447 test1448 test1449 test145 test1450 test1451 test1452 test1453 test1454 test1455 test1456 test1457 test1458 test1459 test146 test1460 test1461 test1462 test1463 test1464 test1465 test1466 test1467 test1468 test1469 test147 test1470 test1471 test1472 test1473 test1474 test1475 test1476 test1477 test1478 test1479 test148 test1480 test1481 test1482 test1483 test1484 test1485 test1486 test1487 test1488 test1489 test149 test1490 test1491 test1492 test1493 test1494 test1495 test1496 test1497 test1498 test1499 test15 test150 test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 test1508 test1509 test151 test1510 test1511 test1512 test1513 test1514 test1515 test1516 test1517 test1518 test1519 test152 test1520 test1521 test1522 test1523 test1524 test1525 test1526 test1527 test1528 test1529 test153 test1530 test1531 test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 test154 test1540 test1541 test1542 test1543 test1544 test1545 test1546 test1547 test1548 test1549 test155 test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 test1558 test1559 test156 test1560 test1561 test1562 test1563 test1564 test1565 test1566 test1567 test1568 test1569 test157 test1570 test1571 test1572 test1573 test1574 test1575 test1576 test1577 test1578 test1579 test158 test1580 test1581 test1582 test1583 test1584 test1585 test1586 test1587 test1588 test1589 test159 test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 test1598 test1599 test16 test160 test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 test1608 test1609 test161 test1610 test1611 test1612 test1613 test1614 test1615 test1616 test1617 test1618 test1619 test162 test1620 test1621 test1622 test1623 test1624 test1625 test1626 test1627 test1628 test1629 test163 test1630 test1631 test1632 test1633 test1634 test1635 test1636 test1637 test1638 test1639 test164 test1640 test1641 test1642 test1643 test1644 test1645 test165 test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 test1658 test1659 test166 test1660 test1661 test1662 test1663 test1664 test1665 test1666 test1667 test1668 test1669 test167 test1670 test1671 test1672 test1673 test1674 test1675 test1676 test168 test1680 test1681 test1682 test1683 test1684 test1685 test169 test17 test170 test1700 test1701 test1702 test1703 test1704 test1705 test1706 test1707 test1708 test1709 test171 test1710 test1711 test1712 test1713 test1714 test1715 test172 test1720 test1721 test173 test174 test175 test176 test177 test178 test179 test18 test180 test1800 test1801 test1802 test181 test182 test183 test184 test1847 test1848 test1849 test185 test1850 test1851 test186 test187 test188 test189 test19 test190 test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 test1908 test1909 test191 test1910 test1911 test1912 test1913 test1914 test1915 test1916 test1917 test1918 test1919 test192 test1920 test1921 test193 test1933 test1934 test1935 test1936 test1937 test1938 test1939 test194 test1940 test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 test195 test1955 test1956 test1957 test1958 test1959 test196 test1960 test1964 test1965 test1966 test197 test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 test1978 test1979 test198 test1980 test1981 test1982 test1983 test1984 test199 test2 test20 test200 test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 test2008 test2009 test201 test2010 test2011 test2012 test2013 test2014 test202 test2023 test2024 test2025 test2026 test2027 test2028 test2029 test203 test2030 test2031 test2032 test2033 test2034 test2035 test2037 test2038 test2039 test204 test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 test2048 test2049 test205 test2050 test2051 test2052 test2053 test2054 test2055 test2056 test2057 test2058 test2059 test206 test2060 test2061 test2062 test2063 test2064 test2065 test2066 test2067 test2068 test2069 test207 test2070 test2071 test2072 test2073 test2074 test2075 test2076 test2077 test2078 test2079 test208 test2080 test2081 test2082 test2083 test2084 test2085 test2086 test2087 test2088 test2089 test209 test2090 test2091 test2092 test21 test210 test2100 test2101 test2102 test2103 test2104 test211 test212 test213 test214 test215 test216 test217 test218 test219 test22 test220 test2200 test2201 test2202 test2203 test2204 test2205 test2206 test2207 test221 test222 test223 test224 test225 test226 test227 test228 test229 test23 test230 test2300 test2301 test2302 test2303 test2304 test2306 test2307 test2308 test2309 test231 test232 test233 test234 test235 test236 test237 test238 test239 test24 test240 test2400 test2401 test2402 test2403 test2404 test2405 test2406 test2407 test2408 test2409 test241 test2410 test2411 test242 test243 test244 test245 test246 test247 test248 test249 test25 test250 test2500 test2501 test2502 test2503 test2504 test2505 test2506 test251 test252 test253 test254 test255 test256 test257 test258 test259 test26 test260 test2600 test2601 test2602 test2603 test2604 test2605 test261 test262 test263 test264 test265 test266 test267 test268 test269 test27 test270 test2700 test2701 test2702 test2703 test2704 test2705 test2706 test2707 test2708 test2709 test271 test2710 test2711 test2712 test2713 test2714 test2715 test2716 test2717 test2718 test2719 test272 test2720 test2721 test2722 test2723 test273 test274 test275 test276 test277 test278 test279 test28 test280 test281 test282 test283 test284 test285 test286 test287 test288 test289 test29 test290 test291 test292 test293 test294 test295 test296 test297 test298 test299 test3 test30 test300 test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 test3008 test3009 test301 test3010 test3011 test3012 test3013 test3014 test3015 test3016 test3017 test3018 test3019 test302 test3020 test3021 test3022 test3023 test3024 test3025 test3026 test3027 test3028 test3029 test303 test3030 test3031 test3032 test3033 test3034 test3035 test3036 test304 test305 test306 test307 test308 test309 test31 test310 test3100 test3101 test3102 test3103 test3104 test3105 test3106 test311 test312 test313 test314 test315 test316 test317 test318 test319 test32 test320 test3200 test3201 test3202 test3203 test3204 test3205 test3206 test3207 test3208 test3209 test321 test3210 test3211 test3212 test3213 test3214 test3215 test3216 test3217 test3218 test3219 test322 test3220 test323 test324 test325 test326 test327 test328 test329 test33 test330 test3300 test3301 test3302 test331 test332 test333 test334 test335 test336 test337 test338 test339 test34 test340 test341 test342 test343 test344 test345 test346 test347 test348 test349 test35 test350 test351 test352 test353 test354 test355 test356 test357 test358 test359 test36 test360 test361 test362 test363 test364 test365 test366 test367 test368 test369 test37 test370 test371 test372 test373 test374 test375 test376 test378 test379 test38 test380 test381 test383 test384 test385 test386 test387 test388 test389 test39 test390 test391 test392 test393 test394 test395 test396 test397 test398 test399 test4 test40 test400 test4000 test4001 test401 test402 test403 test404 test405 test406 test407 test408 test409 test41 test410 test411 test412 test413 test414 test415 test416 test417 test418 test419 test42 test420 test421 test422 test423 test424 test425 test426 test427 test428 test429 test43 test430 test431 test432 test433 test434 test435 test436 test437 test438 test439 test44 test440 test441 test442 test443 test444 test445 test446 test447 test448 test449 test45 test450 test451 test452 test453 test454 test455 test456 test457 test458 test459 test46 test460 test461 test462 test463 test467 test468 test469 test47 test470 test471 test472 test473 test474 test475 test476 test477 test478 test479 test48 test480 test481 test482 test483 test484 test485 test486 test487 test488 test489 test49 test490 test491 test492 test493 test494 test495 test496 test497 test498 test499 test5 test50 test500 test501 test502 test503 test504 test505 test506 test507 test508 test509 test51 test510 test511 test512 test513 test514 test515 test516 test517 test518 test519 test52 test520 test521 test522 test523 test524 test525 test526 test527 test528 test529 test53 test530 test531 test532 test533 test534 test535 test536 test537 test538 test539 test54 test540 test541 test542 test543 test544 test545 test546 test547 test548 test549 test55 test550 test551 test552 test553 test554 test555 test556 test557 test558 test559 test56 test560 test561 test562 test563 test564 test565 test566 test567 test568 test569 test57 test570 test571 test572 test573 test574 test575 test576 test577 test578 test579 test58 test580 test581 test582 test583 test584 test585 test586 test587 test588 test589 test59 test590 test591 test592 test593 test594 test595 test596 test597 test598 test599 test6 test60 test600 test601 test602 test603 test604 test605 test606 test607 test608 test609 test61 test610 test611 test612 test613 test614 test615 test616 test617 test618 test619 test62 test620 test621 test622 test623 test624 test625 test626 test627 test628 test629 test63 test630 test631 test632 test633 test634 test635 test636 test637 test638 test639 test64 test640 test641 test642 test643 test644 test645 test646 test647 test648 test649 test65 test650 test651 test652 test653 test654 test655 test656 test658 test659 test66 test660 test661 test662 test663 test664 test665 test666 test667 test668 test669 test67 test670 test671 test672 test673 test674 test675 test676 test677 test678 test679 test68 test680 test681 test682 test683 test684 test685 test686 test687 test688 test689 test69 test690 test691 test692 test693 test694 test695 test696 test697 test698 test699 test7 test70 test700 test701 test702 test703 test704 test705 test706 test707 test708 test709 test71 test710 test711 test712 test713 test714 test715 test716 test717 test718 test719 test72 test720 test721 test722 test723 test724 test725 test726 test727 test728 test729 test73 test730 test731 test732 test733 test734 test735 test736 test737 test738 test739 test74 test740 test741 test742 test743 test744 test745 test746 test747 test748 test749 test75 test750 test751 test752 test753 test754 test755 test756 test757 test758 test759 test76 test760 test761 test762 test763 test764 test765 test766 test767 test768 test769 test77 test770 test771 test772 test773 test774 test775 test776 test777 test778 test779 test78 test780 test781 test782 test783 test784 test785 test786 test787 test788 test789 test79 test790 test791 test792 test793 test794 test795 test796 test797 test798 test799 test8 test80 test800 test801 test802 test803 test804 test805 test806 test807 test808 test809 test81 test810 test811 test812 test813 test814 test815 test816 test817 test818 test819 test82 test820 test821 test822 test823 test824 test825 test826 test827 test828 test829 test83 test830 test831 test832 test833 test834 test835 test836 test837 test838 test839 test84 test840 test841 test842 test843 test844 test845 test846 test847 test848 test849 test85 test850 test851 test852 test853 test854 test855 test856 test857 test858 test859 test86 test860 test861 test862 test863 test864 test865 test866 test867 test868 test869 test87 test870 test871 test872 test873 test874 test875 test876 test877 test878 test879 test88 test880 test881 test882 test883 test884 test885 test886 test887 test888 test889 test89 test890 test891 test892 test893 test894 test895 test896 test897 test898 test899 test9 test90 test900 test901 test902 test903 test904 test905 test906 test907 test908 test909 test91 test910 test911 test912 test913 test914 test915 test916 test917 test918 test919 test92 test920 test921 test922 test923 test924 test925 test926 test927 test928 test929 test93 test930 test931 test932 test933 test934 test935 test936 test937 test938 test939 test94 test940 test941 test942 test943 test944 test945 test946 test947 test948 test949 test95 test950 test951 test952 test953 test954 test955 test956 test957 test958 test959 test96 test960 test961 test962 test963 test964 test965 test966 test967 test968 test969 test97 test970 test971 test972 test973 test974 test975 test976 test977 test978 test979 test98 test980 test981 test982 test983 test984 test985 test986 test987 test988 test989 test99 test990 test991 test992 test993 test994 test995 test996 test997 test998 test999http
testenv
__init__.py caddy.py certs.py client.py curl.py dante.py dnsd.py env.py httpd.py nghttpx.py ports.py sshd.py vsftpd.py ws_echo_server.pylibtest
.gitignore CMakeLists.txt Makefile.am Makefile.inc cli_ftp_upload.c cli_h2_pausing.c cli_h2_serverpush.c cli_h2_upgrade_extreme.c cli_hx_download.c cli_hx_upload.c cli_tls_session_reuse.c cli_upload_pausing.c cli_ws_data.c cli_ws_pingpong.c first.c first.h lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1549.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1582.c lib1587.c lib1588.c lib1589.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1902.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1920.c lib1921.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1965.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2504.c lib2505.c lib2506.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3033.c lib3034.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib757.c lib758.c lib766.c memptr.c mk-lib1521.pl test1013.pl test1022.pl test307.pl test610.pl test613.pl testtrace.c testtrace.h testutil.c testutil.h unitcheck.hserver
.checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc dnsd.c first.c first.h getpart.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c util.ctunit
.gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.cunit
.gitignore CMakeLists.txt Makefile.am Makefile.inc README.md unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1625.c unit1626.c unit1627.c unit1636.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1666.c unit1667.c unit1668.c unit1669.c unit1674.c unit1675.c unit1676.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit2605.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c unit3216.c unit3219.c unit3300.c unit3301.c unit3302.cexamples
.env config.ini crypto_test.lua env_test.lua fs_example.lua http_server.lua https_test.lua ini_example.lua json.lua log.lua path_fs_example.lua process_example.lua request_download.lua request_test.lua run_all.lua sqlite_example.lua sqlite_http_template.lua stash_test.lua template_test.lua timer.lua websocket.luainiparser
example
iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.initest
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.hjinjac
libjinjac
src
CMakeLists.txt ast.c ast.h block_statement.c block_statement.h buffer.c buffer.h buildin.c buildin.h common.h convert.c convert.h flex_decl.h jfunction.c jfunction.h jinja_expression.l jinja_expression.y jinjac_parse.c jinjac_parse.h jinjac_stream.c jinjac_stream.h jlist.c jlist.h jobject.c jobject.h parameter.c parameter.h str_obj.c str_obj.h trace.c trace.htest
.gitignore CMakeLists.txt autotest.rb test_01.expected test_01.jinja test_01b.expected test_01b.jinja test_01c.expected test_01c.jinja test_01d.expected test_01d.jinja test_02.expected test_02.jinja test_03.expected test_03.jinja test_04.expected test_04.jinja test_05.expected test_05.jinja test_06.expected test_06.jinja test_07.expected test_07.jinja test_08.expected test_08.jinja test_08b.expected test_08b.jinja test_09.expected test_09.jinja test_10.expected test_10.jinja test_11.expected test_11.jinja test_12.expected test_12.jinja test_13.expected test_13.jinja test_14.expected test_14.jinja test_15.expected test_15.jinja test_16.expected test_16.jinja test_17.expected test_17.jinja test_18.expected test_18.jinja test_18b.expected test_18b.jinja test_18c.expected test_18c.jinja test_19.expected test_19.jinja test_19b.expected test_19b.jinja test_19c.expected test_19c.jinja test_19d.expected test_19d.jinja test_19e.expected test_19e.jinja test_19f.expected test_19f.jinja test_20.expected test_20.jinja test_21.expected test_21.jinja test_22.expected test_22.jinja test_22a.expected test_22a.jinja test_22b.expected test_22b.jinja test_23.expected test_23.jinja test_24.expected test_24.jinjalibev
Changes LICENSE Makefile Makefile.am Makefile.in README Symbols.ev Symbols.event aclocal.m4 autogen.sh compile config.guess config.h config.h.in config.status config.sub configure configure.ac depcomp ev++.h ev.3 ev.c ev.h ev.pod ev_epoll.c ev_kqueue.c ev_poll.c ev_port.c ev_select.c ev_vars.h ev_win32.c ev_wrap.h event.c event.h install-sh libev.m4 libtool ltmain.sh missing mkinstalldirs stamp-h1luajit
doc
bluequad-print.css bluequad.css contact.html ext_buffer.html ext_c_api.html ext_ffi.html ext_ffi_api.html ext_ffi_semantics.html ext_ffi_tutorial.html ext_jit.html ext_profiler.html extensions.html install.html luajit.html running.htmldynasm
dasm_arm.h dasm_arm.lua dasm_arm64.h dasm_arm64.lua dasm_mips.h dasm_mips.lua dasm_mips64.lua dasm_ppc.h dasm_ppc.lua dasm_proto.h dasm_x64.lua dasm_x86.h dasm_x86.lua dynasm.luasrc
host
.gitignore README buildvm.c buildvm.h buildvm_asm.c buildvm_fold.c buildvm_lib.c buildvm_libbc.h buildvm_peobj.c genlibbc.lua genminilua.lua genversion.lua minilua.cjit
.gitignore bc.lua bcsave.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_mips.lua dis_mips64.lua dis_mips64el.lua dis_mips64r6.lua dis_mips64r6el.lua dis_mipsel.lua dis_ppc.lua dis_x64.lua dis_x86.lua dump.lua p.lua v.lua zone.luawolfssl
.github
workflows
ada.yml arduino.yml async-examples.yml async.yml atecc608-sim.yml bind.yml cmake-autoconf.yml cmake.yml codespell.yml coverity-scan-fixes.yml cryptocb-only.yml curl.yml cyrus-sasl.yml disable-pk-algs.yml docker-Espressif.yml docker-OpenWrt.yml emnet-nonblock.yml fil-c.yml freertos-mem-track.yml gencertbuf.yml grpc.yml haproxy.yml hostap-vm.yml intelasm-c-fallback.yml ipmitool.yml jwt-cpp.yml krb5.yml libspdm.yml libssh2.yml libvncserver.yml linuxkm.yml macos-apple-native-cert-validation.yml mbedtls.sh mbedtls.yml membrowse-comment.yml membrowse-onboard.yml membrowse-report.yml memcached.sh memcached.yml mono.yml mosquitto.yml msmtp.yml msys2.yml multi-arch.yml multi-compiler.yml net-snmp.yml nginx.yml no-malloc.yml no-tls.yml nss.sh nss.yml ntp.yml ocsp.yml openldap.yml openssh.yml openssl-ech.yml opensslcoexist.yml openvpn.yml os-check.yml packaging.yml pam-ipmi.yml pq-all.yml pr-commit-check.yml psk.yml puf.yml python.yml rng-tools.yml rust-wrapper.yml se050-sim.yml smallStackSize.yml socat.yml softhsm.yml sssd.yml stm32-sim.yml stsafe-a120-sim.yml stunnel.yml symbol-prefixes.yml threadx.yml tls-anvil.yml trackmemory.yml watcomc.yml win-csharp-test.yml wolfCrypt-Wconversion.yml wolfboot-integration.yml wolfsm.yml xcode.yml zephyr-4.x.yml zephyr.ymlIDE
ARDUINO
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.hECLIPSE
Espressif
ESP-IDF
examples
template
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266wolfssl_benchmark
VisualGDB
wolfssl_benchmark_IDF_v4.4_ESP32.sln wolfssl_benchmark_IDF_v4.4_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32.sln wolfssl_benchmark_IDF_v5_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32C3.sln wolfssl_benchmark_IDF_v5_ESP32C3.vgdbproj wolfssl_benchmark_IDF_v5_ESP32S3.sln wolfssl_benchmark_IDF_v5_ESP32S3.vgdbprojwolfssl_client
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbprojwolfssl_server
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbprojwolfssl_test
VisualGDB
wolfssl_test-IDF_v5_ESP32.sln wolfssl_test-IDF_v5_ESP32.vgdbproj wolfssl_test-IDF_v5_ESP32C3.sln wolfssl_test-IDF_v5_ESP32C3.vgdbproj wolfssl_test-IDF_v5_ESP32C6.sln wolfssl_test-IDF_v5_ESP32C6.vgdbproj wolfssl_test_IDF_v5_ESP32S3.sln wolfssl_test_IDF_v5_ESP32S3.vgdbprojGCC-ARM
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ldIAR-EWARM
embOS
SAMV71_XULT
embOS_SAMV71_XULT_user_settings
user_settings.h user_settings_simple_example.h user_settings_verbose_example.hembOS_wolfcrypt_benchmark_SAMV71_XULT
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewpINTIME-RTOS
Makefile README.md include.am libwolfssl.c libwolfssl.vcxproj user_settings.h wolfExamples.c wolfExamples.h wolfExamples.sln wolfExamples.vcxproj wolfssl-lib.sln wolfssl-lib.vcxprojMQX
Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.hMSVS-2019-AZSPHERE
wolfssl_new_azsphere
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.cNETOS
Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.cPlatformIO
examples
wolfssl_benchmark
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspaceROWLEY-CROSSWORKS-ARM
Kinetis_FlashPlacement.xml README.md arm_startup.c benchmark_main.c hw.h include.am kinetis_hw.c retarget.c test_main.c user_settings.h wolfssl.hzp wolfssl_ltc.hzpRenesas
e2studio
RA6M3
README.md README_APRA6M_en.md README_APRA6M_jp.md include.amRX72N
EnvisionKit
Simple
README_EN.md README_JP.mdwolfssl_demo
key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.cSTM32Cube
README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.hWIN
README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxprojWIN-SRTP-KDF-140-3
README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxprojWIN10
README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxprojXCODE
Benchmark
include.amXilinxSDK
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.capple-universal
wolfssl-multiplatform
iotsafe
Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.hmynewt
README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.shcerts
1024
ca-cert.der ca-cert.pem ca-key.der ca-key.pem client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der dh1024.der dh1024.pem dsa-pub-1024.pem dsa1024.der dsa1024.pem include.am rsa1024.der server-cert.der server-cert.pem server-key.der server-key.pemcrl
extra-crls
ca-int-cert-revoked.pem claim-root.pem crl_critical_entry.pem crlnum_57oct.pem crlnum_64oct.pem general-server-crl.pem large_crlnum.pem large_crlnum2.pemdilithium
bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.amecc
bp256r1-key.der bp256r1-key.pem ca-secp256k1-cert.pem ca-secp256k1-key.pem client-bp256r1-cert.der client-bp256r1-cert.pem client-secp256k1-cert.der client-secp256k1-cert.pem genecc.sh include.am secp256k1-key.der secp256k1-key.pem secp256k1-param.pem secp256k1-privkey.der secp256k1-privkey.pem server-bp256r1-cert.der server-bp256r1-cert.pem server-secp256k1-cert.der server-secp256k1-cert.pem server2-secp256k1-cert.der server2-secp256k1-cert.pem wolfssl.cnf wolfssl_384.cnfed25519
ca-ed25519-key.der ca-ed25519-key.pem ca-ed25519-priv.der ca-ed25519-priv.pem ca-ed25519.der ca-ed25519.pem client-ed25519-key.der client-ed25519-key.pem client-ed25519-priv.der client-ed25519-priv.pem client-ed25519.der client-ed25519.pem eddsa-ed25519.der eddsa-ed25519.pem gen-ed25519-certs.sh gen-ed25519-keys.sh gen-ed25519.sh include.am root-ed25519-key.der root-ed25519-key.pem root-ed25519-priv.der root-ed25519-priv.pem root-ed25519.der root-ed25519.pem server-ed25519-cert.pem server-ed25519-key.der server-ed25519-key.pem server-ed25519-priv.der server-ed25519-priv.pem server-ed25519.der server-ed25519.pemed448
ca-ed448-key.der ca-ed448-key.pem ca-ed448-priv.der ca-ed448-priv.pem ca-ed448.der ca-ed448.pem client-ed448-key.der client-ed448-key.pem client-ed448-priv.der client-ed448-priv.pem client-ed448.der client-ed448.pem gen-ed448-certs.sh gen-ed448-keys.sh include.am root-ed448-key.der root-ed448-key.pem root-ed448-priv.der root-ed448-priv.pem root-ed448.der root-ed448.pem server-ed448-cert.pem server-ed448-key.der server-ed448-key.pem server-ed448-priv.der server-ed448-priv.pem server-ed448.der server-ed448.pemexternal
DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.amintermediate
ca_false_intermediate
gentestcert.sh int_ca.key server.key test_ca.key test_ca.pem test_int_not_cacert.pem test_sign_bynoca_srv.pem wolfssl_base.conf wolfssl_srv.conflms
bc_hss_L2_H5_W8_root.der bc_hss_L3_H5_W4_root.der bc_lms_chain_ca.der bc_lms_chain_leaf.der bc_lms_native_bc_root.der bc_lms_sha256_h10_w8_root.der bc_lms_sha256_h5_w4_root.der include.ammldsa
README.txt include.am mldsa44-cert.der mldsa44-cert.pem mldsa44-key.pem mldsa44_bare-priv.der mldsa44_bare-seed.der mldsa44_oqskeypair.der mldsa44_priv-only.der mldsa44_pub-spki.der mldsa44_seed-only.der mldsa44_seed-priv.der mldsa65-cert.der mldsa65-cert.pem mldsa65-key.pem mldsa65_bare-priv.der mldsa65_bare-seed.der mldsa65_oqskeypair.der mldsa65_priv-only.der mldsa65_pub-spki.der mldsa65_seed-only.der mldsa65_seed-priv.der mldsa87-cert.der mldsa87-cert.pem mldsa87-key.pem mldsa87_bare-priv.der mldsa87_bare-seed.der mldsa87_oqskeypair.der mldsa87_priv-only.der mldsa87_pub-spki.der mldsa87_seed-only.der mldsa87_seed-priv.derocsp
imposter-root-ca-cert.der imposter-root-ca-cert.pem imposter-root-ca-key.der imposter-root-ca-key.pem include.am index-ca-and-intermediate-cas.txt index-ca-and-intermediate-cas.txt.attr index-intermediate1-ca-issued-certs.txt index-intermediate1-ca-issued-certs.txt.attr index-intermediate2-ca-issued-certs.txt index-intermediate2-ca-issued-certs.txt.attr index-intermediate3-ca-issued-certs.txt index-intermediate3-ca-issued-certs.txt.attr intermediate1-ca-cert.der intermediate1-ca-cert.pem intermediate1-ca-key.der intermediate1-ca-key.pem intermediate2-ca-cert.der intermediate2-ca-cert.pem intermediate2-ca-key.der intermediate2-ca-key.pem intermediate3-ca-cert.der intermediate3-ca-cert.pem intermediate3-ca-key.der intermediate3-ca-key.pem ocsp-responder-cert.der ocsp-responder-cert.pem ocsp-responder-key.der ocsp-responder-key.pem openssl.cnf renewcerts-for-test.sh renewcerts.sh root-ca-cert.der root-ca-cert.pem root-ca-crl.pem root-ca-key.der root-ca-key.pem server1-cert.der server1-cert.pem server1-chain-noroot.pem server1-key.der server1-key.pem server2-cert.der server2-cert.pem server2-key.der server2-key.pem server3-cert.der server3-cert.pem server3-key.der server3-key.pem server4-cert.der server4-cert.pem server4-key.der server4-key.pem server5-cert.der server5-cert.pem server5-key.der server5-key.pem test-leaf-response.der test-multi-response.der test-response-nointern.der test-response-rsapss.der test-response.derp521
ca-p521-key.der ca-p521-key.pem ca-p521-priv.der ca-p521-priv.pem ca-p521.der ca-p521.pem client-p521-key.der client-p521-key.pem client-p521-priv.der client-p521-priv.pem client-p521.der client-p521.pem gen-p521-certs.sh gen-p521-keys.sh include.am root-p521-key.der root-p521-key.pem root-p521-priv.der root-p521-priv.pem root-p521.der root-p521.pem server-p521-cert.pem server-p521-key.der server-p521-key.pem server-p521-priv.der server-p521-priv.pem server-p521.der server-p521.pemrpk
client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.derrsapss
ca-3072-rsapss-key.der ca-3072-rsapss-key.pem ca-3072-rsapss-priv.der ca-3072-rsapss-priv.pem ca-3072-rsapss.der ca-3072-rsapss.pem ca-rsapss-key.der ca-rsapss-key.pem ca-rsapss-priv.der ca-rsapss-priv.pem ca-rsapss.der ca-rsapss.pem client-3072-rsapss-key.der client-3072-rsapss-key.pem client-3072-rsapss-priv.der client-3072-rsapss-priv.pem client-3072-rsapss.der client-3072-rsapss.pem client-rsapss-key.der client-rsapss-key.pem client-rsapss-priv.der client-rsapss-priv.pem client-rsapss.der client-rsapss.pem gen-rsapss-keys.sh include.am renew-rsapss-certs.sh root-3072-rsapss-key.der root-3072-rsapss-key.pem root-3072-rsapss-priv.der root-3072-rsapss-priv.pem root-3072-rsapss.der root-3072-rsapss.pem root-rsapss-key.der root-rsapss-key.pem root-rsapss-priv.der root-rsapss-priv.pem root-rsapss.der root-rsapss.pem server-3072-rsapss-cert.pem server-3072-rsapss-key.der server-3072-rsapss-key.pem server-3072-rsapss-priv.der server-3072-rsapss-priv.pem server-3072-rsapss.der server-3072-rsapss.pem server-mix-rsapss-cert.pem server-rsapss-cert.pem server-rsapss-key.der server-rsapss-key.pem server-rsapss-priv.der server-rsapss-priv.pem server-rsapss.der server-rsapss.pemslhdsa
bench_slhdsa_sha2_128f_key.der bench_slhdsa_sha2_128s_key.der bench_slhdsa_sha2_192f_key.der bench_slhdsa_sha2_192s_key.der bench_slhdsa_sha2_256f_key.der bench_slhdsa_sha2_256s_key.der bench_slhdsa_shake128f_key.der bench_slhdsa_shake128s_key.der bench_slhdsa_shake192f_key.der bench_slhdsa_shake192s_key.der bench_slhdsa_shake256f_key.der bench_slhdsa_shake256s_key.der client-mldsa44-priv.pem client-mldsa44-sha2.der client-mldsa44-sha2.pem client-mldsa44-shake.der client-mldsa44-shake.pem gen-slhdsa-mldsa-certs.sh include.am root-slhdsa-sha2-128s-priv.der root-slhdsa-sha2-128s-priv.pem root-slhdsa-sha2-128s.der root-slhdsa-sha2-128s.pem root-slhdsa-shake-128s-priv.der root-slhdsa-shake-128s-priv.pem root-slhdsa-shake-128s.der root-slhdsa-shake-128s.pem server-mldsa44-priv.pem server-mldsa44-sha2.der server-mldsa44-sha2.pem server-mldsa44-shake.der server-mldsa44-shake.pemsm2
ca-sm2-key.der ca-sm2-key.pem ca-sm2-priv.der ca-sm2-priv.pem ca-sm2.der ca-sm2.pem client-sm2-key.der client-sm2-key.pem client-sm2-priv.der client-sm2-priv.pem client-sm2.der client-sm2.pem fix_sm2_spki.py gen-sm2-certs.sh gen-sm2-keys.sh include.am root-sm2-key.der root-sm2-key.pem root-sm2-priv.der root-sm2-priv.pem root-sm2.der root-sm2.pem self-sm2-cert.pem self-sm2-key.pem self-sm2-priv.pem server-sm2-cert.der server-sm2-cert.pem server-sm2-key.der server-sm2-key.pem server-sm2-priv.der server-sm2-priv.pem server-sm2.der server-sm2.pemstatickeys
dh-ffdhe2048-params.pem dh-ffdhe2048-pub.der dh-ffdhe2048-pub.pem dh-ffdhe2048.der dh-ffdhe2048.pem ecc-secp256r1.der ecc-secp256r1.pem gen-static.sh include.am x25519-pub.der x25519-pub.pem x25519.der x25519.pemtest
catalog.txt cert-bad-neg-int.der cert-bad-oid.der cert-bad-utf8.der cert-ext-ia.cfg cert-ext-ia.der cert-ext-ia.pem cert-ext-joi.cfg cert-ext-joi.der cert-ext-joi.pem cert-ext-mnc.der cert-ext-multiple.cfg cert-ext-multiple.der cert-ext-multiple.pem cert-ext-nc-combined.der cert-ext-nc-combined.pem cert-ext-nc.cfg cert-ext-nc.der cert-ext-nc.pem cert-ext-ncdns.der cert-ext-ncdns.pem cert-ext-ncip.der cert-ext-ncip.pem cert-ext-ncmixed.der cert-ext-ncmulti.der cert-ext-ncmulti.pem cert-ext-ncrid.der cert-ext-ncrid.pem cert-ext-nct.cfg cert-ext-nct.der cert-ext-nct.pem cert-ext-ndir-exc.cfg cert-ext-ndir-exc.der cert-ext-ndir-exc.pem cert-ext-ndir.cfg cert-ext-ndir.der cert-ext-ndir.pem cert-ext-ns.der cert-over-max-altnames.cfg cert-over-max-altnames.der cert-over-max-altnames.pem cert-over-max-nc.cfg cert-over-max-nc.der cert-over-max-nc.pem client-ecc-cert-ski.hex cn-ip-literal.der cn-ip-wildcard.der crit-cert.pem crit-key.pem dh1024.der dh1024.pem dh512.der dh512.pem digsigku.pem encrypteddata.msg gen-badsig.sh gen-ext-certs.sh gen-testcerts.sh include.am kari-keyid-cms.msg ktri-keyid-cms.msg ossl-trusted-cert.pem server-badaltname.der server-badaltname.pem server-badaltnull.der server-badaltnull.pem server-badcn.der server-badcn.pem server-badcnnull.der server-badcnnull.pem server-cert-ecc-badsig.der server-cert-ecc-badsig.pem server-cert-rsa-badsig.der server-cert-rsa-badsig.pem server-duplicate-policy.pem server-garbage.der server-garbage.pem server-goodalt.der server-goodalt.pem server-goodaltwild.der server-goodaltwild.pem server-goodcn.der server-goodcn.pem server-goodcnwild.der server-goodcnwild.pem server-localhost.der server-localhost.pem smime-test-canon.p7s smime-test-multipart-badsig.p7s smime-test-multipart.p7s smime-test.p7stest-pathlen
assemble-chains.sh chainA-ICA1-key.pem chainA-ICA1-pathlen0.pem chainA-assembled.pem chainA-entity-key.pem chainA-entity.pem chainB-ICA1-key.pem chainB-ICA1-pathlen0.pem chainB-ICA2-key.pem chainB-ICA2-pathlen1.pem chainB-assembled.pem chainB-entity-key.pem chainB-entity.pem chainC-ICA1-key.pem chainC-ICA1-pathlen1.pem chainC-assembled.pem chainC-entity-key.pem chainC-entity.pem chainD-ICA1-key.pem chainD-ICA1-pathlen127.pem chainD-assembled.pem chainD-entity-key.pem chainD-entity.pem chainE-ICA1-key.pem chainE-ICA1-pathlen128.pem chainE-assembled.pem chainE-entity-key.pem chainE-entity.pem chainF-ICA1-key.pem chainF-ICA1-pathlen1.pem chainF-ICA2-key.pem chainF-ICA2-pathlen0.pem chainF-assembled.pem chainF-entity-key.pem chainF-entity.pem chainG-ICA1-key.pem chainG-ICA1-pathlen0.pem chainG-ICA2-key.pem chainG-ICA2-pathlen1.pem chainG-ICA3-key.pem chainG-ICA3-pathlen99.pem chainG-ICA4-key.pem chainG-ICA4-pathlen5.pem chainG-ICA5-key.pem chainG-ICA5-pathlen20.pem chainG-ICA6-key.pem chainG-ICA6-pathlen10.pem chainG-ICA7-key.pem chainG-ICA7-pathlen100.pem chainG-assembled.pem chainG-entity-key.pem chainG-entity.pem chainH-ICA1-key.pem chainH-ICA1-pathlen0.pem chainH-ICA2-key.pem chainH-ICA2-pathlen2.pem chainH-ICA3-key.pem chainH-ICA3-pathlen2.pem chainH-ICA4-key.pem chainH-ICA4-pathlen2.pem chainH-assembled.pem chainH-entity-key.pem chainH-entity.pem chainI-ICA1-key.pem chainI-ICA1-no_pathlen.pem chainI-ICA2-key.pem chainI-ICA2-no_pathlen.pem chainI-ICA3-key.pem chainI-ICA3-pathlen2.pem chainI-assembled.pem chainI-entity-key.pem chainI-entity.pem chainJ-ICA1-key.pem chainJ-ICA1-no_pathlen.pem chainJ-ICA2-key.pem chainJ-ICA2-no_pathlen.pem chainJ-ICA3-key.pem chainJ-ICA3-no_pathlen.pem chainJ-ICA4-key.pem chainJ-ICA4-pathlen2.pem chainJ-assembled.pem chainJ-entity-key.pem chainJ-entity.pem include.am refreshkeys.shtest-serial0
ee_normal.pem ee_serial0.pem generate_certs.sh include.am intermediate_serial0.pem root_serial0.pem root_serial0_key.pem selfsigned_nonca_serial0.pemxmss
bc_xmss_chain_ca.der bc_xmss_chain_leaf.der bc_xmss_sha2_10_256_root.der bc_xmss_sha2_16_256_root.der bc_xmssmt_sha2_20_2_256_root.der bc_xmssmt_sha2_20_4_256_root.der bc_xmssmt_sha2_40_8_256_root.der include.amcmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.indebian
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.indoc
dox_comments
header_files
aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h puf.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wc_she.h wc_slhdsa.h wolfio.hheader_files-ja
aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wolfio.hexamples
async
Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.hconfigs
README.md include.am user_settings_EBSnet.h user_settings_all.h user_settings_arduino.h user_settings_baremetal.h user_settings_ca.h user_settings_curve25519nonblock.h user_settings_dtls13.h user_settings_eccnonblock.h user_settings_espressif.h user_settings_fipsv2.h user_settings_fipsv5.h user_settings_min_ecc.h user_settings_openssl_compat.h user_settings_pkcs7.h user_settings_platformio.h user_settings_pq.h user_settings_rsa_only.h user_settings_stm32.h user_settings_template.h user_settings_tls12.h user_settings_tls13.h user_settings_wolfboot_keytools.h user_settings_wolfssh.h user_settings_wolftpm.hechoclient
echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quitlinuxkm
Kbuild Makefile README.md get_thread_size.c include.am linuxkm-fips-hash-wrapper.sh linuxkm-fips-hash.c linuxkm_memory.c linuxkm_memory.h linuxkm_wc_port.h lkcapi_aes_glue.c lkcapi_dh_glue.c lkcapi_ecdh_glue.c lkcapi_ecdsa_glue.c lkcapi_glue.c lkcapi_rsa_glue.c lkcapi_sha_glue.c module_exports.c.template module_hooks.c pie_redirect_table.c wolfcrypt.lds x86_vector_register_glue.cm4
ax_add_am_macro.m4 ax_am_jobserver.m4 ax_am_macros.m4 ax_append_compile_flags.m4 ax_append_flag.m4 ax_append_link_flags.m4 ax_append_to_file.m4 ax_atomic.m4 ax_bsdkm.m4 ax_check_compile_flag.m4 ax_check_link_flag.m4 ax_compiler_version.m4 ax_count_cpus.m4 ax_create_generic_config.m4 ax_debug.m4 ax_file_escapes.m4 ax_harden_compiler_flags.m4 ax_linuxkm.m4 ax_print_to_file.m4 ax_pthread.m4 ax_require_defined.m4 ax_tls.m4 ax_vcs_checkout.m4 hexversion.m4 lib_socket_nsl.m4 visibility.m4mqx
wolfcrypt_benchmark
ReferencedRSESystems.xml wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launchwolfcrypt_test
ReferencedRSESystems.xml wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launchwolfssl_client
ReferencedRSESystems.xml wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launchscripts
aria-cmake-build-test.sh asn1_oid_sum.pl benchmark.test benchmark_compare.sh cleanup_testfiles.sh crl-gen-openssl.test crl-revoked.test dertoc.pl dtls.test dtlscid.test external.test google.test include.am makedistsmall.sh memtest.sh ocsp-responder-openssl-interop.test ocsp-stapling-with-ca-as-responder.test ocsp-stapling-with-wolfssl-responder.test ocsp-stapling.test ocsp-stapling2.test ocsp-stapling_tls13multi.test ocsp.test openssl.test openssl_srtp.test pem.test ping.test pkcallbacks.test psk.test resume.test rsapss.test sniffer-gen.sh sniffer-ipv6.pcap sniffer-static-rsa.pcap sniffer-testsuite.test sniffer-tls12-keylog.out sniffer-tls12-keylog.pcap sniffer-tls12-keylog.sslkeylog sniffer-tls13-dh-resume.pcap sniffer-tls13-dh.pcap sniffer-tls13-ecc-resume.pcap sniffer-tls13-ecc.pcap sniffer-tls13-hrr.pcap sniffer-tls13-keylog.out sniffer-tls13-keylog.pcap sniffer-tls13-keylog.sslkeylog sniffer-tls13-x25519-resume.pcap sniffer-tls13-x25519.pcap stm32l4-v4_0_1_build.sh tls13.test trusted_peer.test unit.test.in user_settings_asm.shsrc
bio.c conf.c crl.c dtls.c dtls13.c include.am internal.c keys.c ocsp.c pk.c pk_ec.c pk_rsa.c quic.c sniffer.c ssl.c ssl_api_cert.c ssl_api_crl_ocsp.c ssl_api_pk.c ssl_asn1.c ssl_bn.c ssl_certman.c ssl_crypto.c ssl_ech.c ssl_load.c ssl_misc.c ssl_p7p12.c ssl_sess.c ssl_sk.c tls.c tls13.c wolfio.c x509.c x509_str.ctests
api
api.h api_decl.h create_ocsp_test_blobs.py include.am test_aes.c test_aes.h test_arc4.c test_arc4.h test_ascon.c test_ascon.h test_ascon_kats.h test_asn.c test_asn.h test_blake2.c test_blake2.h test_camellia.c test_camellia.h test_certman.c test_certman.h test_chacha.c test_chacha.h test_chacha20_poly1305.c test_chacha20_poly1305.h test_cmac.c test_cmac.h test_curve25519.c test_curve25519.h test_curve448.c test_curve448.h test_des3.c test_des3.h test_dh.c test_dh.h test_digest.h test_dsa.c test_dsa.h test_dtls.c test_dtls.h test_ecc.c test_ecc.h test_ed25519.c test_ed25519.h test_ed448.c test_ed448.h test_evp.c test_evp.h test_evp_cipher.c test_evp_cipher.h test_evp_digest.c test_evp_digest.h test_evp_pkey.c test_evp_pkey.h test_hash.c test_hash.h test_hmac.c test_hmac.h test_md2.c test_md2.h test_md4.c test_md4.h test_md5.c test_md5.h test_mldsa.c test_mldsa.h test_mlkem.c test_mlkem.h test_ocsp.c test_ocsp.h test_ocsp_test_blobs.h test_ossl_asn1.c test_ossl_asn1.h test_ossl_bio.c test_ossl_bio.h test_ossl_bn.c test_ossl_bn.h test_ossl_cipher.c test_ossl_cipher.h test_ossl_dgst.c test_ossl_dgst.h test_ossl_dh.c test_ossl_dh.h test_ossl_dsa.c test_ossl_dsa.h test_ossl_ec.c test_ossl_ec.h test_ossl_ecx.c test_ossl_ecx.h test_ossl_mac.c test_ossl_mac.h test_ossl_obj.c test_ossl_obj.h test_ossl_p7p12.c test_ossl_p7p12.h test_ossl_pem.c test_ossl_pem.h test_ossl_rand.c test_ossl_rand.h test_ossl_rsa.c test_ossl_rsa.h test_ossl_sk.c test_ossl_sk.h test_ossl_x509.c test_ossl_x509.h test_ossl_x509_acert.c test_ossl_x509_acert.h test_ossl_x509_crypto.c test_ossl_x509_crypto.h test_ossl_x509_ext.c test_ossl_x509_ext.h test_ossl_x509_info.c test_ossl_x509_info.h test_ossl_x509_io.c test_ossl_x509_io.h test_ossl_x509_lu.c test_ossl_x509_lu.h test_ossl_x509_name.c test_ossl_x509_name.h test_ossl_x509_pk.c test_ossl_x509_pk.h test_ossl_x509_str.c test_ossl_x509_str.h test_ossl_x509_vp.c test_ossl_x509_vp.h test_pkcs12.c test_pkcs12.h test_pkcs7.c test_pkcs7.h test_poly1305.c test_poly1305.h test_random.c test_random.h test_rc2.c test_rc2.h test_ripemd.c test_ripemd.h test_rsa.c test_rsa.h test_sha.c test_sha.h test_sha256.c test_sha256.h test_sha3.c test_sha3.h test_sha512.c test_sha512.h test_she.c test_she.h test_signature.c test_signature.h test_slhdsa.c test_slhdsa.h test_sm2.c test_sm2.h test_sm3.c test_sm3.h test_sm4.c test_sm4.h test_tls.c test_tls.h test_tls13.c test_tls13.h test_tls_ext.c test_tls_ext.h test_wc_encrypt.c test_wc_encrypt.h test_wolfmath.c test_wolfmath.h test_x509.c test_x509.hwolfcrypt
benchmark
README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.amsrc
port
Espressif
esp_crt_bundle
README.md cacrt_all.pem cacrt_deprecated.pem cacrt_local.pem esp_crt_bundle.c gen_crt_bundle.py pio_install_cryptography.pyRenesas
README.md renesas_common.c renesas_fspsm_aes.c renesas_fspsm_rsa.c renesas_fspsm_sha.c renesas_fspsm_util.c renesas_rx64_hw_sha.c renesas_rx64_hw_util.c renesas_tsip_aes.c renesas_tsip_rsa.c renesas_tsip_sha.c renesas_tsip_util.carm
armv8-32-aes-asm.S armv8-32-aes-asm_c.c armv8-32-chacha-asm.S armv8-32-chacha-asm_c.c armv8-32-curve25519.S armv8-32-curve25519_c.c armv8-32-mlkem-asm.S armv8-32-mlkem-asm_c.c armv8-32-poly1305-asm.S armv8-32-poly1305-asm_c.c armv8-32-sha256-asm.S armv8-32-sha256-asm_c.c armv8-32-sha3-asm.S armv8-32-sha3-asm_c.c armv8-32-sha512-asm.S armv8-32-sha512-asm_c.c armv8-aes-asm.S armv8-aes-asm_c.c armv8-aes.c armv8-chacha-asm.S armv8-chacha-asm_c.c armv8-curve25519.S armv8-curve25519_c.c armv8-mlkem-asm.S armv8-mlkem-asm_c.c armv8-poly1305-asm.S armv8-poly1305-asm_c.c armv8-sha256-asm.S armv8-sha256-asm_c.c armv8-sha256.c armv8-sha3-asm.S armv8-sha3-asm_c.c armv8-sha512-asm.S armv8-sha512-asm_c.c armv8-sha512.c cryptoCell.c cryptoCellHash.c thumb2-aes-asm.S thumb2-aes-asm_c.c thumb2-chacha-asm.S thumb2-chacha-asm_c.c thumb2-curve25519.S thumb2-curve25519_c.c thumb2-mlkem-asm.S thumb2-mlkem-asm_c.c thumb2-poly1305-asm.S thumb2-poly1305-asm_c.c thumb2-sha256-asm.S thumb2-sha256-asm_c.c thumb2-sha3-asm.S thumb2-sha3-asm_c.c thumb2-sha512-asm.S thumb2-sha512-asm_c.ccaam
README.md caam_aes.c caam_doc.pdf caam_driver.c caam_error.c caam_integrity.c caam_qnx.c caam_sha.c wolfcaam_aes.c wolfcaam_cmac.c wolfcaam_ecdsa.c wolfcaam_fsl_nxp.c wolfcaam_hash.c wolfcaam_hmac.c wolfcaam_init.c wolfcaam_qnx.c wolfcaam_rsa.c wolfcaam_seco.c wolfcaam_x25519.cdevcrypto
README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.criscv
riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.cwolfssl
openssl
aes.h asn1.h asn1t.h bio.h bn.h buffer.h camellia.h cmac.h cms.h compat_types.h conf.h crypto.h des.h dh.h dsa.h ec.h ec25519.h ec448.h ecdh.h ecdsa.h ed25519.h ed448.h engine.h err.h evp.h fips_rand.h hmac.h include.am kdf.h lhash.h md4.h md5.h modes.h obj_mac.h objects.h ocsp.h opensslconf.h opensslv.h ossl_typ.h pem.h pkcs12.h pkcs7.h rand.h rc4.h ripemd.h rsa.h safestack.h sha.h sha3.h srp.h ssl.h ssl23.h stack.h tls1.h txt_db.h ui.h x509.h x509_vfy.h x509v3.hwolfcrypt
port
Renesas
renesas-fspsm-crypt.h renesas-fspsm-types.h renesas-rx64-hw-crypt.h renesas-tsip-crypt.h renesas_cmn.h renesas_fspsm_internal.h renesas_sync.h renesas_tsip_internal.h renesas_tsip_types.hcaam
caam_driver.h caam_error.h caam_qnx.h wolfcaam.h wolfcaam_aes.h wolfcaam_cmac.h wolfcaam_ecdsa.h wolfcaam_fsl_nxp.h wolfcaam_hash.h wolfcaam_qnx.h wolfcaam_rsa.h wolfcaam_seco.h wolfcaam_sha.h wolfcaam_x25519.hwrapper
Ada
examples
src
aes_verify_main.adb rsa_verify_main.adb sha256_main.adb spark_sockets.adb spark_sockets.ads spark_terminal.adb spark_terminal.ads tls_client.adb tls_client.ads tls_client_main.adb tls_server.adb tls_server.ads tls_server_main.adbtests
src
aes_bindings_tests.adb aes_bindings_tests.ads rsa_verify_bindings_tests.adb rsa_verify_bindings_tests.ads sha256_bindings_tests.adb sha256_bindings_tests.ads tests.adbCSharp
wolfSSL-Example-IOCallbacks
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csprojwolfSSL-TLS-ServerThreaded
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csprojrust
wolfssl-wolfcrypt
src
aes.rs blake2.rs chacha20_poly1305.rs cmac.rs cmac_mac.rs curve25519.rs dh.rs dilithium.rs ecc.rs ecdsa.rs ed25519.rs ed448.rs fips.rs hkdf.rs hmac.rs hmac_mac.rs kdf.rs lib.rs lms.rs mlkem.rs mlkem_kem.rs pbkdf2_password_hash.rs prf.rs random.rs rsa.rs rsa_pkcs1v15.rs sha.rs sha_digest.rs sys.rstests
test_aes.rs test_blake2.rs test_chacha20_poly1305.rs test_cmac.rs test_cmac_mac.rs test_curve25519.rs test_dh.rs test_dilithium.rs test_ecc.rs test_ecdsa.rs test_ed25519.rs test_ed448.rs test_hkdf.rs test_hmac.rs test_hmac_mac.rs test_kdf.rs test_lms.rs test_mlkem.rs test_mlkem_kem.rs test_pbkdf2_password_hash.rs test_prf.rs test_random.rs test_rsa.rs test_rsa_pkcs1v15.rs test_sha.rs test_sha_digest.rs test_wolfcrypt.rszephyr
samples
wolfssl_benchmark
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.confwolfssl_test
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl/wolfcrypt/src/sha512_asm.S
raw
1/* sha512_asm.S */
2/*
3 * Copyright (C) 2006-2026 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22#ifdef WOLFSSL_USER_SETTINGS
23#ifdef WOLFSSL_USER_SETTINGS_ASM
24/*
25 * user_settings_asm.h is a file generated by the script user_settings_asm.sh.
26 * The script takes in a user_settings.h and produces user_settings_asm.h, which
27 * is a stripped down version of user_settings.h containing only preprocessor
28 * directives. This makes the header safe to include in assembly (.S) files.
29 */
30#include "user_settings_asm.h"
31#else
32/*
33 * Note: if user_settings.h contains any C code (e.g. a typedef or function
34 * prototype), including it here in an assembly (.S) file will cause an
35 * assembler failure. See user_settings_asm.h above.
36 */
37#include "user_settings.h"
38#endif /* WOLFSSL_USER_SETTINGS_ASM */
39#endif /* WOLFSSL_USER_SETTINGS */
40
41#ifndef HAVE_INTEL_AVX1
42#define HAVE_INTEL_AVX1
43#endif /* HAVE_INTEL_AVX1 */
44#ifndef NO_AVX2_SUPPORT
45#ifndef HAVE_INTEL_AVX2
46#define HAVE_INTEL_AVX2
47#endif /* HAVE_INTEL_AVX2 */
48#endif /* NO_AVX2_SUPPORT */
49
50#ifdef HAVE_INTEL_AVX1
51#ifndef __APPLE__
52.data
53#else
54.section __DATA,__data
55#endif /* __APPLE__ */
56#ifndef __APPLE__
57.align 32
58#else
59.p2align 5
60#endif /* __APPLE__ */
61L_avx1_sha512_k:
62.quad 0x428a2f98d728ae22,0x7137449123ef65cd
63.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
64.quad 0x3956c25bf348b538,0x59f111f1b605d019
65.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
66.quad 0xd807aa98a3030242,0x12835b0145706fbe
67.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
68.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
69.quad 0x9bdc06a725c71235,0xc19bf174cf692694
70.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
71.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
72.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
73.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
74.quad 0x983e5152ee66dfab,0xa831c66d2db43210
75.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
76.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
77.quad 0x06ca6351e003826f,0x142929670a0e6e70
78.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
79.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
80.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
81.quad 0x81c2c92e47edaee6,0x92722c851482353b
82.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
83.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
84.quad 0xd192e819d6ef5218,0xd69906245565a910
85.quad 0xf40e35855771202a,0x106aa07032bbd1b8
86.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
87.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
88.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
89.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
90.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
91.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
92.quad 0x90befffa23631e28,0xa4506cebde82bde9
93.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
94.quad 0xca273eceea26619c,0xd186b8c721c0c207
95.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
96.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
97.quad 0x113f9804bef90dae,0x1b710b35131c471b
98.quad 0x28db77f523047d84,0x32caab7b40c72493
99.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
100.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
101.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
102#ifndef __APPLE__
103.data
104#else
105.section __DATA,__data
106#endif /* __APPLE__ */
107#ifndef __APPLE__
108.align 16
109#else
110.p2align 4
111#endif /* __APPLE__ */
112L_avx1_sha512_flip_mask:
113.quad 0x0001020304050607,0x08090a0b0c0d0e0f
114#ifndef __APPLE__
115.text
116.globl Transform_Sha512_AVX1
117.type Transform_Sha512_AVX1,@function
118.align 16
119Transform_Sha512_AVX1:
120#else
121.section __TEXT,__text
122.globl _Transform_Sha512_AVX1
123.p2align 4
124_Transform_Sha512_AVX1:
125#endif /* __APPLE__ */
126 pushq %rbx
127 pushq %r12
128 pushq %r13
129 pushq %r14
130 pushq %r15
131 subq $0x88, %rsp
132 leaq 64(%rdi), %rax
133 vmovdqa L_avx1_sha512_flip_mask(%rip), %xmm14
134 movq (%rdi), %r8
135 movq 8(%rdi), %r9
136 movq 16(%rdi), %r10
137 movq 24(%rdi), %r11
138 movq 32(%rdi), %r12
139 movq 40(%rdi), %r13
140 movq 48(%rdi), %r14
141 movq 56(%rdi), %r15
142 vmovdqu (%rax), %xmm0
143 vmovdqu 16(%rax), %xmm1
144 vpshufb %xmm14, %xmm0, %xmm0
145 vpshufb %xmm14, %xmm1, %xmm1
146 vmovdqu 32(%rax), %xmm2
147 vmovdqu 48(%rax), %xmm3
148 vpshufb %xmm14, %xmm2, %xmm2
149 vpshufb %xmm14, %xmm3, %xmm3
150 vmovdqu 64(%rax), %xmm4
151 vmovdqu 80(%rax), %xmm5
152 vpshufb %xmm14, %xmm4, %xmm4
153 vpshufb %xmm14, %xmm5, %xmm5
154 vmovdqu 96(%rax), %xmm6
155 vmovdqu 112(%rax), %xmm7
156 vpshufb %xmm14, %xmm6, %xmm6
157 vpshufb %xmm14, %xmm7, %xmm7
158 movl $4, 128(%rsp)
159 leaq L_avx1_sha512_k(%rip), %rsi
160 movq %r9, %rbx
161 movq %r12, %rax
162 xorq %r10, %rbx
163 # Start of 16 rounds
164L_transform_sha512_avx1_start:
165 vpaddq (%rsi), %xmm0, %xmm8
166 vpaddq 16(%rsi), %xmm1, %xmm9
167 vmovdqu %xmm8, (%rsp)
168 vmovdqu %xmm9, 16(%rsp)
169 vpaddq 32(%rsi), %xmm2, %xmm8
170 vpaddq 48(%rsi), %xmm3, %xmm9
171 vmovdqu %xmm8, 32(%rsp)
172 vmovdqu %xmm9, 48(%rsp)
173 vpaddq 64(%rsi), %xmm4, %xmm8
174 vpaddq 80(%rsi), %xmm5, %xmm9
175 vmovdqu %xmm8, 64(%rsp)
176 vmovdqu %xmm9, 80(%rsp)
177 vpaddq 96(%rsi), %xmm6, %xmm8
178 vpaddq 112(%rsi), %xmm7, %xmm9
179 vmovdqu %xmm8, 96(%rsp)
180 vmovdqu %xmm9, 112(%rsp)
181 addq $0x80, %rsi
182 # msg_sched: 0-1
183 # rnd_0: 0 - 0
184 rorq $23, %rax
185 vpalignr $8, %xmm0, %xmm1, %xmm12
186 vpalignr $8, %xmm4, %xmm5, %xmm13
187 # rnd_0: 1 - 1
188 movq %r8, %rdx
189 movq %r13, %rcx
190 addq (%rsp), %r15
191 xorq %r14, %rcx
192 vpsrlq $0x01, %xmm12, %xmm8
193 vpsllq $63, %xmm12, %xmm9
194 # rnd_0: 2 - 3
195 xorq %r12, %rax
196 andq %r12, %rcx
197 rorq $4, %rax
198 xorq %r14, %rcx
199 vpsrlq $8, %xmm12, %xmm10
200 vpsllq $56, %xmm12, %xmm11
201 # rnd_0: 4 - 5
202 xorq %r12, %rax
203 addq %rcx, %r15
204 rorq $14, %rax
205 xorq %r9, %rdx
206 vpor %xmm9, %xmm8, %xmm8
207 vpor %xmm11, %xmm10, %xmm10
208 # rnd_0: 6 - 7
209 addq %rax, %r15
210 movq %r8, %rcx
211 andq %rdx, %rbx
212 rorq $5, %rcx
213 vpsrlq $7, %xmm12, %xmm11
214 vpxor %xmm10, %xmm8, %xmm8
215 # rnd_0: 8 - 9
216 xorq %r8, %rcx
217 xorq %r9, %rbx
218 rorq $6, %rcx
219 addq %r15, %r11
220 vpxor %xmm11, %xmm8, %xmm8
221 vpaddq %xmm0, %xmm13, %xmm0
222 # rnd_0: 10 - 11
223 xorq %r8, %rcx
224 addq %rbx, %r15
225 rorq $28, %rcx
226 movq %r11, %rax
227 addq %rcx, %r15
228 # rnd_1: 0 - 0
229 rorq $23, %rax
230 vpaddq %xmm0, %xmm8, %xmm0
231 # rnd_1: 1 - 1
232 movq %r15, %rbx
233 movq %r12, %rcx
234 addq 8(%rsp), %r14
235 xorq %r13, %rcx
236 vpsrlq $19, %xmm7, %xmm8
237 vpsllq $45, %xmm7, %xmm9
238 # rnd_1: 2 - 3
239 xorq %r11, %rax
240 andq %r11, %rcx
241 rorq $4, %rax
242 xorq %r13, %rcx
243 vpsrlq $61, %xmm7, %xmm10
244 vpsllq $3, %xmm7, %xmm11
245 # rnd_1: 4 - 6
246 xorq %r11, %rax
247 addq %rcx, %r14
248 rorq $14, %rax
249 xorq %r8, %rbx
250 addq %rax, %r14
251 movq %r15, %rcx
252 vpor %xmm9, %xmm8, %xmm8
253 vpor %xmm11, %xmm10, %xmm10
254 # rnd_1: 7 - 8
255 andq %rbx, %rdx
256 rorq $5, %rcx
257 xorq %r15, %rcx
258 xorq %r8, %rdx
259 vpxor %xmm10, %xmm8, %xmm8
260 vpsrlq $6, %xmm7, %xmm11
261 # rnd_1: 9 - 10
262 rorq $6, %rcx
263 addq %r14, %r10
264 xorq %r15, %rcx
265 addq %rdx, %r14
266 vpxor %xmm11, %xmm8, %xmm8
267 # rnd_1: 11 - 11
268 rorq $28, %rcx
269 movq %r10, %rax
270 addq %rcx, %r14
271 vpaddq %xmm0, %xmm8, %xmm0
272 # msg_sched done: 0-1
273 # msg_sched: 2-3
274 # rnd_0: 0 - 0
275 rorq $23, %rax
276 vpalignr $8, %xmm1, %xmm2, %xmm12
277 vpalignr $8, %xmm5, %xmm6, %xmm13
278 # rnd_0: 1 - 1
279 movq %r14, %rdx
280 movq %r11, %rcx
281 addq 16(%rsp), %r13
282 xorq %r12, %rcx
283 vpsrlq $0x01, %xmm12, %xmm8
284 vpsllq $63, %xmm12, %xmm9
285 # rnd_0: 2 - 3
286 xorq %r10, %rax
287 andq %r10, %rcx
288 rorq $4, %rax
289 xorq %r12, %rcx
290 vpsrlq $8, %xmm12, %xmm10
291 vpsllq $56, %xmm12, %xmm11
292 # rnd_0: 4 - 5
293 xorq %r10, %rax
294 addq %rcx, %r13
295 rorq $14, %rax
296 xorq %r15, %rdx
297 vpor %xmm9, %xmm8, %xmm8
298 vpor %xmm11, %xmm10, %xmm10
299 # rnd_0: 6 - 7
300 addq %rax, %r13
301 movq %r14, %rcx
302 andq %rdx, %rbx
303 rorq $5, %rcx
304 vpsrlq $7, %xmm12, %xmm11
305 vpxor %xmm10, %xmm8, %xmm8
306 # rnd_0: 8 - 9
307 xorq %r14, %rcx
308 xorq %r15, %rbx
309 rorq $6, %rcx
310 addq %r13, %r9
311 vpxor %xmm11, %xmm8, %xmm8
312 vpaddq %xmm1, %xmm13, %xmm1
313 # rnd_0: 10 - 11
314 xorq %r14, %rcx
315 addq %rbx, %r13
316 rorq $28, %rcx
317 movq %r9, %rax
318 addq %rcx, %r13
319 # rnd_1: 0 - 0
320 rorq $23, %rax
321 vpaddq %xmm1, %xmm8, %xmm1
322 # rnd_1: 1 - 1
323 movq %r13, %rbx
324 movq %r10, %rcx
325 addq 24(%rsp), %r12
326 xorq %r11, %rcx
327 vpsrlq $19, %xmm0, %xmm8
328 vpsllq $45, %xmm0, %xmm9
329 # rnd_1: 2 - 3
330 xorq %r9, %rax
331 andq %r9, %rcx
332 rorq $4, %rax
333 xorq %r11, %rcx
334 vpsrlq $61, %xmm0, %xmm10
335 vpsllq $3, %xmm0, %xmm11
336 # rnd_1: 4 - 6
337 xorq %r9, %rax
338 addq %rcx, %r12
339 rorq $14, %rax
340 xorq %r14, %rbx
341 addq %rax, %r12
342 movq %r13, %rcx
343 vpor %xmm9, %xmm8, %xmm8
344 vpor %xmm11, %xmm10, %xmm10
345 # rnd_1: 7 - 8
346 andq %rbx, %rdx
347 rorq $5, %rcx
348 xorq %r13, %rcx
349 xorq %r14, %rdx
350 vpxor %xmm10, %xmm8, %xmm8
351 vpsrlq $6, %xmm0, %xmm11
352 # rnd_1: 9 - 10
353 rorq $6, %rcx
354 addq %r12, %r8
355 xorq %r13, %rcx
356 addq %rdx, %r12
357 vpxor %xmm11, %xmm8, %xmm8
358 # rnd_1: 11 - 11
359 rorq $28, %rcx
360 movq %r8, %rax
361 addq %rcx, %r12
362 vpaddq %xmm1, %xmm8, %xmm1
363 # msg_sched done: 2-3
364 # msg_sched: 4-5
365 # rnd_0: 0 - 0
366 rorq $23, %rax
367 vpalignr $8, %xmm2, %xmm3, %xmm12
368 vpalignr $8, %xmm6, %xmm7, %xmm13
369 # rnd_0: 1 - 1
370 movq %r12, %rdx
371 movq %r9, %rcx
372 addq 32(%rsp), %r11
373 xorq %r10, %rcx
374 vpsrlq $0x01, %xmm12, %xmm8
375 vpsllq $63, %xmm12, %xmm9
376 # rnd_0: 2 - 3
377 xorq %r8, %rax
378 andq %r8, %rcx
379 rorq $4, %rax
380 xorq %r10, %rcx
381 vpsrlq $8, %xmm12, %xmm10
382 vpsllq $56, %xmm12, %xmm11
383 # rnd_0: 4 - 5
384 xorq %r8, %rax
385 addq %rcx, %r11
386 rorq $14, %rax
387 xorq %r13, %rdx
388 vpor %xmm9, %xmm8, %xmm8
389 vpor %xmm11, %xmm10, %xmm10
390 # rnd_0: 6 - 7
391 addq %rax, %r11
392 movq %r12, %rcx
393 andq %rdx, %rbx
394 rorq $5, %rcx
395 vpsrlq $7, %xmm12, %xmm11
396 vpxor %xmm10, %xmm8, %xmm8
397 # rnd_0: 8 - 9
398 xorq %r12, %rcx
399 xorq %r13, %rbx
400 rorq $6, %rcx
401 addq %r11, %r15
402 vpxor %xmm11, %xmm8, %xmm8
403 vpaddq %xmm2, %xmm13, %xmm2
404 # rnd_0: 10 - 11
405 xorq %r12, %rcx
406 addq %rbx, %r11
407 rorq $28, %rcx
408 movq %r15, %rax
409 addq %rcx, %r11
410 # rnd_1: 0 - 0
411 rorq $23, %rax
412 vpaddq %xmm2, %xmm8, %xmm2
413 # rnd_1: 1 - 1
414 movq %r11, %rbx
415 movq %r8, %rcx
416 addq 40(%rsp), %r10
417 xorq %r9, %rcx
418 vpsrlq $19, %xmm1, %xmm8
419 vpsllq $45, %xmm1, %xmm9
420 # rnd_1: 2 - 3
421 xorq %r15, %rax
422 andq %r15, %rcx
423 rorq $4, %rax
424 xorq %r9, %rcx
425 vpsrlq $61, %xmm1, %xmm10
426 vpsllq $3, %xmm1, %xmm11
427 # rnd_1: 4 - 6
428 xorq %r15, %rax
429 addq %rcx, %r10
430 rorq $14, %rax
431 xorq %r12, %rbx
432 addq %rax, %r10
433 movq %r11, %rcx
434 vpor %xmm9, %xmm8, %xmm8
435 vpor %xmm11, %xmm10, %xmm10
436 # rnd_1: 7 - 8
437 andq %rbx, %rdx
438 rorq $5, %rcx
439 xorq %r11, %rcx
440 xorq %r12, %rdx
441 vpxor %xmm10, %xmm8, %xmm8
442 vpsrlq $6, %xmm1, %xmm11
443 # rnd_1: 9 - 10
444 rorq $6, %rcx
445 addq %r10, %r14
446 xorq %r11, %rcx
447 addq %rdx, %r10
448 vpxor %xmm11, %xmm8, %xmm8
449 # rnd_1: 11 - 11
450 rorq $28, %rcx
451 movq %r14, %rax
452 addq %rcx, %r10
453 vpaddq %xmm2, %xmm8, %xmm2
454 # msg_sched done: 4-5
455 # msg_sched: 6-7
456 # rnd_0: 0 - 0
457 rorq $23, %rax
458 vpalignr $8, %xmm3, %xmm4, %xmm12
459 vpalignr $8, %xmm7, %xmm0, %xmm13
460 # rnd_0: 1 - 1
461 movq %r10, %rdx
462 movq %r15, %rcx
463 addq 48(%rsp), %r9
464 xorq %r8, %rcx
465 vpsrlq $0x01, %xmm12, %xmm8
466 vpsllq $63, %xmm12, %xmm9
467 # rnd_0: 2 - 3
468 xorq %r14, %rax
469 andq %r14, %rcx
470 rorq $4, %rax
471 xorq %r8, %rcx
472 vpsrlq $8, %xmm12, %xmm10
473 vpsllq $56, %xmm12, %xmm11
474 # rnd_0: 4 - 5
475 xorq %r14, %rax
476 addq %rcx, %r9
477 rorq $14, %rax
478 xorq %r11, %rdx
479 vpor %xmm9, %xmm8, %xmm8
480 vpor %xmm11, %xmm10, %xmm10
481 # rnd_0: 6 - 7
482 addq %rax, %r9
483 movq %r10, %rcx
484 andq %rdx, %rbx
485 rorq $5, %rcx
486 vpsrlq $7, %xmm12, %xmm11
487 vpxor %xmm10, %xmm8, %xmm8
488 # rnd_0: 8 - 9
489 xorq %r10, %rcx
490 xorq %r11, %rbx
491 rorq $6, %rcx
492 addq %r9, %r13
493 vpxor %xmm11, %xmm8, %xmm8
494 vpaddq %xmm3, %xmm13, %xmm3
495 # rnd_0: 10 - 11
496 xorq %r10, %rcx
497 addq %rbx, %r9
498 rorq $28, %rcx
499 movq %r13, %rax
500 addq %rcx, %r9
501 # rnd_1: 0 - 0
502 rorq $23, %rax
503 vpaddq %xmm3, %xmm8, %xmm3
504 # rnd_1: 1 - 1
505 movq %r9, %rbx
506 movq %r14, %rcx
507 addq 56(%rsp), %r8
508 xorq %r15, %rcx
509 vpsrlq $19, %xmm2, %xmm8
510 vpsllq $45, %xmm2, %xmm9
511 # rnd_1: 2 - 3
512 xorq %r13, %rax
513 andq %r13, %rcx
514 rorq $4, %rax
515 xorq %r15, %rcx
516 vpsrlq $61, %xmm2, %xmm10
517 vpsllq $3, %xmm2, %xmm11
518 # rnd_1: 4 - 6
519 xorq %r13, %rax
520 addq %rcx, %r8
521 rorq $14, %rax
522 xorq %r10, %rbx
523 addq %rax, %r8
524 movq %r9, %rcx
525 vpor %xmm9, %xmm8, %xmm8
526 vpor %xmm11, %xmm10, %xmm10
527 # rnd_1: 7 - 8
528 andq %rbx, %rdx
529 rorq $5, %rcx
530 xorq %r9, %rcx
531 xorq %r10, %rdx
532 vpxor %xmm10, %xmm8, %xmm8
533 vpsrlq $6, %xmm2, %xmm11
534 # rnd_1: 9 - 10
535 rorq $6, %rcx
536 addq %r8, %r12
537 xorq %r9, %rcx
538 addq %rdx, %r8
539 vpxor %xmm11, %xmm8, %xmm8
540 # rnd_1: 11 - 11
541 rorq $28, %rcx
542 movq %r12, %rax
543 addq %rcx, %r8
544 vpaddq %xmm3, %xmm8, %xmm3
545 # msg_sched done: 6-7
546 # msg_sched: 8-9
547 # rnd_0: 0 - 0
548 rorq $23, %rax
549 vpalignr $8, %xmm4, %xmm5, %xmm12
550 vpalignr $8, %xmm0, %xmm1, %xmm13
551 # rnd_0: 1 - 1
552 movq %r8, %rdx
553 movq %r13, %rcx
554 addq 64(%rsp), %r15
555 xorq %r14, %rcx
556 vpsrlq $0x01, %xmm12, %xmm8
557 vpsllq $63, %xmm12, %xmm9
558 # rnd_0: 2 - 3
559 xorq %r12, %rax
560 andq %r12, %rcx
561 rorq $4, %rax
562 xorq %r14, %rcx
563 vpsrlq $8, %xmm12, %xmm10
564 vpsllq $56, %xmm12, %xmm11
565 # rnd_0: 4 - 5
566 xorq %r12, %rax
567 addq %rcx, %r15
568 rorq $14, %rax
569 xorq %r9, %rdx
570 vpor %xmm9, %xmm8, %xmm8
571 vpor %xmm11, %xmm10, %xmm10
572 # rnd_0: 6 - 7
573 addq %rax, %r15
574 movq %r8, %rcx
575 andq %rdx, %rbx
576 rorq $5, %rcx
577 vpsrlq $7, %xmm12, %xmm11
578 vpxor %xmm10, %xmm8, %xmm8
579 # rnd_0: 8 - 9
580 xorq %r8, %rcx
581 xorq %r9, %rbx
582 rorq $6, %rcx
583 addq %r15, %r11
584 vpxor %xmm11, %xmm8, %xmm8
585 vpaddq %xmm4, %xmm13, %xmm4
586 # rnd_0: 10 - 11
587 xorq %r8, %rcx
588 addq %rbx, %r15
589 rorq $28, %rcx
590 movq %r11, %rax
591 addq %rcx, %r15
592 # rnd_1: 0 - 0
593 rorq $23, %rax
594 vpaddq %xmm4, %xmm8, %xmm4
595 # rnd_1: 1 - 1
596 movq %r15, %rbx
597 movq %r12, %rcx
598 addq 72(%rsp), %r14
599 xorq %r13, %rcx
600 vpsrlq $19, %xmm3, %xmm8
601 vpsllq $45, %xmm3, %xmm9
602 # rnd_1: 2 - 3
603 xorq %r11, %rax
604 andq %r11, %rcx
605 rorq $4, %rax
606 xorq %r13, %rcx
607 vpsrlq $61, %xmm3, %xmm10
608 vpsllq $3, %xmm3, %xmm11
609 # rnd_1: 4 - 6
610 xorq %r11, %rax
611 addq %rcx, %r14
612 rorq $14, %rax
613 xorq %r8, %rbx
614 addq %rax, %r14
615 movq %r15, %rcx
616 vpor %xmm9, %xmm8, %xmm8
617 vpor %xmm11, %xmm10, %xmm10
618 # rnd_1: 7 - 8
619 andq %rbx, %rdx
620 rorq $5, %rcx
621 xorq %r15, %rcx
622 xorq %r8, %rdx
623 vpxor %xmm10, %xmm8, %xmm8
624 vpsrlq $6, %xmm3, %xmm11
625 # rnd_1: 9 - 10
626 rorq $6, %rcx
627 addq %r14, %r10
628 xorq %r15, %rcx
629 addq %rdx, %r14
630 vpxor %xmm11, %xmm8, %xmm8
631 # rnd_1: 11 - 11
632 rorq $28, %rcx
633 movq %r10, %rax
634 addq %rcx, %r14
635 vpaddq %xmm4, %xmm8, %xmm4
636 # msg_sched done: 8-9
637 # msg_sched: 10-11
638 # rnd_0: 0 - 0
639 rorq $23, %rax
640 vpalignr $8, %xmm5, %xmm6, %xmm12
641 vpalignr $8, %xmm1, %xmm2, %xmm13
642 # rnd_0: 1 - 1
643 movq %r14, %rdx
644 movq %r11, %rcx
645 addq 80(%rsp), %r13
646 xorq %r12, %rcx
647 vpsrlq $0x01, %xmm12, %xmm8
648 vpsllq $63, %xmm12, %xmm9
649 # rnd_0: 2 - 3
650 xorq %r10, %rax
651 andq %r10, %rcx
652 rorq $4, %rax
653 xorq %r12, %rcx
654 vpsrlq $8, %xmm12, %xmm10
655 vpsllq $56, %xmm12, %xmm11
656 # rnd_0: 4 - 5
657 xorq %r10, %rax
658 addq %rcx, %r13
659 rorq $14, %rax
660 xorq %r15, %rdx
661 vpor %xmm9, %xmm8, %xmm8
662 vpor %xmm11, %xmm10, %xmm10
663 # rnd_0: 6 - 7
664 addq %rax, %r13
665 movq %r14, %rcx
666 andq %rdx, %rbx
667 rorq $5, %rcx
668 vpsrlq $7, %xmm12, %xmm11
669 vpxor %xmm10, %xmm8, %xmm8
670 # rnd_0: 8 - 9
671 xorq %r14, %rcx
672 xorq %r15, %rbx
673 rorq $6, %rcx
674 addq %r13, %r9
675 vpxor %xmm11, %xmm8, %xmm8
676 vpaddq %xmm5, %xmm13, %xmm5
677 # rnd_0: 10 - 11
678 xorq %r14, %rcx
679 addq %rbx, %r13
680 rorq $28, %rcx
681 movq %r9, %rax
682 addq %rcx, %r13
683 # rnd_1: 0 - 0
684 rorq $23, %rax
685 vpaddq %xmm5, %xmm8, %xmm5
686 # rnd_1: 1 - 1
687 movq %r13, %rbx
688 movq %r10, %rcx
689 addq 88(%rsp), %r12
690 xorq %r11, %rcx
691 vpsrlq $19, %xmm4, %xmm8
692 vpsllq $45, %xmm4, %xmm9
693 # rnd_1: 2 - 3
694 xorq %r9, %rax
695 andq %r9, %rcx
696 rorq $4, %rax
697 xorq %r11, %rcx
698 vpsrlq $61, %xmm4, %xmm10
699 vpsllq $3, %xmm4, %xmm11
700 # rnd_1: 4 - 6
701 xorq %r9, %rax
702 addq %rcx, %r12
703 rorq $14, %rax
704 xorq %r14, %rbx
705 addq %rax, %r12
706 movq %r13, %rcx
707 vpor %xmm9, %xmm8, %xmm8
708 vpor %xmm11, %xmm10, %xmm10
709 # rnd_1: 7 - 8
710 andq %rbx, %rdx
711 rorq $5, %rcx
712 xorq %r13, %rcx
713 xorq %r14, %rdx
714 vpxor %xmm10, %xmm8, %xmm8
715 vpsrlq $6, %xmm4, %xmm11
716 # rnd_1: 9 - 10
717 rorq $6, %rcx
718 addq %r12, %r8
719 xorq %r13, %rcx
720 addq %rdx, %r12
721 vpxor %xmm11, %xmm8, %xmm8
722 # rnd_1: 11 - 11
723 rorq $28, %rcx
724 movq %r8, %rax
725 addq %rcx, %r12
726 vpaddq %xmm5, %xmm8, %xmm5
727 # msg_sched done: 10-11
728 # msg_sched: 12-13
729 # rnd_0: 0 - 0
730 rorq $23, %rax
731 vpalignr $8, %xmm6, %xmm7, %xmm12
732 vpalignr $8, %xmm2, %xmm3, %xmm13
733 # rnd_0: 1 - 1
734 movq %r12, %rdx
735 movq %r9, %rcx
736 addq 96(%rsp), %r11
737 xorq %r10, %rcx
738 vpsrlq $0x01, %xmm12, %xmm8
739 vpsllq $63, %xmm12, %xmm9
740 # rnd_0: 2 - 3
741 xorq %r8, %rax
742 andq %r8, %rcx
743 rorq $4, %rax
744 xorq %r10, %rcx
745 vpsrlq $8, %xmm12, %xmm10
746 vpsllq $56, %xmm12, %xmm11
747 # rnd_0: 4 - 5
748 xorq %r8, %rax
749 addq %rcx, %r11
750 rorq $14, %rax
751 xorq %r13, %rdx
752 vpor %xmm9, %xmm8, %xmm8
753 vpor %xmm11, %xmm10, %xmm10
754 # rnd_0: 6 - 7
755 addq %rax, %r11
756 movq %r12, %rcx
757 andq %rdx, %rbx
758 rorq $5, %rcx
759 vpsrlq $7, %xmm12, %xmm11
760 vpxor %xmm10, %xmm8, %xmm8
761 # rnd_0: 8 - 9
762 xorq %r12, %rcx
763 xorq %r13, %rbx
764 rorq $6, %rcx
765 addq %r11, %r15
766 vpxor %xmm11, %xmm8, %xmm8
767 vpaddq %xmm6, %xmm13, %xmm6
768 # rnd_0: 10 - 11
769 xorq %r12, %rcx
770 addq %rbx, %r11
771 rorq $28, %rcx
772 movq %r15, %rax
773 addq %rcx, %r11
774 # rnd_1: 0 - 0
775 rorq $23, %rax
776 vpaddq %xmm6, %xmm8, %xmm6
777 # rnd_1: 1 - 1
778 movq %r11, %rbx
779 movq %r8, %rcx
780 addq 104(%rsp), %r10
781 xorq %r9, %rcx
782 vpsrlq $19, %xmm5, %xmm8
783 vpsllq $45, %xmm5, %xmm9
784 # rnd_1: 2 - 3
785 xorq %r15, %rax
786 andq %r15, %rcx
787 rorq $4, %rax
788 xorq %r9, %rcx
789 vpsrlq $61, %xmm5, %xmm10
790 vpsllq $3, %xmm5, %xmm11
791 # rnd_1: 4 - 6
792 xorq %r15, %rax
793 addq %rcx, %r10
794 rorq $14, %rax
795 xorq %r12, %rbx
796 addq %rax, %r10
797 movq %r11, %rcx
798 vpor %xmm9, %xmm8, %xmm8
799 vpor %xmm11, %xmm10, %xmm10
800 # rnd_1: 7 - 8
801 andq %rbx, %rdx
802 rorq $5, %rcx
803 xorq %r11, %rcx
804 xorq %r12, %rdx
805 vpxor %xmm10, %xmm8, %xmm8
806 vpsrlq $6, %xmm5, %xmm11
807 # rnd_1: 9 - 10
808 rorq $6, %rcx
809 addq %r10, %r14
810 xorq %r11, %rcx
811 addq %rdx, %r10
812 vpxor %xmm11, %xmm8, %xmm8
813 # rnd_1: 11 - 11
814 rorq $28, %rcx
815 movq %r14, %rax
816 addq %rcx, %r10
817 vpaddq %xmm6, %xmm8, %xmm6
818 # msg_sched done: 12-13
819 # msg_sched: 14-15
820 # rnd_0: 0 - 0
821 rorq $23, %rax
822 vpalignr $8, %xmm7, %xmm0, %xmm12
823 vpalignr $8, %xmm3, %xmm4, %xmm13
824 # rnd_0: 1 - 1
825 movq %r10, %rdx
826 movq %r15, %rcx
827 addq 112(%rsp), %r9
828 xorq %r8, %rcx
829 vpsrlq $0x01, %xmm12, %xmm8
830 vpsllq $63, %xmm12, %xmm9
831 # rnd_0: 2 - 3
832 xorq %r14, %rax
833 andq %r14, %rcx
834 rorq $4, %rax
835 xorq %r8, %rcx
836 vpsrlq $8, %xmm12, %xmm10
837 vpsllq $56, %xmm12, %xmm11
838 # rnd_0: 4 - 5
839 xorq %r14, %rax
840 addq %rcx, %r9
841 rorq $14, %rax
842 xorq %r11, %rdx
843 vpor %xmm9, %xmm8, %xmm8
844 vpor %xmm11, %xmm10, %xmm10
845 # rnd_0: 6 - 7
846 addq %rax, %r9
847 movq %r10, %rcx
848 andq %rdx, %rbx
849 rorq $5, %rcx
850 vpsrlq $7, %xmm12, %xmm11
851 vpxor %xmm10, %xmm8, %xmm8
852 # rnd_0: 8 - 9
853 xorq %r10, %rcx
854 xorq %r11, %rbx
855 rorq $6, %rcx
856 addq %r9, %r13
857 vpxor %xmm11, %xmm8, %xmm8
858 vpaddq %xmm7, %xmm13, %xmm7
859 # rnd_0: 10 - 11
860 xorq %r10, %rcx
861 addq %rbx, %r9
862 rorq $28, %rcx
863 movq %r13, %rax
864 addq %rcx, %r9
865 # rnd_1: 0 - 0
866 rorq $23, %rax
867 vpaddq %xmm7, %xmm8, %xmm7
868 # rnd_1: 1 - 1
869 movq %r9, %rbx
870 movq %r14, %rcx
871 addq 120(%rsp), %r8
872 xorq %r15, %rcx
873 vpsrlq $19, %xmm6, %xmm8
874 vpsllq $45, %xmm6, %xmm9
875 # rnd_1: 2 - 3
876 xorq %r13, %rax
877 andq %r13, %rcx
878 rorq $4, %rax
879 xorq %r15, %rcx
880 vpsrlq $61, %xmm6, %xmm10
881 vpsllq $3, %xmm6, %xmm11
882 # rnd_1: 4 - 6
883 xorq %r13, %rax
884 addq %rcx, %r8
885 rorq $14, %rax
886 xorq %r10, %rbx
887 addq %rax, %r8
888 movq %r9, %rcx
889 vpor %xmm9, %xmm8, %xmm8
890 vpor %xmm11, %xmm10, %xmm10
891 # rnd_1: 7 - 8
892 andq %rbx, %rdx
893 rorq $5, %rcx
894 xorq %r9, %rcx
895 xorq %r10, %rdx
896 vpxor %xmm10, %xmm8, %xmm8
897 vpsrlq $6, %xmm6, %xmm11
898 # rnd_1: 9 - 10
899 rorq $6, %rcx
900 addq %r8, %r12
901 xorq %r9, %rcx
902 addq %rdx, %r8
903 vpxor %xmm11, %xmm8, %xmm8
904 # rnd_1: 11 - 11
905 rorq $28, %rcx
906 movq %r12, %rax
907 addq %rcx, %r8
908 vpaddq %xmm7, %xmm8, %xmm7
909 # msg_sched done: 14-15
910 subl $0x01, 128(%rsp)
911 jne L_transform_sha512_avx1_start
912 vpaddq (%rsi), %xmm0, %xmm8
913 vpaddq 16(%rsi), %xmm1, %xmm9
914 vmovdqu %xmm8, (%rsp)
915 vmovdqu %xmm9, 16(%rsp)
916 vpaddq 32(%rsi), %xmm2, %xmm8
917 vpaddq 48(%rsi), %xmm3, %xmm9
918 vmovdqu %xmm8, 32(%rsp)
919 vmovdqu %xmm9, 48(%rsp)
920 vpaddq 64(%rsi), %xmm4, %xmm8
921 vpaddq 80(%rsi), %xmm5, %xmm9
922 vmovdqu %xmm8, 64(%rsp)
923 vmovdqu %xmm9, 80(%rsp)
924 vpaddq 96(%rsi), %xmm6, %xmm8
925 vpaddq 112(%rsi), %xmm7, %xmm9
926 vmovdqu %xmm8, 96(%rsp)
927 vmovdqu %xmm9, 112(%rsp)
928 # rnd_all_2: 0-1
929 # rnd_0: 0 - 11
930 rorq $23, %rax
931 movq %r8, %rdx
932 movq %r13, %rcx
933 addq (%rsp), %r15
934 xorq %r14, %rcx
935 xorq %r12, %rax
936 andq %r12, %rcx
937 rorq $4, %rax
938 xorq %r14, %rcx
939 xorq %r12, %rax
940 addq %rcx, %r15
941 rorq $14, %rax
942 xorq %r9, %rdx
943 addq %rax, %r15
944 movq %r8, %rcx
945 andq %rdx, %rbx
946 rorq $5, %rcx
947 xorq %r8, %rcx
948 xorq %r9, %rbx
949 rorq $6, %rcx
950 addq %r15, %r11
951 xorq %r8, %rcx
952 addq %rbx, %r15
953 rorq $28, %rcx
954 movq %r11, %rax
955 addq %rcx, %r15
956 # rnd_1: 0 - 11
957 rorq $23, %rax
958 movq %r15, %rbx
959 movq %r12, %rcx
960 addq 8(%rsp), %r14
961 xorq %r13, %rcx
962 xorq %r11, %rax
963 andq %r11, %rcx
964 rorq $4, %rax
965 xorq %r13, %rcx
966 xorq %r11, %rax
967 addq %rcx, %r14
968 rorq $14, %rax
969 xorq %r8, %rbx
970 addq %rax, %r14
971 movq %r15, %rcx
972 andq %rbx, %rdx
973 rorq $5, %rcx
974 xorq %r15, %rcx
975 xorq %r8, %rdx
976 rorq $6, %rcx
977 addq %r14, %r10
978 xorq %r15, %rcx
979 addq %rdx, %r14
980 rorq $28, %rcx
981 movq %r10, %rax
982 addq %rcx, %r14
983 # rnd_all_2: 2-3
984 # rnd_0: 0 - 11
985 rorq $23, %rax
986 movq %r14, %rdx
987 movq %r11, %rcx
988 addq 16(%rsp), %r13
989 xorq %r12, %rcx
990 xorq %r10, %rax
991 andq %r10, %rcx
992 rorq $4, %rax
993 xorq %r12, %rcx
994 xorq %r10, %rax
995 addq %rcx, %r13
996 rorq $14, %rax
997 xorq %r15, %rdx
998 addq %rax, %r13
999 movq %r14, %rcx
1000 andq %rdx, %rbx
1001 rorq $5, %rcx
1002 xorq %r14, %rcx
1003 xorq %r15, %rbx
1004 rorq $6, %rcx
1005 addq %r13, %r9
1006 xorq %r14, %rcx
1007 addq %rbx, %r13
1008 rorq $28, %rcx
1009 movq %r9, %rax
1010 addq %rcx, %r13
1011 # rnd_1: 0 - 11
1012 rorq $23, %rax
1013 movq %r13, %rbx
1014 movq %r10, %rcx
1015 addq 24(%rsp), %r12
1016 xorq %r11, %rcx
1017 xorq %r9, %rax
1018 andq %r9, %rcx
1019 rorq $4, %rax
1020 xorq %r11, %rcx
1021 xorq %r9, %rax
1022 addq %rcx, %r12
1023 rorq $14, %rax
1024 xorq %r14, %rbx
1025 addq %rax, %r12
1026 movq %r13, %rcx
1027 andq %rbx, %rdx
1028 rorq $5, %rcx
1029 xorq %r13, %rcx
1030 xorq %r14, %rdx
1031 rorq $6, %rcx
1032 addq %r12, %r8
1033 xorq %r13, %rcx
1034 addq %rdx, %r12
1035 rorq $28, %rcx
1036 movq %r8, %rax
1037 addq %rcx, %r12
1038 # rnd_all_2: 4-5
1039 # rnd_0: 0 - 11
1040 rorq $23, %rax
1041 movq %r12, %rdx
1042 movq %r9, %rcx
1043 addq 32(%rsp), %r11
1044 xorq %r10, %rcx
1045 xorq %r8, %rax
1046 andq %r8, %rcx
1047 rorq $4, %rax
1048 xorq %r10, %rcx
1049 xorq %r8, %rax
1050 addq %rcx, %r11
1051 rorq $14, %rax
1052 xorq %r13, %rdx
1053 addq %rax, %r11
1054 movq %r12, %rcx
1055 andq %rdx, %rbx
1056 rorq $5, %rcx
1057 xorq %r12, %rcx
1058 xorq %r13, %rbx
1059 rorq $6, %rcx
1060 addq %r11, %r15
1061 xorq %r12, %rcx
1062 addq %rbx, %r11
1063 rorq $28, %rcx
1064 movq %r15, %rax
1065 addq %rcx, %r11
1066 # rnd_1: 0 - 11
1067 rorq $23, %rax
1068 movq %r11, %rbx
1069 movq %r8, %rcx
1070 addq 40(%rsp), %r10
1071 xorq %r9, %rcx
1072 xorq %r15, %rax
1073 andq %r15, %rcx
1074 rorq $4, %rax
1075 xorq %r9, %rcx
1076 xorq %r15, %rax
1077 addq %rcx, %r10
1078 rorq $14, %rax
1079 xorq %r12, %rbx
1080 addq %rax, %r10
1081 movq %r11, %rcx
1082 andq %rbx, %rdx
1083 rorq $5, %rcx
1084 xorq %r11, %rcx
1085 xorq %r12, %rdx
1086 rorq $6, %rcx
1087 addq %r10, %r14
1088 xorq %r11, %rcx
1089 addq %rdx, %r10
1090 rorq $28, %rcx
1091 movq %r14, %rax
1092 addq %rcx, %r10
1093 # rnd_all_2: 6-7
1094 # rnd_0: 0 - 11
1095 rorq $23, %rax
1096 movq %r10, %rdx
1097 movq %r15, %rcx
1098 addq 48(%rsp), %r9
1099 xorq %r8, %rcx
1100 xorq %r14, %rax
1101 andq %r14, %rcx
1102 rorq $4, %rax
1103 xorq %r8, %rcx
1104 xorq %r14, %rax
1105 addq %rcx, %r9
1106 rorq $14, %rax
1107 xorq %r11, %rdx
1108 addq %rax, %r9
1109 movq %r10, %rcx
1110 andq %rdx, %rbx
1111 rorq $5, %rcx
1112 xorq %r10, %rcx
1113 xorq %r11, %rbx
1114 rorq $6, %rcx
1115 addq %r9, %r13
1116 xorq %r10, %rcx
1117 addq %rbx, %r9
1118 rorq $28, %rcx
1119 movq %r13, %rax
1120 addq %rcx, %r9
1121 # rnd_1: 0 - 11
1122 rorq $23, %rax
1123 movq %r9, %rbx
1124 movq %r14, %rcx
1125 addq 56(%rsp), %r8
1126 xorq %r15, %rcx
1127 xorq %r13, %rax
1128 andq %r13, %rcx
1129 rorq $4, %rax
1130 xorq %r15, %rcx
1131 xorq %r13, %rax
1132 addq %rcx, %r8
1133 rorq $14, %rax
1134 xorq %r10, %rbx
1135 addq %rax, %r8
1136 movq %r9, %rcx
1137 andq %rbx, %rdx
1138 rorq $5, %rcx
1139 xorq %r9, %rcx
1140 xorq %r10, %rdx
1141 rorq $6, %rcx
1142 addq %r8, %r12
1143 xorq %r9, %rcx
1144 addq %rdx, %r8
1145 rorq $28, %rcx
1146 movq %r12, %rax
1147 addq %rcx, %r8
1148 # rnd_all_2: 8-9
1149 # rnd_0: 0 - 11
1150 rorq $23, %rax
1151 movq %r8, %rdx
1152 movq %r13, %rcx
1153 addq 64(%rsp), %r15
1154 xorq %r14, %rcx
1155 xorq %r12, %rax
1156 andq %r12, %rcx
1157 rorq $4, %rax
1158 xorq %r14, %rcx
1159 xorq %r12, %rax
1160 addq %rcx, %r15
1161 rorq $14, %rax
1162 xorq %r9, %rdx
1163 addq %rax, %r15
1164 movq %r8, %rcx
1165 andq %rdx, %rbx
1166 rorq $5, %rcx
1167 xorq %r8, %rcx
1168 xorq %r9, %rbx
1169 rorq $6, %rcx
1170 addq %r15, %r11
1171 xorq %r8, %rcx
1172 addq %rbx, %r15
1173 rorq $28, %rcx
1174 movq %r11, %rax
1175 addq %rcx, %r15
1176 # rnd_1: 0 - 11
1177 rorq $23, %rax
1178 movq %r15, %rbx
1179 movq %r12, %rcx
1180 addq 72(%rsp), %r14
1181 xorq %r13, %rcx
1182 xorq %r11, %rax
1183 andq %r11, %rcx
1184 rorq $4, %rax
1185 xorq %r13, %rcx
1186 xorq %r11, %rax
1187 addq %rcx, %r14
1188 rorq $14, %rax
1189 xorq %r8, %rbx
1190 addq %rax, %r14
1191 movq %r15, %rcx
1192 andq %rbx, %rdx
1193 rorq $5, %rcx
1194 xorq %r15, %rcx
1195 xorq %r8, %rdx
1196 rorq $6, %rcx
1197 addq %r14, %r10
1198 xorq %r15, %rcx
1199 addq %rdx, %r14
1200 rorq $28, %rcx
1201 movq %r10, %rax
1202 addq %rcx, %r14
1203 # rnd_all_2: 10-11
1204 # rnd_0: 0 - 11
1205 rorq $23, %rax
1206 movq %r14, %rdx
1207 movq %r11, %rcx
1208 addq 80(%rsp), %r13
1209 xorq %r12, %rcx
1210 xorq %r10, %rax
1211 andq %r10, %rcx
1212 rorq $4, %rax
1213 xorq %r12, %rcx
1214 xorq %r10, %rax
1215 addq %rcx, %r13
1216 rorq $14, %rax
1217 xorq %r15, %rdx
1218 addq %rax, %r13
1219 movq %r14, %rcx
1220 andq %rdx, %rbx
1221 rorq $5, %rcx
1222 xorq %r14, %rcx
1223 xorq %r15, %rbx
1224 rorq $6, %rcx
1225 addq %r13, %r9
1226 xorq %r14, %rcx
1227 addq %rbx, %r13
1228 rorq $28, %rcx
1229 movq %r9, %rax
1230 addq %rcx, %r13
1231 # rnd_1: 0 - 11
1232 rorq $23, %rax
1233 movq %r13, %rbx
1234 movq %r10, %rcx
1235 addq 88(%rsp), %r12
1236 xorq %r11, %rcx
1237 xorq %r9, %rax
1238 andq %r9, %rcx
1239 rorq $4, %rax
1240 xorq %r11, %rcx
1241 xorq %r9, %rax
1242 addq %rcx, %r12
1243 rorq $14, %rax
1244 xorq %r14, %rbx
1245 addq %rax, %r12
1246 movq %r13, %rcx
1247 andq %rbx, %rdx
1248 rorq $5, %rcx
1249 xorq %r13, %rcx
1250 xorq %r14, %rdx
1251 rorq $6, %rcx
1252 addq %r12, %r8
1253 xorq %r13, %rcx
1254 addq %rdx, %r12
1255 rorq $28, %rcx
1256 movq %r8, %rax
1257 addq %rcx, %r12
1258 # rnd_all_2: 12-13
1259 # rnd_0: 0 - 11
1260 rorq $23, %rax
1261 movq %r12, %rdx
1262 movq %r9, %rcx
1263 addq 96(%rsp), %r11
1264 xorq %r10, %rcx
1265 xorq %r8, %rax
1266 andq %r8, %rcx
1267 rorq $4, %rax
1268 xorq %r10, %rcx
1269 xorq %r8, %rax
1270 addq %rcx, %r11
1271 rorq $14, %rax
1272 xorq %r13, %rdx
1273 addq %rax, %r11
1274 movq %r12, %rcx
1275 andq %rdx, %rbx
1276 rorq $5, %rcx
1277 xorq %r12, %rcx
1278 xorq %r13, %rbx
1279 rorq $6, %rcx
1280 addq %r11, %r15
1281 xorq %r12, %rcx
1282 addq %rbx, %r11
1283 rorq $28, %rcx
1284 movq %r15, %rax
1285 addq %rcx, %r11
1286 # rnd_1: 0 - 11
1287 rorq $23, %rax
1288 movq %r11, %rbx
1289 movq %r8, %rcx
1290 addq 104(%rsp), %r10
1291 xorq %r9, %rcx
1292 xorq %r15, %rax
1293 andq %r15, %rcx
1294 rorq $4, %rax
1295 xorq %r9, %rcx
1296 xorq %r15, %rax
1297 addq %rcx, %r10
1298 rorq $14, %rax
1299 xorq %r12, %rbx
1300 addq %rax, %r10
1301 movq %r11, %rcx
1302 andq %rbx, %rdx
1303 rorq $5, %rcx
1304 xorq %r11, %rcx
1305 xorq %r12, %rdx
1306 rorq $6, %rcx
1307 addq %r10, %r14
1308 xorq %r11, %rcx
1309 addq %rdx, %r10
1310 rorq $28, %rcx
1311 movq %r14, %rax
1312 addq %rcx, %r10
1313 # rnd_all_2: 14-15
1314 # rnd_0: 0 - 11
1315 rorq $23, %rax
1316 movq %r10, %rdx
1317 movq %r15, %rcx
1318 addq 112(%rsp), %r9
1319 xorq %r8, %rcx
1320 xorq %r14, %rax
1321 andq %r14, %rcx
1322 rorq $4, %rax
1323 xorq %r8, %rcx
1324 xorq %r14, %rax
1325 addq %rcx, %r9
1326 rorq $14, %rax
1327 xorq %r11, %rdx
1328 addq %rax, %r9
1329 movq %r10, %rcx
1330 andq %rdx, %rbx
1331 rorq $5, %rcx
1332 xorq %r10, %rcx
1333 xorq %r11, %rbx
1334 rorq $6, %rcx
1335 addq %r9, %r13
1336 xorq %r10, %rcx
1337 addq %rbx, %r9
1338 rorq $28, %rcx
1339 movq %r13, %rax
1340 addq %rcx, %r9
1341 # rnd_1: 0 - 11
1342 rorq $23, %rax
1343 movq %r9, %rbx
1344 movq %r14, %rcx
1345 addq 120(%rsp), %r8
1346 xorq %r15, %rcx
1347 xorq %r13, %rax
1348 andq %r13, %rcx
1349 rorq $4, %rax
1350 xorq %r15, %rcx
1351 xorq %r13, %rax
1352 addq %rcx, %r8
1353 rorq $14, %rax
1354 xorq %r10, %rbx
1355 addq %rax, %r8
1356 movq %r9, %rcx
1357 andq %rbx, %rdx
1358 rorq $5, %rcx
1359 xorq %r9, %rcx
1360 xorq %r10, %rdx
1361 rorq $6, %rcx
1362 addq %r8, %r12
1363 xorq %r9, %rcx
1364 addq %rdx, %r8
1365 rorq $28, %rcx
1366 movq %r12, %rax
1367 addq %rcx, %r8
1368 addq %r8, (%rdi)
1369 addq %r9, 8(%rdi)
1370 addq %r10, 16(%rdi)
1371 addq %r11, 24(%rdi)
1372 addq %r12, 32(%rdi)
1373 addq %r13, 40(%rdi)
1374 addq %r14, 48(%rdi)
1375 addq %r15, 56(%rdi)
1376 xorq %rax, %rax
1377 addq $0x88, %rsp
1378 popq %r15
1379 popq %r14
1380 popq %r13
1381 popq %r12
1382 popq %rbx
1383 repz retq
1384#ifndef __APPLE__
1385.size Transform_Sha512_AVX1,.-Transform_Sha512_AVX1
1386#endif /* __APPLE__ */
1387#ifndef __APPLE__
1388.text
1389.globl Transform_Sha512_AVX1_Len
1390.type Transform_Sha512_AVX1_Len,@function
1391.align 16
1392Transform_Sha512_AVX1_Len:
1393#else
1394.section __TEXT,__text
1395.globl _Transform_Sha512_AVX1_Len
1396.p2align 4
1397_Transform_Sha512_AVX1_Len:
1398#endif /* __APPLE__ */
1399 pushq %rbx
1400 pushq %r12
1401 pushq %r13
1402 pushq %r14
1403 pushq %r15
1404 pushq %rbp
1405 movq %rsi, %rbp
1406 subq $0x90, %rsp
1407 movq 224(%rdi), %rsi
1408 leaq L_avx1_sha512_k(%rip), %rdx
1409 vmovdqa L_avx1_sha512_flip_mask(%rip), %xmm14
1410 movq (%rdi), %r8
1411 movq 8(%rdi), %r9
1412 movq 16(%rdi), %r10
1413 movq 24(%rdi), %r11
1414 movq 32(%rdi), %r12
1415 movq 40(%rdi), %r13
1416 movq 48(%rdi), %r14
1417 movq 56(%rdi), %r15
1418 # Start of loop processing a block
1419L_sha512_len_avx1_begin:
1420 vmovdqu (%rsi), %xmm0
1421 vmovdqu 16(%rsi), %xmm1
1422 vpshufb %xmm14, %xmm0, %xmm0
1423 vpshufb %xmm14, %xmm1, %xmm1
1424 vmovdqu 32(%rsi), %xmm2
1425 vmovdqu 48(%rsi), %xmm3
1426 vpshufb %xmm14, %xmm2, %xmm2
1427 vpshufb %xmm14, %xmm3, %xmm3
1428 vmovdqu 64(%rsi), %xmm4
1429 vmovdqu 80(%rsi), %xmm5
1430 vpshufb %xmm14, %xmm4, %xmm4
1431 vpshufb %xmm14, %xmm5, %xmm5
1432 vmovdqu 96(%rsi), %xmm6
1433 vmovdqu 112(%rsi), %xmm7
1434 vpshufb %xmm14, %xmm6, %xmm6
1435 vpshufb %xmm14, %xmm7, %xmm7
1436 movl $4, 128(%rsp)
1437 movq %r9, %rbx
1438 movq %r12, %rax
1439 xorq %r10, %rbx
1440 vpaddq (%rdx), %xmm0, %xmm8
1441 vpaddq 16(%rdx), %xmm1, %xmm9
1442 vmovdqu %xmm8, (%rsp)
1443 vmovdqu %xmm9, 16(%rsp)
1444 vpaddq 32(%rdx), %xmm2, %xmm8
1445 vpaddq 48(%rdx), %xmm3, %xmm9
1446 vmovdqu %xmm8, 32(%rsp)
1447 vmovdqu %xmm9, 48(%rsp)
1448 vpaddq 64(%rdx), %xmm4, %xmm8
1449 vpaddq 80(%rdx), %xmm5, %xmm9
1450 vmovdqu %xmm8, 64(%rsp)
1451 vmovdqu %xmm9, 80(%rsp)
1452 vpaddq 96(%rdx), %xmm6, %xmm8
1453 vpaddq 112(%rdx), %xmm7, %xmm9
1454 vmovdqu %xmm8, 96(%rsp)
1455 vmovdqu %xmm9, 112(%rsp)
1456 # Start of 16 rounds
1457L_sha512_len_avx1_start:
1458 addq $0x80, %rdx
1459 movq %rdx, 136(%rsp)
1460 # msg_sched: 0-1
1461 # rnd_0: 0 - 0
1462 rorq $23, %rax
1463 vpalignr $8, %xmm0, %xmm1, %xmm12
1464 vpalignr $8, %xmm4, %xmm5, %xmm13
1465 # rnd_0: 1 - 1
1466 movq %r8, %rdx
1467 movq %r13, %rcx
1468 addq (%rsp), %r15
1469 xorq %r14, %rcx
1470 vpsrlq $0x01, %xmm12, %xmm8
1471 vpsllq $63, %xmm12, %xmm9
1472 # rnd_0: 2 - 3
1473 xorq %r12, %rax
1474 andq %r12, %rcx
1475 rorq $4, %rax
1476 xorq %r14, %rcx
1477 vpsrlq $8, %xmm12, %xmm10
1478 vpsllq $56, %xmm12, %xmm11
1479 # rnd_0: 4 - 5
1480 xorq %r12, %rax
1481 addq %rcx, %r15
1482 rorq $14, %rax
1483 xorq %r9, %rdx
1484 vpor %xmm9, %xmm8, %xmm8
1485 vpor %xmm11, %xmm10, %xmm10
1486 # rnd_0: 6 - 7
1487 addq %rax, %r15
1488 movq %r8, %rcx
1489 andq %rdx, %rbx
1490 rorq $5, %rcx
1491 vpsrlq $7, %xmm12, %xmm11
1492 vpxor %xmm10, %xmm8, %xmm8
1493 # rnd_0: 8 - 9
1494 xorq %r8, %rcx
1495 xorq %r9, %rbx
1496 rorq $6, %rcx
1497 addq %r15, %r11
1498 vpxor %xmm11, %xmm8, %xmm8
1499 vpaddq %xmm0, %xmm13, %xmm0
1500 # rnd_0: 10 - 11
1501 xorq %r8, %rcx
1502 addq %rbx, %r15
1503 rorq $28, %rcx
1504 movq %r11, %rax
1505 addq %rcx, %r15
1506 # rnd_1: 0 - 0
1507 rorq $23, %rax
1508 vpaddq %xmm0, %xmm8, %xmm0
1509 # rnd_1: 1 - 1
1510 movq %r15, %rbx
1511 movq %r12, %rcx
1512 addq 8(%rsp), %r14
1513 xorq %r13, %rcx
1514 vpsrlq $19, %xmm7, %xmm8
1515 vpsllq $45, %xmm7, %xmm9
1516 # rnd_1: 2 - 3
1517 xorq %r11, %rax
1518 andq %r11, %rcx
1519 rorq $4, %rax
1520 xorq %r13, %rcx
1521 vpsrlq $61, %xmm7, %xmm10
1522 vpsllq $3, %xmm7, %xmm11
1523 # rnd_1: 4 - 6
1524 xorq %r11, %rax
1525 addq %rcx, %r14
1526 rorq $14, %rax
1527 xorq %r8, %rbx
1528 addq %rax, %r14
1529 movq %r15, %rcx
1530 vpor %xmm9, %xmm8, %xmm8
1531 vpor %xmm11, %xmm10, %xmm10
1532 # rnd_1: 7 - 8
1533 andq %rbx, %rdx
1534 rorq $5, %rcx
1535 xorq %r15, %rcx
1536 xorq %r8, %rdx
1537 vpxor %xmm10, %xmm8, %xmm8
1538 vpsrlq $6, %xmm7, %xmm11
1539 # rnd_1: 9 - 10
1540 rorq $6, %rcx
1541 addq %r14, %r10
1542 xorq %r15, %rcx
1543 addq %rdx, %r14
1544 vpxor %xmm11, %xmm8, %xmm8
1545 # rnd_1: 11 - 11
1546 rorq $28, %rcx
1547 movq %r10, %rax
1548 addq %rcx, %r14
1549 vpaddq %xmm0, %xmm8, %xmm0
1550 # msg_sched done: 0-1
1551 # msg_sched: 2-3
1552 # rnd_0: 0 - 0
1553 rorq $23, %rax
1554 vpalignr $8, %xmm1, %xmm2, %xmm12
1555 vpalignr $8, %xmm5, %xmm6, %xmm13
1556 # rnd_0: 1 - 1
1557 movq %r14, %rdx
1558 movq %r11, %rcx
1559 addq 16(%rsp), %r13
1560 xorq %r12, %rcx
1561 vpsrlq $0x01, %xmm12, %xmm8
1562 vpsllq $63, %xmm12, %xmm9
1563 # rnd_0: 2 - 3
1564 xorq %r10, %rax
1565 andq %r10, %rcx
1566 rorq $4, %rax
1567 xorq %r12, %rcx
1568 vpsrlq $8, %xmm12, %xmm10
1569 vpsllq $56, %xmm12, %xmm11
1570 # rnd_0: 4 - 5
1571 xorq %r10, %rax
1572 addq %rcx, %r13
1573 rorq $14, %rax
1574 xorq %r15, %rdx
1575 vpor %xmm9, %xmm8, %xmm8
1576 vpor %xmm11, %xmm10, %xmm10
1577 # rnd_0: 6 - 7
1578 addq %rax, %r13
1579 movq %r14, %rcx
1580 andq %rdx, %rbx
1581 rorq $5, %rcx
1582 vpsrlq $7, %xmm12, %xmm11
1583 vpxor %xmm10, %xmm8, %xmm8
1584 # rnd_0: 8 - 9
1585 xorq %r14, %rcx
1586 xorq %r15, %rbx
1587 rorq $6, %rcx
1588 addq %r13, %r9
1589 vpxor %xmm11, %xmm8, %xmm8
1590 vpaddq %xmm1, %xmm13, %xmm1
1591 # rnd_0: 10 - 11
1592 xorq %r14, %rcx
1593 addq %rbx, %r13
1594 rorq $28, %rcx
1595 movq %r9, %rax
1596 addq %rcx, %r13
1597 # rnd_1: 0 - 0
1598 rorq $23, %rax
1599 vpaddq %xmm1, %xmm8, %xmm1
1600 # rnd_1: 1 - 1
1601 movq %r13, %rbx
1602 movq %r10, %rcx
1603 addq 24(%rsp), %r12
1604 xorq %r11, %rcx
1605 vpsrlq $19, %xmm0, %xmm8
1606 vpsllq $45, %xmm0, %xmm9
1607 # rnd_1: 2 - 3
1608 xorq %r9, %rax
1609 andq %r9, %rcx
1610 rorq $4, %rax
1611 xorq %r11, %rcx
1612 vpsrlq $61, %xmm0, %xmm10
1613 vpsllq $3, %xmm0, %xmm11
1614 # rnd_1: 4 - 6
1615 xorq %r9, %rax
1616 addq %rcx, %r12
1617 rorq $14, %rax
1618 xorq %r14, %rbx
1619 addq %rax, %r12
1620 movq %r13, %rcx
1621 vpor %xmm9, %xmm8, %xmm8
1622 vpor %xmm11, %xmm10, %xmm10
1623 # rnd_1: 7 - 8
1624 andq %rbx, %rdx
1625 rorq $5, %rcx
1626 xorq %r13, %rcx
1627 xorq %r14, %rdx
1628 vpxor %xmm10, %xmm8, %xmm8
1629 vpsrlq $6, %xmm0, %xmm11
1630 # rnd_1: 9 - 10
1631 rorq $6, %rcx
1632 addq %r12, %r8
1633 xorq %r13, %rcx
1634 addq %rdx, %r12
1635 vpxor %xmm11, %xmm8, %xmm8
1636 # rnd_1: 11 - 11
1637 rorq $28, %rcx
1638 movq %r8, %rax
1639 addq %rcx, %r12
1640 vpaddq %xmm1, %xmm8, %xmm1
1641 # msg_sched done: 2-3
1642 # msg_sched: 4-5
1643 # rnd_0: 0 - 0
1644 rorq $23, %rax
1645 vpalignr $8, %xmm2, %xmm3, %xmm12
1646 vpalignr $8, %xmm6, %xmm7, %xmm13
1647 # rnd_0: 1 - 1
1648 movq %r12, %rdx
1649 movq %r9, %rcx
1650 addq 32(%rsp), %r11
1651 xorq %r10, %rcx
1652 vpsrlq $0x01, %xmm12, %xmm8
1653 vpsllq $63, %xmm12, %xmm9
1654 # rnd_0: 2 - 3
1655 xorq %r8, %rax
1656 andq %r8, %rcx
1657 rorq $4, %rax
1658 xorq %r10, %rcx
1659 vpsrlq $8, %xmm12, %xmm10
1660 vpsllq $56, %xmm12, %xmm11
1661 # rnd_0: 4 - 5
1662 xorq %r8, %rax
1663 addq %rcx, %r11
1664 rorq $14, %rax
1665 xorq %r13, %rdx
1666 vpor %xmm9, %xmm8, %xmm8
1667 vpor %xmm11, %xmm10, %xmm10
1668 # rnd_0: 6 - 7
1669 addq %rax, %r11
1670 movq %r12, %rcx
1671 andq %rdx, %rbx
1672 rorq $5, %rcx
1673 vpsrlq $7, %xmm12, %xmm11
1674 vpxor %xmm10, %xmm8, %xmm8
1675 # rnd_0: 8 - 9
1676 xorq %r12, %rcx
1677 xorq %r13, %rbx
1678 rorq $6, %rcx
1679 addq %r11, %r15
1680 vpxor %xmm11, %xmm8, %xmm8
1681 vpaddq %xmm2, %xmm13, %xmm2
1682 # rnd_0: 10 - 11
1683 xorq %r12, %rcx
1684 addq %rbx, %r11
1685 rorq $28, %rcx
1686 movq %r15, %rax
1687 addq %rcx, %r11
1688 # rnd_1: 0 - 0
1689 rorq $23, %rax
1690 vpaddq %xmm2, %xmm8, %xmm2
1691 # rnd_1: 1 - 1
1692 movq %r11, %rbx
1693 movq %r8, %rcx
1694 addq 40(%rsp), %r10
1695 xorq %r9, %rcx
1696 vpsrlq $19, %xmm1, %xmm8
1697 vpsllq $45, %xmm1, %xmm9
1698 # rnd_1: 2 - 3
1699 xorq %r15, %rax
1700 andq %r15, %rcx
1701 rorq $4, %rax
1702 xorq %r9, %rcx
1703 vpsrlq $61, %xmm1, %xmm10
1704 vpsllq $3, %xmm1, %xmm11
1705 # rnd_1: 4 - 6
1706 xorq %r15, %rax
1707 addq %rcx, %r10
1708 rorq $14, %rax
1709 xorq %r12, %rbx
1710 addq %rax, %r10
1711 movq %r11, %rcx
1712 vpor %xmm9, %xmm8, %xmm8
1713 vpor %xmm11, %xmm10, %xmm10
1714 # rnd_1: 7 - 8
1715 andq %rbx, %rdx
1716 rorq $5, %rcx
1717 xorq %r11, %rcx
1718 xorq %r12, %rdx
1719 vpxor %xmm10, %xmm8, %xmm8
1720 vpsrlq $6, %xmm1, %xmm11
1721 # rnd_1: 9 - 10
1722 rorq $6, %rcx
1723 addq %r10, %r14
1724 xorq %r11, %rcx
1725 addq %rdx, %r10
1726 vpxor %xmm11, %xmm8, %xmm8
1727 # rnd_1: 11 - 11
1728 rorq $28, %rcx
1729 movq %r14, %rax
1730 addq %rcx, %r10
1731 vpaddq %xmm2, %xmm8, %xmm2
1732 # msg_sched done: 4-5
1733 # msg_sched: 6-7
1734 # rnd_0: 0 - 0
1735 rorq $23, %rax
1736 vpalignr $8, %xmm3, %xmm4, %xmm12
1737 vpalignr $8, %xmm7, %xmm0, %xmm13
1738 # rnd_0: 1 - 1
1739 movq %r10, %rdx
1740 movq %r15, %rcx
1741 addq 48(%rsp), %r9
1742 xorq %r8, %rcx
1743 vpsrlq $0x01, %xmm12, %xmm8
1744 vpsllq $63, %xmm12, %xmm9
1745 # rnd_0: 2 - 3
1746 xorq %r14, %rax
1747 andq %r14, %rcx
1748 rorq $4, %rax
1749 xorq %r8, %rcx
1750 vpsrlq $8, %xmm12, %xmm10
1751 vpsllq $56, %xmm12, %xmm11
1752 # rnd_0: 4 - 5
1753 xorq %r14, %rax
1754 addq %rcx, %r9
1755 rorq $14, %rax
1756 xorq %r11, %rdx
1757 vpor %xmm9, %xmm8, %xmm8
1758 vpor %xmm11, %xmm10, %xmm10
1759 # rnd_0: 6 - 7
1760 addq %rax, %r9
1761 movq %r10, %rcx
1762 andq %rdx, %rbx
1763 rorq $5, %rcx
1764 vpsrlq $7, %xmm12, %xmm11
1765 vpxor %xmm10, %xmm8, %xmm8
1766 # rnd_0: 8 - 9
1767 xorq %r10, %rcx
1768 xorq %r11, %rbx
1769 rorq $6, %rcx
1770 addq %r9, %r13
1771 vpxor %xmm11, %xmm8, %xmm8
1772 vpaddq %xmm3, %xmm13, %xmm3
1773 # rnd_0: 10 - 11
1774 xorq %r10, %rcx
1775 addq %rbx, %r9
1776 rorq $28, %rcx
1777 movq %r13, %rax
1778 addq %rcx, %r9
1779 # rnd_1: 0 - 0
1780 rorq $23, %rax
1781 vpaddq %xmm3, %xmm8, %xmm3
1782 # rnd_1: 1 - 1
1783 movq %r9, %rbx
1784 movq %r14, %rcx
1785 addq 56(%rsp), %r8
1786 xorq %r15, %rcx
1787 vpsrlq $19, %xmm2, %xmm8
1788 vpsllq $45, %xmm2, %xmm9
1789 # rnd_1: 2 - 3
1790 xorq %r13, %rax
1791 andq %r13, %rcx
1792 rorq $4, %rax
1793 xorq %r15, %rcx
1794 vpsrlq $61, %xmm2, %xmm10
1795 vpsllq $3, %xmm2, %xmm11
1796 # rnd_1: 4 - 6
1797 xorq %r13, %rax
1798 addq %rcx, %r8
1799 rorq $14, %rax
1800 xorq %r10, %rbx
1801 addq %rax, %r8
1802 movq %r9, %rcx
1803 vpor %xmm9, %xmm8, %xmm8
1804 vpor %xmm11, %xmm10, %xmm10
1805 # rnd_1: 7 - 8
1806 andq %rbx, %rdx
1807 rorq $5, %rcx
1808 xorq %r9, %rcx
1809 xorq %r10, %rdx
1810 vpxor %xmm10, %xmm8, %xmm8
1811 vpsrlq $6, %xmm2, %xmm11
1812 # rnd_1: 9 - 10
1813 rorq $6, %rcx
1814 addq %r8, %r12
1815 xorq %r9, %rcx
1816 addq %rdx, %r8
1817 vpxor %xmm11, %xmm8, %xmm8
1818 # rnd_1: 11 - 11
1819 rorq $28, %rcx
1820 movq %r12, %rax
1821 addq %rcx, %r8
1822 vpaddq %xmm3, %xmm8, %xmm3
1823 # msg_sched done: 6-7
1824 # msg_sched: 8-9
1825 # rnd_0: 0 - 0
1826 rorq $23, %rax
1827 vpalignr $8, %xmm4, %xmm5, %xmm12
1828 vpalignr $8, %xmm0, %xmm1, %xmm13
1829 # rnd_0: 1 - 1
1830 movq %r8, %rdx
1831 movq %r13, %rcx
1832 addq 64(%rsp), %r15
1833 xorq %r14, %rcx
1834 vpsrlq $0x01, %xmm12, %xmm8
1835 vpsllq $63, %xmm12, %xmm9
1836 # rnd_0: 2 - 3
1837 xorq %r12, %rax
1838 andq %r12, %rcx
1839 rorq $4, %rax
1840 xorq %r14, %rcx
1841 vpsrlq $8, %xmm12, %xmm10
1842 vpsllq $56, %xmm12, %xmm11
1843 # rnd_0: 4 - 5
1844 xorq %r12, %rax
1845 addq %rcx, %r15
1846 rorq $14, %rax
1847 xorq %r9, %rdx
1848 vpor %xmm9, %xmm8, %xmm8
1849 vpor %xmm11, %xmm10, %xmm10
1850 # rnd_0: 6 - 7
1851 addq %rax, %r15
1852 movq %r8, %rcx
1853 andq %rdx, %rbx
1854 rorq $5, %rcx
1855 vpsrlq $7, %xmm12, %xmm11
1856 vpxor %xmm10, %xmm8, %xmm8
1857 # rnd_0: 8 - 9
1858 xorq %r8, %rcx
1859 xorq %r9, %rbx
1860 rorq $6, %rcx
1861 addq %r15, %r11
1862 vpxor %xmm11, %xmm8, %xmm8
1863 vpaddq %xmm4, %xmm13, %xmm4
1864 # rnd_0: 10 - 11
1865 xorq %r8, %rcx
1866 addq %rbx, %r15
1867 rorq $28, %rcx
1868 movq %r11, %rax
1869 addq %rcx, %r15
1870 # rnd_1: 0 - 0
1871 rorq $23, %rax
1872 vpaddq %xmm4, %xmm8, %xmm4
1873 # rnd_1: 1 - 1
1874 movq %r15, %rbx
1875 movq %r12, %rcx
1876 addq 72(%rsp), %r14
1877 xorq %r13, %rcx
1878 vpsrlq $19, %xmm3, %xmm8
1879 vpsllq $45, %xmm3, %xmm9
1880 # rnd_1: 2 - 3
1881 xorq %r11, %rax
1882 andq %r11, %rcx
1883 rorq $4, %rax
1884 xorq %r13, %rcx
1885 vpsrlq $61, %xmm3, %xmm10
1886 vpsllq $3, %xmm3, %xmm11
1887 # rnd_1: 4 - 6
1888 xorq %r11, %rax
1889 addq %rcx, %r14
1890 rorq $14, %rax
1891 xorq %r8, %rbx
1892 addq %rax, %r14
1893 movq %r15, %rcx
1894 vpor %xmm9, %xmm8, %xmm8
1895 vpor %xmm11, %xmm10, %xmm10
1896 # rnd_1: 7 - 8
1897 andq %rbx, %rdx
1898 rorq $5, %rcx
1899 xorq %r15, %rcx
1900 xorq %r8, %rdx
1901 vpxor %xmm10, %xmm8, %xmm8
1902 vpsrlq $6, %xmm3, %xmm11
1903 # rnd_1: 9 - 10
1904 rorq $6, %rcx
1905 addq %r14, %r10
1906 xorq %r15, %rcx
1907 addq %rdx, %r14
1908 vpxor %xmm11, %xmm8, %xmm8
1909 # rnd_1: 11 - 11
1910 rorq $28, %rcx
1911 movq %r10, %rax
1912 addq %rcx, %r14
1913 vpaddq %xmm4, %xmm8, %xmm4
1914 # msg_sched done: 8-9
1915 # msg_sched: 10-11
1916 # rnd_0: 0 - 0
1917 rorq $23, %rax
1918 vpalignr $8, %xmm5, %xmm6, %xmm12
1919 vpalignr $8, %xmm1, %xmm2, %xmm13
1920 # rnd_0: 1 - 1
1921 movq %r14, %rdx
1922 movq %r11, %rcx
1923 addq 80(%rsp), %r13
1924 xorq %r12, %rcx
1925 vpsrlq $0x01, %xmm12, %xmm8
1926 vpsllq $63, %xmm12, %xmm9
1927 # rnd_0: 2 - 3
1928 xorq %r10, %rax
1929 andq %r10, %rcx
1930 rorq $4, %rax
1931 xorq %r12, %rcx
1932 vpsrlq $8, %xmm12, %xmm10
1933 vpsllq $56, %xmm12, %xmm11
1934 # rnd_0: 4 - 5
1935 xorq %r10, %rax
1936 addq %rcx, %r13
1937 rorq $14, %rax
1938 xorq %r15, %rdx
1939 vpor %xmm9, %xmm8, %xmm8
1940 vpor %xmm11, %xmm10, %xmm10
1941 # rnd_0: 6 - 7
1942 addq %rax, %r13
1943 movq %r14, %rcx
1944 andq %rdx, %rbx
1945 rorq $5, %rcx
1946 vpsrlq $7, %xmm12, %xmm11
1947 vpxor %xmm10, %xmm8, %xmm8
1948 # rnd_0: 8 - 9
1949 xorq %r14, %rcx
1950 xorq %r15, %rbx
1951 rorq $6, %rcx
1952 addq %r13, %r9
1953 vpxor %xmm11, %xmm8, %xmm8
1954 vpaddq %xmm5, %xmm13, %xmm5
1955 # rnd_0: 10 - 11
1956 xorq %r14, %rcx
1957 addq %rbx, %r13
1958 rorq $28, %rcx
1959 movq %r9, %rax
1960 addq %rcx, %r13
1961 # rnd_1: 0 - 0
1962 rorq $23, %rax
1963 vpaddq %xmm5, %xmm8, %xmm5
1964 # rnd_1: 1 - 1
1965 movq %r13, %rbx
1966 movq %r10, %rcx
1967 addq 88(%rsp), %r12
1968 xorq %r11, %rcx
1969 vpsrlq $19, %xmm4, %xmm8
1970 vpsllq $45, %xmm4, %xmm9
1971 # rnd_1: 2 - 3
1972 xorq %r9, %rax
1973 andq %r9, %rcx
1974 rorq $4, %rax
1975 xorq %r11, %rcx
1976 vpsrlq $61, %xmm4, %xmm10
1977 vpsllq $3, %xmm4, %xmm11
1978 # rnd_1: 4 - 6
1979 xorq %r9, %rax
1980 addq %rcx, %r12
1981 rorq $14, %rax
1982 xorq %r14, %rbx
1983 addq %rax, %r12
1984 movq %r13, %rcx
1985 vpor %xmm9, %xmm8, %xmm8
1986 vpor %xmm11, %xmm10, %xmm10
1987 # rnd_1: 7 - 8
1988 andq %rbx, %rdx
1989 rorq $5, %rcx
1990 xorq %r13, %rcx
1991 xorq %r14, %rdx
1992 vpxor %xmm10, %xmm8, %xmm8
1993 vpsrlq $6, %xmm4, %xmm11
1994 # rnd_1: 9 - 10
1995 rorq $6, %rcx
1996 addq %r12, %r8
1997 xorq %r13, %rcx
1998 addq %rdx, %r12
1999 vpxor %xmm11, %xmm8, %xmm8
2000 # rnd_1: 11 - 11
2001 rorq $28, %rcx
2002 movq %r8, %rax
2003 addq %rcx, %r12
2004 vpaddq %xmm5, %xmm8, %xmm5
2005 # msg_sched done: 10-11
2006 # msg_sched: 12-13
2007 # rnd_0: 0 - 0
2008 rorq $23, %rax
2009 vpalignr $8, %xmm6, %xmm7, %xmm12
2010 vpalignr $8, %xmm2, %xmm3, %xmm13
2011 # rnd_0: 1 - 1
2012 movq %r12, %rdx
2013 movq %r9, %rcx
2014 addq 96(%rsp), %r11
2015 xorq %r10, %rcx
2016 vpsrlq $0x01, %xmm12, %xmm8
2017 vpsllq $63, %xmm12, %xmm9
2018 # rnd_0: 2 - 3
2019 xorq %r8, %rax
2020 andq %r8, %rcx
2021 rorq $4, %rax
2022 xorq %r10, %rcx
2023 vpsrlq $8, %xmm12, %xmm10
2024 vpsllq $56, %xmm12, %xmm11
2025 # rnd_0: 4 - 5
2026 xorq %r8, %rax
2027 addq %rcx, %r11
2028 rorq $14, %rax
2029 xorq %r13, %rdx
2030 vpor %xmm9, %xmm8, %xmm8
2031 vpor %xmm11, %xmm10, %xmm10
2032 # rnd_0: 6 - 7
2033 addq %rax, %r11
2034 movq %r12, %rcx
2035 andq %rdx, %rbx
2036 rorq $5, %rcx
2037 vpsrlq $7, %xmm12, %xmm11
2038 vpxor %xmm10, %xmm8, %xmm8
2039 # rnd_0: 8 - 9
2040 xorq %r12, %rcx
2041 xorq %r13, %rbx
2042 rorq $6, %rcx
2043 addq %r11, %r15
2044 vpxor %xmm11, %xmm8, %xmm8
2045 vpaddq %xmm6, %xmm13, %xmm6
2046 # rnd_0: 10 - 11
2047 xorq %r12, %rcx
2048 addq %rbx, %r11
2049 rorq $28, %rcx
2050 movq %r15, %rax
2051 addq %rcx, %r11
2052 # rnd_1: 0 - 0
2053 rorq $23, %rax
2054 vpaddq %xmm6, %xmm8, %xmm6
2055 # rnd_1: 1 - 1
2056 movq %r11, %rbx
2057 movq %r8, %rcx
2058 addq 104(%rsp), %r10
2059 xorq %r9, %rcx
2060 vpsrlq $19, %xmm5, %xmm8
2061 vpsllq $45, %xmm5, %xmm9
2062 # rnd_1: 2 - 3
2063 xorq %r15, %rax
2064 andq %r15, %rcx
2065 rorq $4, %rax
2066 xorq %r9, %rcx
2067 vpsrlq $61, %xmm5, %xmm10
2068 vpsllq $3, %xmm5, %xmm11
2069 # rnd_1: 4 - 6
2070 xorq %r15, %rax
2071 addq %rcx, %r10
2072 rorq $14, %rax
2073 xorq %r12, %rbx
2074 addq %rax, %r10
2075 movq %r11, %rcx
2076 vpor %xmm9, %xmm8, %xmm8
2077 vpor %xmm11, %xmm10, %xmm10
2078 # rnd_1: 7 - 8
2079 andq %rbx, %rdx
2080 rorq $5, %rcx
2081 xorq %r11, %rcx
2082 xorq %r12, %rdx
2083 vpxor %xmm10, %xmm8, %xmm8
2084 vpsrlq $6, %xmm5, %xmm11
2085 # rnd_1: 9 - 10
2086 rorq $6, %rcx
2087 addq %r10, %r14
2088 xorq %r11, %rcx
2089 addq %rdx, %r10
2090 vpxor %xmm11, %xmm8, %xmm8
2091 # rnd_1: 11 - 11
2092 rorq $28, %rcx
2093 movq %r14, %rax
2094 addq %rcx, %r10
2095 vpaddq %xmm6, %xmm8, %xmm6
2096 # msg_sched done: 12-13
2097 # msg_sched: 14-15
2098 # rnd_0: 0 - 0
2099 rorq $23, %rax
2100 vpalignr $8, %xmm7, %xmm0, %xmm12
2101 vpalignr $8, %xmm3, %xmm4, %xmm13
2102 # rnd_0: 1 - 1
2103 movq %r10, %rdx
2104 movq %r15, %rcx
2105 addq 112(%rsp), %r9
2106 xorq %r8, %rcx
2107 vpsrlq $0x01, %xmm12, %xmm8
2108 vpsllq $63, %xmm12, %xmm9
2109 # rnd_0: 2 - 3
2110 xorq %r14, %rax
2111 andq %r14, %rcx
2112 rorq $4, %rax
2113 xorq %r8, %rcx
2114 vpsrlq $8, %xmm12, %xmm10
2115 vpsllq $56, %xmm12, %xmm11
2116 # rnd_0: 4 - 5
2117 xorq %r14, %rax
2118 addq %rcx, %r9
2119 rorq $14, %rax
2120 xorq %r11, %rdx
2121 vpor %xmm9, %xmm8, %xmm8
2122 vpor %xmm11, %xmm10, %xmm10
2123 # rnd_0: 6 - 7
2124 addq %rax, %r9
2125 movq %r10, %rcx
2126 andq %rdx, %rbx
2127 rorq $5, %rcx
2128 vpsrlq $7, %xmm12, %xmm11
2129 vpxor %xmm10, %xmm8, %xmm8
2130 # rnd_0: 8 - 9
2131 xorq %r10, %rcx
2132 xorq %r11, %rbx
2133 rorq $6, %rcx
2134 addq %r9, %r13
2135 vpxor %xmm11, %xmm8, %xmm8
2136 vpaddq %xmm7, %xmm13, %xmm7
2137 # rnd_0: 10 - 11
2138 xorq %r10, %rcx
2139 addq %rbx, %r9
2140 rorq $28, %rcx
2141 movq %r13, %rax
2142 addq %rcx, %r9
2143 # rnd_1: 0 - 0
2144 rorq $23, %rax
2145 vpaddq %xmm7, %xmm8, %xmm7
2146 # rnd_1: 1 - 1
2147 movq %r9, %rbx
2148 movq %r14, %rcx
2149 addq 120(%rsp), %r8
2150 xorq %r15, %rcx
2151 vpsrlq $19, %xmm6, %xmm8
2152 vpsllq $45, %xmm6, %xmm9
2153 # rnd_1: 2 - 3
2154 xorq %r13, %rax
2155 andq %r13, %rcx
2156 rorq $4, %rax
2157 xorq %r15, %rcx
2158 vpsrlq $61, %xmm6, %xmm10
2159 vpsllq $3, %xmm6, %xmm11
2160 # rnd_1: 4 - 6
2161 xorq %r13, %rax
2162 addq %rcx, %r8
2163 rorq $14, %rax
2164 xorq %r10, %rbx
2165 addq %rax, %r8
2166 movq %r9, %rcx
2167 vpor %xmm9, %xmm8, %xmm8
2168 vpor %xmm11, %xmm10, %xmm10
2169 # rnd_1: 7 - 8
2170 andq %rbx, %rdx
2171 rorq $5, %rcx
2172 xorq %r9, %rcx
2173 xorq %r10, %rdx
2174 vpxor %xmm10, %xmm8, %xmm8
2175 vpsrlq $6, %xmm6, %xmm11
2176 # rnd_1: 9 - 10
2177 rorq $6, %rcx
2178 addq %r8, %r12
2179 xorq %r9, %rcx
2180 addq %rdx, %r8
2181 vpxor %xmm11, %xmm8, %xmm8
2182 # rnd_1: 11 - 11
2183 rorq $28, %rcx
2184 movq %r12, %rax
2185 addq %rcx, %r8
2186 vpaddq %xmm7, %xmm8, %xmm7
2187 # msg_sched done: 14-15
2188 movq 136(%rsp), %rdx
2189 vpaddq (%rdx), %xmm0, %xmm8
2190 vpaddq 16(%rdx), %xmm1, %xmm9
2191 vmovdqu %xmm8, (%rsp)
2192 vmovdqu %xmm9, 16(%rsp)
2193 vpaddq 32(%rdx), %xmm2, %xmm8
2194 vpaddq 48(%rdx), %xmm3, %xmm9
2195 vmovdqu %xmm8, 32(%rsp)
2196 vmovdqu %xmm9, 48(%rsp)
2197 vpaddq 64(%rdx), %xmm4, %xmm8
2198 vpaddq 80(%rdx), %xmm5, %xmm9
2199 vmovdqu %xmm8, 64(%rsp)
2200 vmovdqu %xmm9, 80(%rsp)
2201 vpaddq 96(%rdx), %xmm6, %xmm8
2202 vpaddq 112(%rdx), %xmm7, %xmm9
2203 vmovdqu %xmm8, 96(%rsp)
2204 vmovdqu %xmm9, 112(%rsp)
2205 subl $0x01, 128(%rsp)
2206 jne L_sha512_len_avx1_start
2207 # rnd_all_2: 0-1
2208 # rnd_0: 0 - 11
2209 rorq $23, %rax
2210 movq %r8, %rdx
2211 movq %r13, %rcx
2212 addq (%rsp), %r15
2213 xorq %r14, %rcx
2214 xorq %r12, %rax
2215 andq %r12, %rcx
2216 rorq $4, %rax
2217 xorq %r14, %rcx
2218 xorq %r12, %rax
2219 addq %rcx, %r15
2220 rorq $14, %rax
2221 xorq %r9, %rdx
2222 addq %rax, %r15
2223 movq %r8, %rcx
2224 andq %rdx, %rbx
2225 rorq $5, %rcx
2226 xorq %r8, %rcx
2227 xorq %r9, %rbx
2228 rorq $6, %rcx
2229 addq %r15, %r11
2230 xorq %r8, %rcx
2231 addq %rbx, %r15
2232 rorq $28, %rcx
2233 movq %r11, %rax
2234 addq %rcx, %r15
2235 # rnd_1: 0 - 11
2236 rorq $23, %rax
2237 movq %r15, %rbx
2238 movq %r12, %rcx
2239 addq 8(%rsp), %r14
2240 xorq %r13, %rcx
2241 xorq %r11, %rax
2242 andq %r11, %rcx
2243 rorq $4, %rax
2244 xorq %r13, %rcx
2245 xorq %r11, %rax
2246 addq %rcx, %r14
2247 rorq $14, %rax
2248 xorq %r8, %rbx
2249 addq %rax, %r14
2250 movq %r15, %rcx
2251 andq %rbx, %rdx
2252 rorq $5, %rcx
2253 xorq %r15, %rcx
2254 xorq %r8, %rdx
2255 rorq $6, %rcx
2256 addq %r14, %r10
2257 xorq %r15, %rcx
2258 addq %rdx, %r14
2259 rorq $28, %rcx
2260 movq %r10, %rax
2261 addq %rcx, %r14
2262 # rnd_all_2: 2-3
2263 # rnd_0: 0 - 11
2264 rorq $23, %rax
2265 movq %r14, %rdx
2266 movq %r11, %rcx
2267 addq 16(%rsp), %r13
2268 xorq %r12, %rcx
2269 xorq %r10, %rax
2270 andq %r10, %rcx
2271 rorq $4, %rax
2272 xorq %r12, %rcx
2273 xorq %r10, %rax
2274 addq %rcx, %r13
2275 rorq $14, %rax
2276 xorq %r15, %rdx
2277 addq %rax, %r13
2278 movq %r14, %rcx
2279 andq %rdx, %rbx
2280 rorq $5, %rcx
2281 xorq %r14, %rcx
2282 xorq %r15, %rbx
2283 rorq $6, %rcx
2284 addq %r13, %r9
2285 xorq %r14, %rcx
2286 addq %rbx, %r13
2287 rorq $28, %rcx
2288 movq %r9, %rax
2289 addq %rcx, %r13
2290 # rnd_1: 0 - 11
2291 rorq $23, %rax
2292 movq %r13, %rbx
2293 movq %r10, %rcx
2294 addq 24(%rsp), %r12
2295 xorq %r11, %rcx
2296 xorq %r9, %rax
2297 andq %r9, %rcx
2298 rorq $4, %rax
2299 xorq %r11, %rcx
2300 xorq %r9, %rax
2301 addq %rcx, %r12
2302 rorq $14, %rax
2303 xorq %r14, %rbx
2304 addq %rax, %r12
2305 movq %r13, %rcx
2306 andq %rbx, %rdx
2307 rorq $5, %rcx
2308 xorq %r13, %rcx
2309 xorq %r14, %rdx
2310 rorq $6, %rcx
2311 addq %r12, %r8
2312 xorq %r13, %rcx
2313 addq %rdx, %r12
2314 rorq $28, %rcx
2315 movq %r8, %rax
2316 addq %rcx, %r12
2317 # rnd_all_2: 4-5
2318 # rnd_0: 0 - 11
2319 rorq $23, %rax
2320 movq %r12, %rdx
2321 movq %r9, %rcx
2322 addq 32(%rsp), %r11
2323 xorq %r10, %rcx
2324 xorq %r8, %rax
2325 andq %r8, %rcx
2326 rorq $4, %rax
2327 xorq %r10, %rcx
2328 xorq %r8, %rax
2329 addq %rcx, %r11
2330 rorq $14, %rax
2331 xorq %r13, %rdx
2332 addq %rax, %r11
2333 movq %r12, %rcx
2334 andq %rdx, %rbx
2335 rorq $5, %rcx
2336 xorq %r12, %rcx
2337 xorq %r13, %rbx
2338 rorq $6, %rcx
2339 addq %r11, %r15
2340 xorq %r12, %rcx
2341 addq %rbx, %r11
2342 rorq $28, %rcx
2343 movq %r15, %rax
2344 addq %rcx, %r11
2345 # rnd_1: 0 - 11
2346 rorq $23, %rax
2347 movq %r11, %rbx
2348 movq %r8, %rcx
2349 addq 40(%rsp), %r10
2350 xorq %r9, %rcx
2351 xorq %r15, %rax
2352 andq %r15, %rcx
2353 rorq $4, %rax
2354 xorq %r9, %rcx
2355 xorq %r15, %rax
2356 addq %rcx, %r10
2357 rorq $14, %rax
2358 xorq %r12, %rbx
2359 addq %rax, %r10
2360 movq %r11, %rcx
2361 andq %rbx, %rdx
2362 rorq $5, %rcx
2363 xorq %r11, %rcx
2364 xorq %r12, %rdx
2365 rorq $6, %rcx
2366 addq %r10, %r14
2367 xorq %r11, %rcx
2368 addq %rdx, %r10
2369 rorq $28, %rcx
2370 movq %r14, %rax
2371 addq %rcx, %r10
2372 # rnd_all_2: 6-7
2373 # rnd_0: 0 - 11
2374 rorq $23, %rax
2375 movq %r10, %rdx
2376 movq %r15, %rcx
2377 addq 48(%rsp), %r9
2378 xorq %r8, %rcx
2379 xorq %r14, %rax
2380 andq %r14, %rcx
2381 rorq $4, %rax
2382 xorq %r8, %rcx
2383 xorq %r14, %rax
2384 addq %rcx, %r9
2385 rorq $14, %rax
2386 xorq %r11, %rdx
2387 addq %rax, %r9
2388 movq %r10, %rcx
2389 andq %rdx, %rbx
2390 rorq $5, %rcx
2391 xorq %r10, %rcx
2392 xorq %r11, %rbx
2393 rorq $6, %rcx
2394 addq %r9, %r13
2395 xorq %r10, %rcx
2396 addq %rbx, %r9
2397 rorq $28, %rcx
2398 movq %r13, %rax
2399 addq %rcx, %r9
2400 # rnd_1: 0 - 11
2401 rorq $23, %rax
2402 movq %r9, %rbx
2403 movq %r14, %rcx
2404 addq 56(%rsp), %r8
2405 xorq %r15, %rcx
2406 xorq %r13, %rax
2407 andq %r13, %rcx
2408 rorq $4, %rax
2409 xorq %r15, %rcx
2410 xorq %r13, %rax
2411 addq %rcx, %r8
2412 rorq $14, %rax
2413 xorq %r10, %rbx
2414 addq %rax, %r8
2415 movq %r9, %rcx
2416 andq %rbx, %rdx
2417 rorq $5, %rcx
2418 xorq %r9, %rcx
2419 xorq %r10, %rdx
2420 rorq $6, %rcx
2421 addq %r8, %r12
2422 xorq %r9, %rcx
2423 addq %rdx, %r8
2424 rorq $28, %rcx
2425 movq %r12, %rax
2426 addq %rcx, %r8
2427 # rnd_all_2: 8-9
2428 # rnd_0: 0 - 11
2429 rorq $23, %rax
2430 movq %r8, %rdx
2431 movq %r13, %rcx
2432 addq 64(%rsp), %r15
2433 xorq %r14, %rcx
2434 xorq %r12, %rax
2435 andq %r12, %rcx
2436 rorq $4, %rax
2437 xorq %r14, %rcx
2438 xorq %r12, %rax
2439 addq %rcx, %r15
2440 rorq $14, %rax
2441 xorq %r9, %rdx
2442 addq %rax, %r15
2443 movq %r8, %rcx
2444 andq %rdx, %rbx
2445 rorq $5, %rcx
2446 xorq %r8, %rcx
2447 xorq %r9, %rbx
2448 rorq $6, %rcx
2449 addq %r15, %r11
2450 xorq %r8, %rcx
2451 addq %rbx, %r15
2452 rorq $28, %rcx
2453 movq %r11, %rax
2454 addq %rcx, %r15
2455 # rnd_1: 0 - 11
2456 rorq $23, %rax
2457 movq %r15, %rbx
2458 movq %r12, %rcx
2459 addq 72(%rsp), %r14
2460 xorq %r13, %rcx
2461 xorq %r11, %rax
2462 andq %r11, %rcx
2463 rorq $4, %rax
2464 xorq %r13, %rcx
2465 xorq %r11, %rax
2466 addq %rcx, %r14
2467 rorq $14, %rax
2468 xorq %r8, %rbx
2469 addq %rax, %r14
2470 movq %r15, %rcx
2471 andq %rbx, %rdx
2472 rorq $5, %rcx
2473 xorq %r15, %rcx
2474 xorq %r8, %rdx
2475 rorq $6, %rcx
2476 addq %r14, %r10
2477 xorq %r15, %rcx
2478 addq %rdx, %r14
2479 rorq $28, %rcx
2480 movq %r10, %rax
2481 addq %rcx, %r14
2482 # rnd_all_2: 10-11
2483 # rnd_0: 0 - 11
2484 rorq $23, %rax
2485 movq %r14, %rdx
2486 movq %r11, %rcx
2487 addq 80(%rsp), %r13
2488 xorq %r12, %rcx
2489 xorq %r10, %rax
2490 andq %r10, %rcx
2491 rorq $4, %rax
2492 xorq %r12, %rcx
2493 xorq %r10, %rax
2494 addq %rcx, %r13
2495 rorq $14, %rax
2496 xorq %r15, %rdx
2497 addq %rax, %r13
2498 movq %r14, %rcx
2499 andq %rdx, %rbx
2500 rorq $5, %rcx
2501 xorq %r14, %rcx
2502 xorq %r15, %rbx
2503 rorq $6, %rcx
2504 addq %r13, %r9
2505 xorq %r14, %rcx
2506 addq %rbx, %r13
2507 rorq $28, %rcx
2508 movq %r9, %rax
2509 addq %rcx, %r13
2510 # rnd_1: 0 - 11
2511 rorq $23, %rax
2512 movq %r13, %rbx
2513 movq %r10, %rcx
2514 addq 88(%rsp), %r12
2515 xorq %r11, %rcx
2516 xorq %r9, %rax
2517 andq %r9, %rcx
2518 rorq $4, %rax
2519 xorq %r11, %rcx
2520 xorq %r9, %rax
2521 addq %rcx, %r12
2522 rorq $14, %rax
2523 xorq %r14, %rbx
2524 addq %rax, %r12
2525 movq %r13, %rcx
2526 andq %rbx, %rdx
2527 rorq $5, %rcx
2528 xorq %r13, %rcx
2529 xorq %r14, %rdx
2530 rorq $6, %rcx
2531 addq %r12, %r8
2532 xorq %r13, %rcx
2533 addq %rdx, %r12
2534 rorq $28, %rcx
2535 movq %r8, %rax
2536 addq %rcx, %r12
2537 # rnd_all_2: 12-13
2538 # rnd_0: 0 - 11
2539 rorq $23, %rax
2540 movq %r12, %rdx
2541 movq %r9, %rcx
2542 addq 96(%rsp), %r11
2543 xorq %r10, %rcx
2544 xorq %r8, %rax
2545 andq %r8, %rcx
2546 rorq $4, %rax
2547 xorq %r10, %rcx
2548 xorq %r8, %rax
2549 addq %rcx, %r11
2550 rorq $14, %rax
2551 xorq %r13, %rdx
2552 addq %rax, %r11
2553 movq %r12, %rcx
2554 andq %rdx, %rbx
2555 rorq $5, %rcx
2556 xorq %r12, %rcx
2557 xorq %r13, %rbx
2558 rorq $6, %rcx
2559 addq %r11, %r15
2560 xorq %r12, %rcx
2561 addq %rbx, %r11
2562 rorq $28, %rcx
2563 movq %r15, %rax
2564 addq %rcx, %r11
2565 # rnd_1: 0 - 11
2566 rorq $23, %rax
2567 movq %r11, %rbx
2568 movq %r8, %rcx
2569 addq 104(%rsp), %r10
2570 xorq %r9, %rcx
2571 xorq %r15, %rax
2572 andq %r15, %rcx
2573 rorq $4, %rax
2574 xorq %r9, %rcx
2575 xorq %r15, %rax
2576 addq %rcx, %r10
2577 rorq $14, %rax
2578 xorq %r12, %rbx
2579 addq %rax, %r10
2580 movq %r11, %rcx
2581 andq %rbx, %rdx
2582 rorq $5, %rcx
2583 xorq %r11, %rcx
2584 xorq %r12, %rdx
2585 rorq $6, %rcx
2586 addq %r10, %r14
2587 xorq %r11, %rcx
2588 addq %rdx, %r10
2589 rorq $28, %rcx
2590 movq %r14, %rax
2591 addq %rcx, %r10
2592 # rnd_all_2: 14-15
2593 # rnd_0: 0 - 11
2594 rorq $23, %rax
2595 movq %r10, %rdx
2596 movq %r15, %rcx
2597 addq 112(%rsp), %r9
2598 xorq %r8, %rcx
2599 xorq %r14, %rax
2600 andq %r14, %rcx
2601 rorq $4, %rax
2602 xorq %r8, %rcx
2603 xorq %r14, %rax
2604 addq %rcx, %r9
2605 rorq $14, %rax
2606 xorq %r11, %rdx
2607 addq %rax, %r9
2608 movq %r10, %rcx
2609 andq %rdx, %rbx
2610 rorq $5, %rcx
2611 xorq %r10, %rcx
2612 xorq %r11, %rbx
2613 rorq $6, %rcx
2614 addq %r9, %r13
2615 xorq %r10, %rcx
2616 addq %rbx, %r9
2617 rorq $28, %rcx
2618 movq %r13, %rax
2619 addq %rcx, %r9
2620 # rnd_1: 0 - 11
2621 rorq $23, %rax
2622 movq %r9, %rbx
2623 movq %r14, %rcx
2624 addq 120(%rsp), %r8
2625 xorq %r15, %rcx
2626 xorq %r13, %rax
2627 andq %r13, %rcx
2628 rorq $4, %rax
2629 xorq %r15, %rcx
2630 xorq %r13, %rax
2631 addq %rcx, %r8
2632 rorq $14, %rax
2633 xorq %r10, %rbx
2634 addq %rax, %r8
2635 movq %r9, %rcx
2636 andq %rbx, %rdx
2637 rorq $5, %rcx
2638 xorq %r9, %rcx
2639 xorq %r10, %rdx
2640 rorq $6, %rcx
2641 addq %r8, %r12
2642 xorq %r9, %rcx
2643 addq %rdx, %r8
2644 rorq $28, %rcx
2645 movq %r12, %rax
2646 addq %rcx, %r8
2647 addq (%rdi), %r8
2648 addq 8(%rdi), %r9
2649 addq 16(%rdi), %r10
2650 addq 24(%rdi), %r11
2651 addq 32(%rdi), %r12
2652 addq 40(%rdi), %r13
2653 addq 48(%rdi), %r14
2654 addq 56(%rdi), %r15
2655 leaq L_avx1_sha512_k(%rip), %rdx
2656 addq $0x80, %rsi
2657 subl $0x80, %ebp
2658 movq %r8, (%rdi)
2659 movq %r9, 8(%rdi)
2660 movq %r10, 16(%rdi)
2661 movq %r11, 24(%rdi)
2662 movq %r12, 32(%rdi)
2663 movq %r13, 40(%rdi)
2664 movq %r14, 48(%rdi)
2665 movq %r15, 56(%rdi)
2666 jnz L_sha512_len_avx1_begin
2667 xorq %rax, %rax
2668 addq $0x90, %rsp
2669 popq %rbp
2670 popq %r15
2671 popq %r14
2672 popq %r13
2673 popq %r12
2674 popq %rbx
2675 repz retq
2676#ifndef __APPLE__
2677.size Transform_Sha512_AVX1_Len,.-Transform_Sha512_AVX1_Len
2678#endif /* __APPLE__ */
2679#ifndef __APPLE__
2680.data
2681#else
2682.section __DATA,__data
2683#endif /* __APPLE__ */
2684#ifndef __APPLE__
2685.align 32
2686#else
2687.p2align 5
2688#endif /* __APPLE__ */
2689L_avx1_rorx_sha512_k:
2690.quad 0x428a2f98d728ae22,0x7137449123ef65cd
2691.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
2692.quad 0x3956c25bf348b538,0x59f111f1b605d019
2693.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
2694.quad 0xd807aa98a3030242,0x12835b0145706fbe
2695.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
2696.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
2697.quad 0x9bdc06a725c71235,0xc19bf174cf692694
2698.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
2699.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
2700.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
2701.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
2702.quad 0x983e5152ee66dfab,0xa831c66d2db43210
2703.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
2704.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
2705.quad 0x06ca6351e003826f,0x142929670a0e6e70
2706.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
2707.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
2708.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
2709.quad 0x81c2c92e47edaee6,0x92722c851482353b
2710.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
2711.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
2712.quad 0xd192e819d6ef5218,0xd69906245565a910
2713.quad 0xf40e35855771202a,0x106aa07032bbd1b8
2714.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
2715.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
2716.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
2717.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
2718.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
2719.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
2720.quad 0x90befffa23631e28,0xa4506cebde82bde9
2721.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
2722.quad 0xca273eceea26619c,0xd186b8c721c0c207
2723.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
2724.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
2725.quad 0x113f9804bef90dae,0x1b710b35131c471b
2726.quad 0x28db77f523047d84,0x32caab7b40c72493
2727.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
2728.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
2729.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
2730#ifndef __APPLE__
2731.data
2732#else
2733.section __DATA,__data
2734#endif /* __APPLE__ */
2735#ifndef __APPLE__
2736.align 16
2737#else
2738.p2align 4
2739#endif /* __APPLE__ */
2740L_avx1_rorx_sha512_flip_mask:
2741.quad 0x0001020304050607,0x08090a0b0c0d0e0f
2742#ifndef __APPLE__
2743.text
2744.globl Transform_Sha512_AVX1_RORX
2745.type Transform_Sha512_AVX1_RORX,@function
2746.align 16
2747Transform_Sha512_AVX1_RORX:
2748#else
2749.section __TEXT,__text
2750.globl _Transform_Sha512_AVX1_RORX
2751.p2align 4
2752_Transform_Sha512_AVX1_RORX:
2753#endif /* __APPLE__ */
2754 pushq %rbx
2755 pushq %r12
2756 pushq %r13
2757 pushq %r14
2758 pushq %r15
2759 subq $0x88, %rsp
2760 leaq 64(%rdi), %rax
2761 vmovdqa L_avx1_rorx_sha512_flip_mask(%rip), %xmm14
2762 movq (%rdi), %r8
2763 movq 8(%rdi), %r9
2764 movq 16(%rdi), %r10
2765 movq 24(%rdi), %r11
2766 movq 32(%rdi), %r12
2767 movq 40(%rdi), %r13
2768 movq 48(%rdi), %r14
2769 movq 56(%rdi), %r15
2770 vmovdqu (%rax), %xmm0
2771 vmovdqu 16(%rax), %xmm1
2772 vpshufb %xmm14, %xmm0, %xmm0
2773 vpshufb %xmm14, %xmm1, %xmm1
2774 vmovdqu 32(%rax), %xmm2
2775 vmovdqu 48(%rax), %xmm3
2776 vpshufb %xmm14, %xmm2, %xmm2
2777 vpshufb %xmm14, %xmm3, %xmm3
2778 vmovdqu 64(%rax), %xmm4
2779 vmovdqu 80(%rax), %xmm5
2780 vpshufb %xmm14, %xmm4, %xmm4
2781 vpshufb %xmm14, %xmm5, %xmm5
2782 vmovdqu 96(%rax), %xmm6
2783 vmovdqu 112(%rax), %xmm7
2784 vpshufb %xmm14, %xmm6, %xmm6
2785 vpshufb %xmm14, %xmm7, %xmm7
2786 movl $4, 128(%rsp)
2787 leaq L_avx1_rorx_sha512_k(%rip), %rsi
2788 movq %r9, %rbx
2789 xorq %rdx, %rdx
2790 xorq %r10, %rbx
2791 vpaddq (%rsi), %xmm0, %xmm8
2792 vpaddq 16(%rsi), %xmm1, %xmm9
2793 vmovdqu %xmm8, (%rsp)
2794 vmovdqu %xmm9, 16(%rsp)
2795 vpaddq 32(%rsi), %xmm2, %xmm8
2796 vpaddq 48(%rsi), %xmm3, %xmm9
2797 vmovdqu %xmm8, 32(%rsp)
2798 vmovdqu %xmm9, 48(%rsp)
2799 vpaddq 64(%rsi), %xmm4, %xmm8
2800 vpaddq 80(%rsi), %xmm5, %xmm9
2801 vmovdqu %xmm8, 64(%rsp)
2802 vmovdqu %xmm9, 80(%rsp)
2803 vpaddq 96(%rsi), %xmm6, %xmm8
2804 vpaddq 112(%rsi), %xmm7, %xmm9
2805 vmovdqu %xmm8, 96(%rsp)
2806 vmovdqu %xmm9, 112(%rsp)
2807 # Start of 16 rounds
2808L_transform_sha512_avx1_rorx_start:
2809 addq $0x80, %rsi
2810 # msg_sched: 0-1
2811 # rnd_0: 0 - 0
2812 rorxq $14, %r12, %rax
2813 rorxq $18, %r12, %rcx
2814 addq %rdx, %r8
2815 vpalignr $8, %xmm0, %xmm1, %xmm12
2816 vpalignr $8, %xmm4, %xmm5, %xmm13
2817 # rnd_0: 1 - 1
2818 addq (%rsp), %r15
2819 movq %r13, %rdx
2820 xorq %rax, %rcx
2821 vpsrlq $0x01, %xmm12, %xmm8
2822 vpsllq $63, %xmm12, %xmm9
2823 # rnd_0: 2 - 2
2824 xorq %r14, %rdx
2825 rorxq $41, %r12, %rax
2826 xorq %rcx, %rax
2827 vpsrlq $8, %xmm12, %xmm10
2828 vpsllq $56, %xmm12, %xmm11
2829 # rnd_0: 3 - 3
2830 andq %r12, %rdx
2831 addq %rax, %r15
2832 rorxq $28, %r8, %rax
2833 vpor %xmm9, %xmm8, %xmm8
2834 vpor %xmm11, %xmm10, %xmm10
2835 # rnd_0: 4 - 4
2836 rorxq $34, %r8, %rcx
2837 xorq %r14, %rdx
2838 xorq %rax, %rcx
2839 vpsrlq $7, %xmm12, %xmm11
2840 vpxor %xmm10, %xmm8, %xmm8
2841 # rnd_0: 5 - 5
2842 rorxq $39, %r8, %rax
2843 addq %rdx, %r15
2844 xorq %rcx, %rax
2845 vpxor %xmm11, %xmm8, %xmm8
2846 vpaddq %xmm0, %xmm13, %xmm0
2847 # rnd_0: 6 - 7
2848 movq %r9, %rdx
2849 addq %r15, %r11
2850 xorq %r8, %rdx
2851 andq %rdx, %rbx
2852 addq %rax, %r15
2853 xorq %r9, %rbx
2854 vpaddq %xmm0, %xmm8, %xmm0
2855 # rnd_1: 0 - 0
2856 rorxq $14, %r11, %rax
2857 rorxq $18, %r11, %rcx
2858 addq %rbx, %r15
2859 vpsrlq $19, %xmm7, %xmm8
2860 vpsllq $45, %xmm7, %xmm9
2861 # rnd_1: 1 - 1
2862 addq 8(%rsp), %r14
2863 movq %r12, %rbx
2864 xorq %rax, %rcx
2865 vpsrlq $61, %xmm7, %xmm10
2866 vpsllq $3, %xmm7, %xmm11
2867 # rnd_1: 2 - 2
2868 xorq %r13, %rbx
2869 rorxq $41, %r11, %rax
2870 xorq %rcx, %rax
2871 vpor %xmm9, %xmm8, %xmm8
2872 vpor %xmm11, %xmm10, %xmm10
2873 # rnd_1: 3 - 4
2874 andq %r11, %rbx
2875 addq %rax, %r14
2876 rorxq $28, %r15, %rax
2877 rorxq $34, %r15, %rcx
2878 xorq %r13, %rbx
2879 xorq %rax, %rcx
2880 vpxor %xmm10, %xmm8, %xmm8
2881 vpsrlq $6, %xmm7, %xmm11
2882 # rnd_1: 5 - 6
2883 rorxq $39, %r15, %rax
2884 addq %rbx, %r14
2885 xorq %rcx, %rax
2886 movq %r8, %rbx
2887 addq %r14, %r10
2888 xorq %r15, %rbx
2889 vpxor %xmm11, %xmm8, %xmm8
2890 # rnd_1: 7 - 7
2891 andq %rbx, %rdx
2892 addq %rax, %r14
2893 xorq %r8, %rdx
2894 vpaddq %xmm0, %xmm8, %xmm0
2895 # msg_sched done: 0-1
2896 # msg_sched: 2-3
2897 # rnd_0: 0 - 0
2898 rorxq $14, %r10, %rax
2899 rorxq $18, %r10, %rcx
2900 addq %rdx, %r14
2901 vpalignr $8, %xmm1, %xmm2, %xmm12
2902 vpalignr $8, %xmm5, %xmm6, %xmm13
2903 # rnd_0: 1 - 1
2904 addq 16(%rsp), %r13
2905 movq %r11, %rdx
2906 xorq %rax, %rcx
2907 vpsrlq $0x01, %xmm12, %xmm8
2908 vpsllq $63, %xmm12, %xmm9
2909 # rnd_0: 2 - 2
2910 xorq %r12, %rdx
2911 rorxq $41, %r10, %rax
2912 xorq %rcx, %rax
2913 vpsrlq $8, %xmm12, %xmm10
2914 vpsllq $56, %xmm12, %xmm11
2915 # rnd_0: 3 - 3
2916 andq %r10, %rdx
2917 addq %rax, %r13
2918 rorxq $28, %r14, %rax
2919 vpor %xmm9, %xmm8, %xmm8
2920 vpor %xmm11, %xmm10, %xmm10
2921 # rnd_0: 4 - 4
2922 rorxq $34, %r14, %rcx
2923 xorq %r12, %rdx
2924 xorq %rax, %rcx
2925 vpsrlq $7, %xmm12, %xmm11
2926 vpxor %xmm10, %xmm8, %xmm8
2927 # rnd_0: 5 - 5
2928 rorxq $39, %r14, %rax
2929 addq %rdx, %r13
2930 xorq %rcx, %rax
2931 vpxor %xmm11, %xmm8, %xmm8
2932 vpaddq %xmm1, %xmm13, %xmm1
2933 # rnd_0: 6 - 7
2934 movq %r15, %rdx
2935 addq %r13, %r9
2936 xorq %r14, %rdx
2937 andq %rdx, %rbx
2938 addq %rax, %r13
2939 xorq %r15, %rbx
2940 vpaddq %xmm1, %xmm8, %xmm1
2941 # rnd_1: 0 - 0
2942 rorxq $14, %r9, %rax
2943 rorxq $18, %r9, %rcx
2944 addq %rbx, %r13
2945 vpsrlq $19, %xmm0, %xmm8
2946 vpsllq $45, %xmm0, %xmm9
2947 # rnd_1: 1 - 1
2948 addq 24(%rsp), %r12
2949 movq %r10, %rbx
2950 xorq %rax, %rcx
2951 vpsrlq $61, %xmm0, %xmm10
2952 vpsllq $3, %xmm0, %xmm11
2953 # rnd_1: 2 - 2
2954 xorq %r11, %rbx
2955 rorxq $41, %r9, %rax
2956 xorq %rcx, %rax
2957 vpor %xmm9, %xmm8, %xmm8
2958 vpor %xmm11, %xmm10, %xmm10
2959 # rnd_1: 3 - 4
2960 andq %r9, %rbx
2961 addq %rax, %r12
2962 rorxq $28, %r13, %rax
2963 rorxq $34, %r13, %rcx
2964 xorq %r11, %rbx
2965 xorq %rax, %rcx
2966 vpxor %xmm10, %xmm8, %xmm8
2967 vpsrlq $6, %xmm0, %xmm11
2968 # rnd_1: 5 - 6
2969 rorxq $39, %r13, %rax
2970 addq %rbx, %r12
2971 xorq %rcx, %rax
2972 movq %r14, %rbx
2973 addq %r12, %r8
2974 xorq %r13, %rbx
2975 vpxor %xmm11, %xmm8, %xmm8
2976 # rnd_1: 7 - 7
2977 andq %rbx, %rdx
2978 addq %rax, %r12
2979 xorq %r14, %rdx
2980 vpaddq %xmm1, %xmm8, %xmm1
2981 # msg_sched done: 2-3
2982 # msg_sched: 4-5
2983 # rnd_0: 0 - 0
2984 rorxq $14, %r8, %rax
2985 rorxq $18, %r8, %rcx
2986 addq %rdx, %r12
2987 vpalignr $8, %xmm2, %xmm3, %xmm12
2988 vpalignr $8, %xmm6, %xmm7, %xmm13
2989 # rnd_0: 1 - 1
2990 addq 32(%rsp), %r11
2991 movq %r9, %rdx
2992 xorq %rax, %rcx
2993 vpsrlq $0x01, %xmm12, %xmm8
2994 vpsllq $63, %xmm12, %xmm9
2995 # rnd_0: 2 - 2
2996 xorq %r10, %rdx
2997 rorxq $41, %r8, %rax
2998 xorq %rcx, %rax
2999 vpsrlq $8, %xmm12, %xmm10
3000 vpsllq $56, %xmm12, %xmm11
3001 # rnd_0: 3 - 3
3002 andq %r8, %rdx
3003 addq %rax, %r11
3004 rorxq $28, %r12, %rax
3005 vpor %xmm9, %xmm8, %xmm8
3006 vpor %xmm11, %xmm10, %xmm10
3007 # rnd_0: 4 - 4
3008 rorxq $34, %r12, %rcx
3009 xorq %r10, %rdx
3010 xorq %rax, %rcx
3011 vpsrlq $7, %xmm12, %xmm11
3012 vpxor %xmm10, %xmm8, %xmm8
3013 # rnd_0: 5 - 5
3014 rorxq $39, %r12, %rax
3015 addq %rdx, %r11
3016 xorq %rcx, %rax
3017 vpxor %xmm11, %xmm8, %xmm8
3018 vpaddq %xmm2, %xmm13, %xmm2
3019 # rnd_0: 6 - 7
3020 movq %r13, %rdx
3021 addq %r11, %r15
3022 xorq %r12, %rdx
3023 andq %rdx, %rbx
3024 addq %rax, %r11
3025 xorq %r13, %rbx
3026 vpaddq %xmm2, %xmm8, %xmm2
3027 # rnd_1: 0 - 0
3028 rorxq $14, %r15, %rax
3029 rorxq $18, %r15, %rcx
3030 addq %rbx, %r11
3031 vpsrlq $19, %xmm1, %xmm8
3032 vpsllq $45, %xmm1, %xmm9
3033 # rnd_1: 1 - 1
3034 addq 40(%rsp), %r10
3035 movq %r8, %rbx
3036 xorq %rax, %rcx
3037 vpsrlq $61, %xmm1, %xmm10
3038 vpsllq $3, %xmm1, %xmm11
3039 # rnd_1: 2 - 2
3040 xorq %r9, %rbx
3041 rorxq $41, %r15, %rax
3042 xorq %rcx, %rax
3043 vpor %xmm9, %xmm8, %xmm8
3044 vpor %xmm11, %xmm10, %xmm10
3045 # rnd_1: 3 - 4
3046 andq %r15, %rbx
3047 addq %rax, %r10
3048 rorxq $28, %r11, %rax
3049 rorxq $34, %r11, %rcx
3050 xorq %r9, %rbx
3051 xorq %rax, %rcx
3052 vpxor %xmm10, %xmm8, %xmm8
3053 vpsrlq $6, %xmm1, %xmm11
3054 # rnd_1: 5 - 6
3055 rorxq $39, %r11, %rax
3056 addq %rbx, %r10
3057 xorq %rcx, %rax
3058 movq %r12, %rbx
3059 addq %r10, %r14
3060 xorq %r11, %rbx
3061 vpxor %xmm11, %xmm8, %xmm8
3062 # rnd_1: 7 - 7
3063 andq %rbx, %rdx
3064 addq %rax, %r10
3065 xorq %r12, %rdx
3066 vpaddq %xmm2, %xmm8, %xmm2
3067 # msg_sched done: 4-5
3068 # msg_sched: 6-7
3069 # rnd_0: 0 - 0
3070 rorxq $14, %r14, %rax
3071 rorxq $18, %r14, %rcx
3072 addq %rdx, %r10
3073 vpalignr $8, %xmm3, %xmm4, %xmm12
3074 vpalignr $8, %xmm7, %xmm0, %xmm13
3075 # rnd_0: 1 - 1
3076 addq 48(%rsp), %r9
3077 movq %r15, %rdx
3078 xorq %rax, %rcx
3079 vpsrlq $0x01, %xmm12, %xmm8
3080 vpsllq $63, %xmm12, %xmm9
3081 # rnd_0: 2 - 2
3082 xorq %r8, %rdx
3083 rorxq $41, %r14, %rax
3084 xorq %rcx, %rax
3085 vpsrlq $8, %xmm12, %xmm10
3086 vpsllq $56, %xmm12, %xmm11
3087 # rnd_0: 3 - 3
3088 andq %r14, %rdx
3089 addq %rax, %r9
3090 rorxq $28, %r10, %rax
3091 vpor %xmm9, %xmm8, %xmm8
3092 vpor %xmm11, %xmm10, %xmm10
3093 # rnd_0: 4 - 4
3094 rorxq $34, %r10, %rcx
3095 xorq %r8, %rdx
3096 xorq %rax, %rcx
3097 vpsrlq $7, %xmm12, %xmm11
3098 vpxor %xmm10, %xmm8, %xmm8
3099 # rnd_0: 5 - 5
3100 rorxq $39, %r10, %rax
3101 addq %rdx, %r9
3102 xorq %rcx, %rax
3103 vpxor %xmm11, %xmm8, %xmm8
3104 vpaddq %xmm3, %xmm13, %xmm3
3105 # rnd_0: 6 - 7
3106 movq %r11, %rdx
3107 addq %r9, %r13
3108 xorq %r10, %rdx
3109 andq %rdx, %rbx
3110 addq %rax, %r9
3111 xorq %r11, %rbx
3112 vpaddq %xmm3, %xmm8, %xmm3
3113 # rnd_1: 0 - 0
3114 rorxq $14, %r13, %rax
3115 rorxq $18, %r13, %rcx
3116 addq %rbx, %r9
3117 vpsrlq $19, %xmm2, %xmm8
3118 vpsllq $45, %xmm2, %xmm9
3119 # rnd_1: 1 - 1
3120 addq 56(%rsp), %r8
3121 movq %r14, %rbx
3122 xorq %rax, %rcx
3123 vpsrlq $61, %xmm2, %xmm10
3124 vpsllq $3, %xmm2, %xmm11
3125 # rnd_1: 2 - 2
3126 xorq %r15, %rbx
3127 rorxq $41, %r13, %rax
3128 xorq %rcx, %rax
3129 vpor %xmm9, %xmm8, %xmm8
3130 vpor %xmm11, %xmm10, %xmm10
3131 # rnd_1: 3 - 4
3132 andq %r13, %rbx
3133 addq %rax, %r8
3134 rorxq $28, %r9, %rax
3135 rorxq $34, %r9, %rcx
3136 xorq %r15, %rbx
3137 xorq %rax, %rcx
3138 vpxor %xmm10, %xmm8, %xmm8
3139 vpsrlq $6, %xmm2, %xmm11
3140 # rnd_1: 5 - 6
3141 rorxq $39, %r9, %rax
3142 addq %rbx, %r8
3143 xorq %rcx, %rax
3144 movq %r10, %rbx
3145 addq %r8, %r12
3146 xorq %r9, %rbx
3147 vpxor %xmm11, %xmm8, %xmm8
3148 # rnd_1: 7 - 7
3149 andq %rbx, %rdx
3150 addq %rax, %r8
3151 xorq %r10, %rdx
3152 vpaddq %xmm3, %xmm8, %xmm3
3153 # msg_sched done: 6-7
3154 # msg_sched: 8-9
3155 # rnd_0: 0 - 0
3156 rorxq $14, %r12, %rax
3157 rorxq $18, %r12, %rcx
3158 addq %rdx, %r8
3159 vpalignr $8, %xmm4, %xmm5, %xmm12
3160 vpalignr $8, %xmm0, %xmm1, %xmm13
3161 # rnd_0: 1 - 1
3162 addq 64(%rsp), %r15
3163 movq %r13, %rdx
3164 xorq %rax, %rcx
3165 vpsrlq $0x01, %xmm12, %xmm8
3166 vpsllq $63, %xmm12, %xmm9
3167 # rnd_0: 2 - 2
3168 xorq %r14, %rdx
3169 rorxq $41, %r12, %rax
3170 xorq %rcx, %rax
3171 vpsrlq $8, %xmm12, %xmm10
3172 vpsllq $56, %xmm12, %xmm11
3173 # rnd_0: 3 - 3
3174 andq %r12, %rdx
3175 addq %rax, %r15
3176 rorxq $28, %r8, %rax
3177 vpor %xmm9, %xmm8, %xmm8
3178 vpor %xmm11, %xmm10, %xmm10
3179 # rnd_0: 4 - 4
3180 rorxq $34, %r8, %rcx
3181 xorq %r14, %rdx
3182 xorq %rax, %rcx
3183 vpsrlq $7, %xmm12, %xmm11
3184 vpxor %xmm10, %xmm8, %xmm8
3185 # rnd_0: 5 - 5
3186 rorxq $39, %r8, %rax
3187 addq %rdx, %r15
3188 xorq %rcx, %rax
3189 vpxor %xmm11, %xmm8, %xmm8
3190 vpaddq %xmm4, %xmm13, %xmm4
3191 # rnd_0: 6 - 7
3192 movq %r9, %rdx
3193 addq %r15, %r11
3194 xorq %r8, %rdx
3195 andq %rdx, %rbx
3196 addq %rax, %r15
3197 xorq %r9, %rbx
3198 vpaddq %xmm4, %xmm8, %xmm4
3199 # rnd_1: 0 - 0
3200 rorxq $14, %r11, %rax
3201 rorxq $18, %r11, %rcx
3202 addq %rbx, %r15
3203 vpsrlq $19, %xmm3, %xmm8
3204 vpsllq $45, %xmm3, %xmm9
3205 # rnd_1: 1 - 1
3206 addq 72(%rsp), %r14
3207 movq %r12, %rbx
3208 xorq %rax, %rcx
3209 vpsrlq $61, %xmm3, %xmm10
3210 vpsllq $3, %xmm3, %xmm11
3211 # rnd_1: 2 - 2
3212 xorq %r13, %rbx
3213 rorxq $41, %r11, %rax
3214 xorq %rcx, %rax
3215 vpor %xmm9, %xmm8, %xmm8
3216 vpor %xmm11, %xmm10, %xmm10
3217 # rnd_1: 3 - 4
3218 andq %r11, %rbx
3219 addq %rax, %r14
3220 rorxq $28, %r15, %rax
3221 rorxq $34, %r15, %rcx
3222 xorq %r13, %rbx
3223 xorq %rax, %rcx
3224 vpxor %xmm10, %xmm8, %xmm8
3225 vpsrlq $6, %xmm3, %xmm11
3226 # rnd_1: 5 - 6
3227 rorxq $39, %r15, %rax
3228 addq %rbx, %r14
3229 xorq %rcx, %rax
3230 movq %r8, %rbx
3231 addq %r14, %r10
3232 xorq %r15, %rbx
3233 vpxor %xmm11, %xmm8, %xmm8
3234 # rnd_1: 7 - 7
3235 andq %rbx, %rdx
3236 addq %rax, %r14
3237 xorq %r8, %rdx
3238 vpaddq %xmm4, %xmm8, %xmm4
3239 # msg_sched done: 8-9
3240 # msg_sched: 10-11
3241 # rnd_0: 0 - 0
3242 rorxq $14, %r10, %rax
3243 rorxq $18, %r10, %rcx
3244 addq %rdx, %r14
3245 vpalignr $8, %xmm5, %xmm6, %xmm12
3246 vpalignr $8, %xmm1, %xmm2, %xmm13
3247 # rnd_0: 1 - 1
3248 addq 80(%rsp), %r13
3249 movq %r11, %rdx
3250 xorq %rax, %rcx
3251 vpsrlq $0x01, %xmm12, %xmm8
3252 vpsllq $63, %xmm12, %xmm9
3253 # rnd_0: 2 - 2
3254 xorq %r12, %rdx
3255 rorxq $41, %r10, %rax
3256 xorq %rcx, %rax
3257 vpsrlq $8, %xmm12, %xmm10
3258 vpsllq $56, %xmm12, %xmm11
3259 # rnd_0: 3 - 3
3260 andq %r10, %rdx
3261 addq %rax, %r13
3262 rorxq $28, %r14, %rax
3263 vpor %xmm9, %xmm8, %xmm8
3264 vpor %xmm11, %xmm10, %xmm10
3265 # rnd_0: 4 - 4
3266 rorxq $34, %r14, %rcx
3267 xorq %r12, %rdx
3268 xorq %rax, %rcx
3269 vpsrlq $7, %xmm12, %xmm11
3270 vpxor %xmm10, %xmm8, %xmm8
3271 # rnd_0: 5 - 5
3272 rorxq $39, %r14, %rax
3273 addq %rdx, %r13
3274 xorq %rcx, %rax
3275 vpxor %xmm11, %xmm8, %xmm8
3276 vpaddq %xmm5, %xmm13, %xmm5
3277 # rnd_0: 6 - 7
3278 movq %r15, %rdx
3279 addq %r13, %r9
3280 xorq %r14, %rdx
3281 andq %rdx, %rbx
3282 addq %rax, %r13
3283 xorq %r15, %rbx
3284 vpaddq %xmm5, %xmm8, %xmm5
3285 # rnd_1: 0 - 0
3286 rorxq $14, %r9, %rax
3287 rorxq $18, %r9, %rcx
3288 addq %rbx, %r13
3289 vpsrlq $19, %xmm4, %xmm8
3290 vpsllq $45, %xmm4, %xmm9
3291 # rnd_1: 1 - 1
3292 addq 88(%rsp), %r12
3293 movq %r10, %rbx
3294 xorq %rax, %rcx
3295 vpsrlq $61, %xmm4, %xmm10
3296 vpsllq $3, %xmm4, %xmm11
3297 # rnd_1: 2 - 2
3298 xorq %r11, %rbx
3299 rorxq $41, %r9, %rax
3300 xorq %rcx, %rax
3301 vpor %xmm9, %xmm8, %xmm8
3302 vpor %xmm11, %xmm10, %xmm10
3303 # rnd_1: 3 - 4
3304 andq %r9, %rbx
3305 addq %rax, %r12
3306 rorxq $28, %r13, %rax
3307 rorxq $34, %r13, %rcx
3308 xorq %r11, %rbx
3309 xorq %rax, %rcx
3310 vpxor %xmm10, %xmm8, %xmm8
3311 vpsrlq $6, %xmm4, %xmm11
3312 # rnd_1: 5 - 6
3313 rorxq $39, %r13, %rax
3314 addq %rbx, %r12
3315 xorq %rcx, %rax
3316 movq %r14, %rbx
3317 addq %r12, %r8
3318 xorq %r13, %rbx
3319 vpxor %xmm11, %xmm8, %xmm8
3320 # rnd_1: 7 - 7
3321 andq %rbx, %rdx
3322 addq %rax, %r12
3323 xorq %r14, %rdx
3324 vpaddq %xmm5, %xmm8, %xmm5
3325 # msg_sched done: 10-11
3326 # msg_sched: 12-13
3327 # rnd_0: 0 - 0
3328 rorxq $14, %r8, %rax
3329 rorxq $18, %r8, %rcx
3330 addq %rdx, %r12
3331 vpalignr $8, %xmm6, %xmm7, %xmm12
3332 vpalignr $8, %xmm2, %xmm3, %xmm13
3333 # rnd_0: 1 - 1
3334 addq 96(%rsp), %r11
3335 movq %r9, %rdx
3336 xorq %rax, %rcx
3337 vpsrlq $0x01, %xmm12, %xmm8
3338 vpsllq $63, %xmm12, %xmm9
3339 # rnd_0: 2 - 2
3340 xorq %r10, %rdx
3341 rorxq $41, %r8, %rax
3342 xorq %rcx, %rax
3343 vpsrlq $8, %xmm12, %xmm10
3344 vpsllq $56, %xmm12, %xmm11
3345 # rnd_0: 3 - 3
3346 andq %r8, %rdx
3347 addq %rax, %r11
3348 rorxq $28, %r12, %rax
3349 vpor %xmm9, %xmm8, %xmm8
3350 vpor %xmm11, %xmm10, %xmm10
3351 # rnd_0: 4 - 4
3352 rorxq $34, %r12, %rcx
3353 xorq %r10, %rdx
3354 xorq %rax, %rcx
3355 vpsrlq $7, %xmm12, %xmm11
3356 vpxor %xmm10, %xmm8, %xmm8
3357 # rnd_0: 5 - 5
3358 rorxq $39, %r12, %rax
3359 addq %rdx, %r11
3360 xorq %rcx, %rax
3361 vpxor %xmm11, %xmm8, %xmm8
3362 vpaddq %xmm6, %xmm13, %xmm6
3363 # rnd_0: 6 - 7
3364 movq %r13, %rdx
3365 addq %r11, %r15
3366 xorq %r12, %rdx
3367 andq %rdx, %rbx
3368 addq %rax, %r11
3369 xorq %r13, %rbx
3370 vpaddq %xmm6, %xmm8, %xmm6
3371 # rnd_1: 0 - 0
3372 rorxq $14, %r15, %rax
3373 rorxq $18, %r15, %rcx
3374 addq %rbx, %r11
3375 vpsrlq $19, %xmm5, %xmm8
3376 vpsllq $45, %xmm5, %xmm9
3377 # rnd_1: 1 - 1
3378 addq 104(%rsp), %r10
3379 movq %r8, %rbx
3380 xorq %rax, %rcx
3381 vpsrlq $61, %xmm5, %xmm10
3382 vpsllq $3, %xmm5, %xmm11
3383 # rnd_1: 2 - 2
3384 xorq %r9, %rbx
3385 rorxq $41, %r15, %rax
3386 xorq %rcx, %rax
3387 vpor %xmm9, %xmm8, %xmm8
3388 vpor %xmm11, %xmm10, %xmm10
3389 # rnd_1: 3 - 4
3390 andq %r15, %rbx
3391 addq %rax, %r10
3392 rorxq $28, %r11, %rax
3393 rorxq $34, %r11, %rcx
3394 xorq %r9, %rbx
3395 xorq %rax, %rcx
3396 vpxor %xmm10, %xmm8, %xmm8
3397 vpsrlq $6, %xmm5, %xmm11
3398 # rnd_1: 5 - 6
3399 rorxq $39, %r11, %rax
3400 addq %rbx, %r10
3401 xorq %rcx, %rax
3402 movq %r12, %rbx
3403 addq %r10, %r14
3404 xorq %r11, %rbx
3405 vpxor %xmm11, %xmm8, %xmm8
3406 # rnd_1: 7 - 7
3407 andq %rbx, %rdx
3408 addq %rax, %r10
3409 xorq %r12, %rdx
3410 vpaddq %xmm6, %xmm8, %xmm6
3411 # msg_sched done: 12-13
3412 # msg_sched: 14-15
3413 # rnd_0: 0 - 0
3414 rorxq $14, %r14, %rax
3415 rorxq $18, %r14, %rcx
3416 addq %rdx, %r10
3417 vpalignr $8, %xmm7, %xmm0, %xmm12
3418 vpalignr $8, %xmm3, %xmm4, %xmm13
3419 # rnd_0: 1 - 1
3420 addq 112(%rsp), %r9
3421 movq %r15, %rdx
3422 xorq %rax, %rcx
3423 vpsrlq $0x01, %xmm12, %xmm8
3424 vpsllq $63, %xmm12, %xmm9
3425 # rnd_0: 2 - 2
3426 xorq %r8, %rdx
3427 rorxq $41, %r14, %rax
3428 xorq %rcx, %rax
3429 vpsrlq $8, %xmm12, %xmm10
3430 vpsllq $56, %xmm12, %xmm11
3431 # rnd_0: 3 - 3
3432 andq %r14, %rdx
3433 addq %rax, %r9
3434 rorxq $28, %r10, %rax
3435 vpor %xmm9, %xmm8, %xmm8
3436 vpor %xmm11, %xmm10, %xmm10
3437 # rnd_0: 4 - 4
3438 rorxq $34, %r10, %rcx
3439 xorq %r8, %rdx
3440 xorq %rax, %rcx
3441 vpsrlq $7, %xmm12, %xmm11
3442 vpxor %xmm10, %xmm8, %xmm8
3443 # rnd_0: 5 - 5
3444 rorxq $39, %r10, %rax
3445 addq %rdx, %r9
3446 xorq %rcx, %rax
3447 vpxor %xmm11, %xmm8, %xmm8
3448 vpaddq %xmm7, %xmm13, %xmm7
3449 # rnd_0: 6 - 7
3450 movq %r11, %rdx
3451 addq %r9, %r13
3452 xorq %r10, %rdx
3453 andq %rdx, %rbx
3454 addq %rax, %r9
3455 xorq %r11, %rbx
3456 vpaddq %xmm7, %xmm8, %xmm7
3457 # rnd_1: 0 - 0
3458 rorxq $14, %r13, %rax
3459 rorxq $18, %r13, %rcx
3460 addq %rbx, %r9
3461 vpsrlq $19, %xmm6, %xmm8
3462 vpsllq $45, %xmm6, %xmm9
3463 # rnd_1: 1 - 1
3464 addq 120(%rsp), %r8
3465 movq %r14, %rbx
3466 xorq %rax, %rcx
3467 vpsrlq $61, %xmm6, %xmm10
3468 vpsllq $3, %xmm6, %xmm11
3469 # rnd_1: 2 - 2
3470 xorq %r15, %rbx
3471 rorxq $41, %r13, %rax
3472 xorq %rcx, %rax
3473 vpor %xmm9, %xmm8, %xmm8
3474 vpor %xmm11, %xmm10, %xmm10
3475 # rnd_1: 3 - 4
3476 andq %r13, %rbx
3477 addq %rax, %r8
3478 rorxq $28, %r9, %rax
3479 rorxq $34, %r9, %rcx
3480 xorq %r15, %rbx
3481 xorq %rax, %rcx
3482 vpxor %xmm10, %xmm8, %xmm8
3483 vpsrlq $6, %xmm6, %xmm11
3484 # rnd_1: 5 - 6
3485 rorxq $39, %r9, %rax
3486 addq %rbx, %r8
3487 xorq %rcx, %rax
3488 movq %r10, %rbx
3489 addq %r8, %r12
3490 xorq %r9, %rbx
3491 vpxor %xmm11, %xmm8, %xmm8
3492 # rnd_1: 7 - 7
3493 andq %rbx, %rdx
3494 addq %rax, %r8
3495 xorq %r10, %rdx
3496 vpaddq %xmm7, %xmm8, %xmm7
3497 # msg_sched done: 14-15
3498 vpaddq (%rsi), %xmm0, %xmm8
3499 vpaddq 16(%rsi), %xmm1, %xmm9
3500 vmovdqu %xmm8, (%rsp)
3501 vmovdqu %xmm9, 16(%rsp)
3502 vpaddq 32(%rsi), %xmm2, %xmm8
3503 vpaddq 48(%rsi), %xmm3, %xmm9
3504 vmovdqu %xmm8, 32(%rsp)
3505 vmovdqu %xmm9, 48(%rsp)
3506 vpaddq 64(%rsi), %xmm4, %xmm8
3507 vpaddq 80(%rsi), %xmm5, %xmm9
3508 vmovdqu %xmm8, 64(%rsp)
3509 vmovdqu %xmm9, 80(%rsp)
3510 vpaddq 96(%rsi), %xmm6, %xmm8
3511 vpaddq 112(%rsi), %xmm7, %xmm9
3512 vmovdqu %xmm8, 96(%rsp)
3513 vmovdqu %xmm9, 112(%rsp)
3514 subl $0x01, 128(%rsp)
3515 jne L_transform_sha512_avx1_rorx_start
3516 # rnd_all_2: 0-1
3517 # rnd_0: 0 - 7
3518 rorxq $14, %r12, %rax
3519 rorxq $18, %r12, %rcx
3520 addq %rdx, %r8
3521 addq (%rsp), %r15
3522 movq %r13, %rdx
3523 xorq %rax, %rcx
3524 xorq %r14, %rdx
3525 rorxq $41, %r12, %rax
3526 xorq %rcx, %rax
3527 andq %r12, %rdx
3528 addq %rax, %r15
3529 rorxq $28, %r8, %rax
3530 rorxq $34, %r8, %rcx
3531 xorq %r14, %rdx
3532 xorq %rax, %rcx
3533 rorxq $39, %r8, %rax
3534 addq %rdx, %r15
3535 xorq %rcx, %rax
3536 movq %r9, %rdx
3537 addq %r15, %r11
3538 xorq %r8, %rdx
3539 andq %rdx, %rbx
3540 addq %rax, %r15
3541 xorq %r9, %rbx
3542 # rnd_1: 0 - 7
3543 rorxq $14, %r11, %rax
3544 rorxq $18, %r11, %rcx
3545 addq %rbx, %r15
3546 addq 8(%rsp), %r14
3547 movq %r12, %rbx
3548 xorq %rax, %rcx
3549 xorq %r13, %rbx
3550 rorxq $41, %r11, %rax
3551 xorq %rcx, %rax
3552 andq %r11, %rbx
3553 addq %rax, %r14
3554 rorxq $28, %r15, %rax
3555 rorxq $34, %r15, %rcx
3556 xorq %r13, %rbx
3557 xorq %rax, %rcx
3558 rorxq $39, %r15, %rax
3559 addq %rbx, %r14
3560 xorq %rcx, %rax
3561 movq %r8, %rbx
3562 addq %r14, %r10
3563 xorq %r15, %rbx
3564 andq %rbx, %rdx
3565 addq %rax, %r14
3566 xorq %r8, %rdx
3567 # rnd_all_2: 2-3
3568 # rnd_0: 0 - 7
3569 rorxq $14, %r10, %rax
3570 rorxq $18, %r10, %rcx
3571 addq %rdx, %r14
3572 addq 16(%rsp), %r13
3573 movq %r11, %rdx
3574 xorq %rax, %rcx
3575 xorq %r12, %rdx
3576 rorxq $41, %r10, %rax
3577 xorq %rcx, %rax
3578 andq %r10, %rdx
3579 addq %rax, %r13
3580 rorxq $28, %r14, %rax
3581 rorxq $34, %r14, %rcx
3582 xorq %r12, %rdx
3583 xorq %rax, %rcx
3584 rorxq $39, %r14, %rax
3585 addq %rdx, %r13
3586 xorq %rcx, %rax
3587 movq %r15, %rdx
3588 addq %r13, %r9
3589 xorq %r14, %rdx
3590 andq %rdx, %rbx
3591 addq %rax, %r13
3592 xorq %r15, %rbx
3593 # rnd_1: 0 - 7
3594 rorxq $14, %r9, %rax
3595 rorxq $18, %r9, %rcx
3596 addq %rbx, %r13
3597 addq 24(%rsp), %r12
3598 movq %r10, %rbx
3599 xorq %rax, %rcx
3600 xorq %r11, %rbx
3601 rorxq $41, %r9, %rax
3602 xorq %rcx, %rax
3603 andq %r9, %rbx
3604 addq %rax, %r12
3605 rorxq $28, %r13, %rax
3606 rorxq $34, %r13, %rcx
3607 xorq %r11, %rbx
3608 xorq %rax, %rcx
3609 rorxq $39, %r13, %rax
3610 addq %rbx, %r12
3611 xorq %rcx, %rax
3612 movq %r14, %rbx
3613 addq %r12, %r8
3614 xorq %r13, %rbx
3615 andq %rbx, %rdx
3616 addq %rax, %r12
3617 xorq %r14, %rdx
3618 # rnd_all_2: 4-5
3619 # rnd_0: 0 - 7
3620 rorxq $14, %r8, %rax
3621 rorxq $18, %r8, %rcx
3622 addq %rdx, %r12
3623 addq 32(%rsp), %r11
3624 movq %r9, %rdx
3625 xorq %rax, %rcx
3626 xorq %r10, %rdx
3627 rorxq $41, %r8, %rax
3628 xorq %rcx, %rax
3629 andq %r8, %rdx
3630 addq %rax, %r11
3631 rorxq $28, %r12, %rax
3632 rorxq $34, %r12, %rcx
3633 xorq %r10, %rdx
3634 xorq %rax, %rcx
3635 rorxq $39, %r12, %rax
3636 addq %rdx, %r11
3637 xorq %rcx, %rax
3638 movq %r13, %rdx
3639 addq %r11, %r15
3640 xorq %r12, %rdx
3641 andq %rdx, %rbx
3642 addq %rax, %r11
3643 xorq %r13, %rbx
3644 # rnd_1: 0 - 7
3645 rorxq $14, %r15, %rax
3646 rorxq $18, %r15, %rcx
3647 addq %rbx, %r11
3648 addq 40(%rsp), %r10
3649 movq %r8, %rbx
3650 xorq %rax, %rcx
3651 xorq %r9, %rbx
3652 rorxq $41, %r15, %rax
3653 xorq %rcx, %rax
3654 andq %r15, %rbx
3655 addq %rax, %r10
3656 rorxq $28, %r11, %rax
3657 rorxq $34, %r11, %rcx
3658 xorq %r9, %rbx
3659 xorq %rax, %rcx
3660 rorxq $39, %r11, %rax
3661 addq %rbx, %r10
3662 xorq %rcx, %rax
3663 movq %r12, %rbx
3664 addq %r10, %r14
3665 xorq %r11, %rbx
3666 andq %rbx, %rdx
3667 addq %rax, %r10
3668 xorq %r12, %rdx
3669 # rnd_all_2: 6-7
3670 # rnd_0: 0 - 7
3671 rorxq $14, %r14, %rax
3672 rorxq $18, %r14, %rcx
3673 addq %rdx, %r10
3674 addq 48(%rsp), %r9
3675 movq %r15, %rdx
3676 xorq %rax, %rcx
3677 xorq %r8, %rdx
3678 rorxq $41, %r14, %rax
3679 xorq %rcx, %rax
3680 andq %r14, %rdx
3681 addq %rax, %r9
3682 rorxq $28, %r10, %rax
3683 rorxq $34, %r10, %rcx
3684 xorq %r8, %rdx
3685 xorq %rax, %rcx
3686 rorxq $39, %r10, %rax
3687 addq %rdx, %r9
3688 xorq %rcx, %rax
3689 movq %r11, %rdx
3690 addq %r9, %r13
3691 xorq %r10, %rdx
3692 andq %rdx, %rbx
3693 addq %rax, %r9
3694 xorq %r11, %rbx
3695 # rnd_1: 0 - 7
3696 rorxq $14, %r13, %rax
3697 rorxq $18, %r13, %rcx
3698 addq %rbx, %r9
3699 addq 56(%rsp), %r8
3700 movq %r14, %rbx
3701 xorq %rax, %rcx
3702 xorq %r15, %rbx
3703 rorxq $41, %r13, %rax
3704 xorq %rcx, %rax
3705 andq %r13, %rbx
3706 addq %rax, %r8
3707 rorxq $28, %r9, %rax
3708 rorxq $34, %r9, %rcx
3709 xorq %r15, %rbx
3710 xorq %rax, %rcx
3711 rorxq $39, %r9, %rax
3712 addq %rbx, %r8
3713 xorq %rcx, %rax
3714 movq %r10, %rbx
3715 addq %r8, %r12
3716 xorq %r9, %rbx
3717 andq %rbx, %rdx
3718 addq %rax, %r8
3719 xorq %r10, %rdx
3720 # rnd_all_2: 8-9
3721 # rnd_0: 0 - 7
3722 rorxq $14, %r12, %rax
3723 rorxq $18, %r12, %rcx
3724 addq %rdx, %r8
3725 addq 64(%rsp), %r15
3726 movq %r13, %rdx
3727 xorq %rax, %rcx
3728 xorq %r14, %rdx
3729 rorxq $41, %r12, %rax
3730 xorq %rcx, %rax
3731 andq %r12, %rdx
3732 addq %rax, %r15
3733 rorxq $28, %r8, %rax
3734 rorxq $34, %r8, %rcx
3735 xorq %r14, %rdx
3736 xorq %rax, %rcx
3737 rorxq $39, %r8, %rax
3738 addq %rdx, %r15
3739 xorq %rcx, %rax
3740 movq %r9, %rdx
3741 addq %r15, %r11
3742 xorq %r8, %rdx
3743 andq %rdx, %rbx
3744 addq %rax, %r15
3745 xorq %r9, %rbx
3746 # rnd_1: 0 - 7
3747 rorxq $14, %r11, %rax
3748 rorxq $18, %r11, %rcx
3749 addq %rbx, %r15
3750 addq 72(%rsp), %r14
3751 movq %r12, %rbx
3752 xorq %rax, %rcx
3753 xorq %r13, %rbx
3754 rorxq $41, %r11, %rax
3755 xorq %rcx, %rax
3756 andq %r11, %rbx
3757 addq %rax, %r14
3758 rorxq $28, %r15, %rax
3759 rorxq $34, %r15, %rcx
3760 xorq %r13, %rbx
3761 xorq %rax, %rcx
3762 rorxq $39, %r15, %rax
3763 addq %rbx, %r14
3764 xorq %rcx, %rax
3765 movq %r8, %rbx
3766 addq %r14, %r10
3767 xorq %r15, %rbx
3768 andq %rbx, %rdx
3769 addq %rax, %r14
3770 xorq %r8, %rdx
3771 # rnd_all_2: 10-11
3772 # rnd_0: 0 - 7
3773 rorxq $14, %r10, %rax
3774 rorxq $18, %r10, %rcx
3775 addq %rdx, %r14
3776 addq 80(%rsp), %r13
3777 movq %r11, %rdx
3778 xorq %rax, %rcx
3779 xorq %r12, %rdx
3780 rorxq $41, %r10, %rax
3781 xorq %rcx, %rax
3782 andq %r10, %rdx
3783 addq %rax, %r13
3784 rorxq $28, %r14, %rax
3785 rorxq $34, %r14, %rcx
3786 xorq %r12, %rdx
3787 xorq %rax, %rcx
3788 rorxq $39, %r14, %rax
3789 addq %rdx, %r13
3790 xorq %rcx, %rax
3791 movq %r15, %rdx
3792 addq %r13, %r9
3793 xorq %r14, %rdx
3794 andq %rdx, %rbx
3795 addq %rax, %r13
3796 xorq %r15, %rbx
3797 # rnd_1: 0 - 7
3798 rorxq $14, %r9, %rax
3799 rorxq $18, %r9, %rcx
3800 addq %rbx, %r13
3801 addq 88(%rsp), %r12
3802 movq %r10, %rbx
3803 xorq %rax, %rcx
3804 xorq %r11, %rbx
3805 rorxq $41, %r9, %rax
3806 xorq %rcx, %rax
3807 andq %r9, %rbx
3808 addq %rax, %r12
3809 rorxq $28, %r13, %rax
3810 rorxq $34, %r13, %rcx
3811 xorq %r11, %rbx
3812 xorq %rax, %rcx
3813 rorxq $39, %r13, %rax
3814 addq %rbx, %r12
3815 xorq %rcx, %rax
3816 movq %r14, %rbx
3817 addq %r12, %r8
3818 xorq %r13, %rbx
3819 andq %rbx, %rdx
3820 addq %rax, %r12
3821 xorq %r14, %rdx
3822 # rnd_all_2: 12-13
3823 # rnd_0: 0 - 7
3824 rorxq $14, %r8, %rax
3825 rorxq $18, %r8, %rcx
3826 addq %rdx, %r12
3827 addq 96(%rsp), %r11
3828 movq %r9, %rdx
3829 xorq %rax, %rcx
3830 xorq %r10, %rdx
3831 rorxq $41, %r8, %rax
3832 xorq %rcx, %rax
3833 andq %r8, %rdx
3834 addq %rax, %r11
3835 rorxq $28, %r12, %rax
3836 rorxq $34, %r12, %rcx
3837 xorq %r10, %rdx
3838 xorq %rax, %rcx
3839 rorxq $39, %r12, %rax
3840 addq %rdx, %r11
3841 xorq %rcx, %rax
3842 movq %r13, %rdx
3843 addq %r11, %r15
3844 xorq %r12, %rdx
3845 andq %rdx, %rbx
3846 addq %rax, %r11
3847 xorq %r13, %rbx
3848 # rnd_1: 0 - 7
3849 rorxq $14, %r15, %rax
3850 rorxq $18, %r15, %rcx
3851 addq %rbx, %r11
3852 addq 104(%rsp), %r10
3853 movq %r8, %rbx
3854 xorq %rax, %rcx
3855 xorq %r9, %rbx
3856 rorxq $41, %r15, %rax
3857 xorq %rcx, %rax
3858 andq %r15, %rbx
3859 addq %rax, %r10
3860 rorxq $28, %r11, %rax
3861 rorxq $34, %r11, %rcx
3862 xorq %r9, %rbx
3863 xorq %rax, %rcx
3864 rorxq $39, %r11, %rax
3865 addq %rbx, %r10
3866 xorq %rcx, %rax
3867 movq %r12, %rbx
3868 addq %r10, %r14
3869 xorq %r11, %rbx
3870 andq %rbx, %rdx
3871 addq %rax, %r10
3872 xorq %r12, %rdx
3873 # rnd_all_2: 14-15
3874 # rnd_0: 0 - 7
3875 rorxq $14, %r14, %rax
3876 rorxq $18, %r14, %rcx
3877 addq %rdx, %r10
3878 addq 112(%rsp), %r9
3879 movq %r15, %rdx
3880 xorq %rax, %rcx
3881 xorq %r8, %rdx
3882 rorxq $41, %r14, %rax
3883 xorq %rcx, %rax
3884 andq %r14, %rdx
3885 addq %rax, %r9
3886 rorxq $28, %r10, %rax
3887 rorxq $34, %r10, %rcx
3888 xorq %r8, %rdx
3889 xorq %rax, %rcx
3890 rorxq $39, %r10, %rax
3891 addq %rdx, %r9
3892 xorq %rcx, %rax
3893 movq %r11, %rdx
3894 addq %r9, %r13
3895 xorq %r10, %rdx
3896 andq %rdx, %rbx
3897 addq %rax, %r9
3898 xorq %r11, %rbx
3899 # rnd_1: 0 - 7
3900 rorxq $14, %r13, %rax
3901 rorxq $18, %r13, %rcx
3902 addq %rbx, %r9
3903 addq 120(%rsp), %r8
3904 movq %r14, %rbx
3905 xorq %rax, %rcx
3906 xorq %r15, %rbx
3907 rorxq $41, %r13, %rax
3908 xorq %rcx, %rax
3909 andq %r13, %rbx
3910 addq %rax, %r8
3911 rorxq $28, %r9, %rax
3912 rorxq $34, %r9, %rcx
3913 xorq %r15, %rbx
3914 xorq %rax, %rcx
3915 rorxq $39, %r9, %rax
3916 addq %rbx, %r8
3917 xorq %rcx, %rax
3918 movq %r10, %rbx
3919 addq %r8, %r12
3920 xorq %r9, %rbx
3921 andq %rbx, %rdx
3922 addq %rax, %r8
3923 xorq %r10, %rdx
3924 addq %rdx, %r8
3925 addq %r8, (%rdi)
3926 addq %r9, 8(%rdi)
3927 addq %r10, 16(%rdi)
3928 addq %r11, 24(%rdi)
3929 addq %r12, 32(%rdi)
3930 addq %r13, 40(%rdi)
3931 addq %r14, 48(%rdi)
3932 addq %r15, 56(%rdi)
3933 xorq %rax, %rax
3934 addq $0x88, %rsp
3935 popq %r15
3936 popq %r14
3937 popq %r13
3938 popq %r12
3939 popq %rbx
3940 repz retq
3941#ifndef __APPLE__
3942.size Transform_Sha512_AVX1_RORX,.-Transform_Sha512_AVX1_RORX
3943#endif /* __APPLE__ */
3944#ifndef __APPLE__
3945.text
3946.globl Transform_Sha512_AVX1_RORX_Len
3947.type Transform_Sha512_AVX1_RORX_Len,@function
3948.align 16
3949Transform_Sha512_AVX1_RORX_Len:
3950#else
3951.section __TEXT,__text
3952.globl _Transform_Sha512_AVX1_RORX_Len
3953.p2align 4
3954_Transform_Sha512_AVX1_RORX_Len:
3955#endif /* __APPLE__ */
3956 pushq %rbx
3957 pushq %r12
3958 pushq %r13
3959 pushq %r14
3960 pushq %r15
3961 pushq %rbp
3962 movq %rsi, %rbp
3963 subq $0x90, %rsp
3964 movq 224(%rdi), %rsi
3965 leaq L_avx1_rorx_sha512_k(%rip), %rcx
3966 vmovdqa L_avx1_rorx_sha512_flip_mask(%rip), %xmm14
3967 movq (%rdi), %r8
3968 movq 8(%rdi), %r9
3969 movq 16(%rdi), %r10
3970 movq 24(%rdi), %r11
3971 movq 32(%rdi), %r12
3972 movq 40(%rdi), %r13
3973 movq 48(%rdi), %r14
3974 movq 56(%rdi), %r15
3975 # Start of loop processing a block
3976L_sha512_len_avx1_rorx_begin:
3977 vmovdqu (%rsi), %xmm0
3978 vmovdqu 16(%rsi), %xmm1
3979 vpshufb %xmm14, %xmm0, %xmm0
3980 vpshufb %xmm14, %xmm1, %xmm1
3981 vmovdqu 32(%rsi), %xmm2
3982 vmovdqu 48(%rsi), %xmm3
3983 vpshufb %xmm14, %xmm2, %xmm2
3984 vpshufb %xmm14, %xmm3, %xmm3
3985 vmovdqu 64(%rsi), %xmm4
3986 vmovdqu 80(%rsi), %xmm5
3987 vpshufb %xmm14, %xmm4, %xmm4
3988 vpshufb %xmm14, %xmm5, %xmm5
3989 vmovdqu 96(%rsi), %xmm6
3990 vmovdqu 112(%rsi), %xmm7
3991 vpshufb %xmm14, %xmm6, %xmm6
3992 vpshufb %xmm14, %xmm7, %xmm7
3993 movl $4, 128(%rsp)
3994 movq %r9, %rbx
3995 xorq %rdx, %rdx
3996 xorq %r10, %rbx
3997 vpaddq (%rcx), %xmm0, %xmm8
3998 vpaddq 16(%rcx), %xmm1, %xmm9
3999 vmovdqu %xmm8, (%rsp)
4000 vmovdqu %xmm9, 16(%rsp)
4001 vpaddq 32(%rcx), %xmm2, %xmm8
4002 vpaddq 48(%rcx), %xmm3, %xmm9
4003 vmovdqu %xmm8, 32(%rsp)
4004 vmovdqu %xmm9, 48(%rsp)
4005 vpaddq 64(%rcx), %xmm4, %xmm8
4006 vpaddq 80(%rcx), %xmm5, %xmm9
4007 vmovdqu %xmm8, 64(%rsp)
4008 vmovdqu %xmm9, 80(%rsp)
4009 vpaddq 96(%rcx), %xmm6, %xmm8
4010 vpaddq 112(%rcx), %xmm7, %xmm9
4011 vmovdqu %xmm8, 96(%rsp)
4012 vmovdqu %xmm9, 112(%rsp)
4013 # Start of 16 rounds
4014L_sha512_len_avx1_rorx_start:
4015 addq $0x80, %rcx
4016 movq %rcx, 136(%rsp)
4017 # msg_sched: 0-1
4018 # rnd_0: 0 - 0
4019 rorxq $14, %r12, %rax
4020 rorxq $18, %r12, %rcx
4021 addq %rdx, %r8
4022 vpalignr $8, %xmm0, %xmm1, %xmm12
4023 vpalignr $8, %xmm4, %xmm5, %xmm13
4024 # rnd_0: 1 - 1
4025 addq (%rsp), %r15
4026 movq %r13, %rdx
4027 xorq %rax, %rcx
4028 vpsrlq $0x01, %xmm12, %xmm8
4029 vpsllq $63, %xmm12, %xmm9
4030 # rnd_0: 2 - 2
4031 xorq %r14, %rdx
4032 rorxq $41, %r12, %rax
4033 xorq %rcx, %rax
4034 vpsrlq $8, %xmm12, %xmm10
4035 vpsllq $56, %xmm12, %xmm11
4036 # rnd_0: 3 - 3
4037 andq %r12, %rdx
4038 addq %rax, %r15
4039 rorxq $28, %r8, %rax
4040 vpor %xmm9, %xmm8, %xmm8
4041 vpor %xmm11, %xmm10, %xmm10
4042 # rnd_0: 4 - 4
4043 rorxq $34, %r8, %rcx
4044 xorq %r14, %rdx
4045 xorq %rax, %rcx
4046 vpsrlq $7, %xmm12, %xmm11
4047 vpxor %xmm10, %xmm8, %xmm8
4048 # rnd_0: 5 - 5
4049 rorxq $39, %r8, %rax
4050 addq %rdx, %r15
4051 xorq %rcx, %rax
4052 vpxor %xmm11, %xmm8, %xmm8
4053 vpaddq %xmm0, %xmm13, %xmm0
4054 # rnd_0: 6 - 7
4055 movq %r9, %rdx
4056 addq %r15, %r11
4057 xorq %r8, %rdx
4058 andq %rdx, %rbx
4059 addq %rax, %r15
4060 xorq %r9, %rbx
4061 vpaddq %xmm0, %xmm8, %xmm0
4062 # rnd_1: 0 - 0
4063 rorxq $14, %r11, %rax
4064 rorxq $18, %r11, %rcx
4065 addq %rbx, %r15
4066 vpsrlq $19, %xmm7, %xmm8
4067 vpsllq $45, %xmm7, %xmm9
4068 # rnd_1: 1 - 1
4069 addq 8(%rsp), %r14
4070 movq %r12, %rbx
4071 xorq %rax, %rcx
4072 vpsrlq $61, %xmm7, %xmm10
4073 vpsllq $3, %xmm7, %xmm11
4074 # rnd_1: 2 - 2
4075 xorq %r13, %rbx
4076 rorxq $41, %r11, %rax
4077 xorq %rcx, %rax
4078 vpor %xmm9, %xmm8, %xmm8
4079 vpor %xmm11, %xmm10, %xmm10
4080 # rnd_1: 3 - 4
4081 andq %r11, %rbx
4082 addq %rax, %r14
4083 rorxq $28, %r15, %rax
4084 rorxq $34, %r15, %rcx
4085 xorq %r13, %rbx
4086 xorq %rax, %rcx
4087 vpxor %xmm10, %xmm8, %xmm8
4088 vpsrlq $6, %xmm7, %xmm11
4089 # rnd_1: 5 - 6
4090 rorxq $39, %r15, %rax
4091 addq %rbx, %r14
4092 xorq %rcx, %rax
4093 movq %r8, %rbx
4094 addq %r14, %r10
4095 xorq %r15, %rbx
4096 vpxor %xmm11, %xmm8, %xmm8
4097 # rnd_1: 7 - 7
4098 andq %rbx, %rdx
4099 addq %rax, %r14
4100 xorq %r8, %rdx
4101 vpaddq %xmm0, %xmm8, %xmm0
4102 # msg_sched done: 0-1
4103 # msg_sched: 2-3
4104 # rnd_0: 0 - 0
4105 rorxq $14, %r10, %rax
4106 rorxq $18, %r10, %rcx
4107 addq %rdx, %r14
4108 vpalignr $8, %xmm1, %xmm2, %xmm12
4109 vpalignr $8, %xmm5, %xmm6, %xmm13
4110 # rnd_0: 1 - 1
4111 addq 16(%rsp), %r13
4112 movq %r11, %rdx
4113 xorq %rax, %rcx
4114 vpsrlq $0x01, %xmm12, %xmm8
4115 vpsllq $63, %xmm12, %xmm9
4116 # rnd_0: 2 - 2
4117 xorq %r12, %rdx
4118 rorxq $41, %r10, %rax
4119 xorq %rcx, %rax
4120 vpsrlq $8, %xmm12, %xmm10
4121 vpsllq $56, %xmm12, %xmm11
4122 # rnd_0: 3 - 3
4123 andq %r10, %rdx
4124 addq %rax, %r13
4125 rorxq $28, %r14, %rax
4126 vpor %xmm9, %xmm8, %xmm8
4127 vpor %xmm11, %xmm10, %xmm10
4128 # rnd_0: 4 - 4
4129 rorxq $34, %r14, %rcx
4130 xorq %r12, %rdx
4131 xorq %rax, %rcx
4132 vpsrlq $7, %xmm12, %xmm11
4133 vpxor %xmm10, %xmm8, %xmm8
4134 # rnd_0: 5 - 5
4135 rorxq $39, %r14, %rax
4136 addq %rdx, %r13
4137 xorq %rcx, %rax
4138 vpxor %xmm11, %xmm8, %xmm8
4139 vpaddq %xmm1, %xmm13, %xmm1
4140 # rnd_0: 6 - 7
4141 movq %r15, %rdx
4142 addq %r13, %r9
4143 xorq %r14, %rdx
4144 andq %rdx, %rbx
4145 addq %rax, %r13
4146 xorq %r15, %rbx
4147 vpaddq %xmm1, %xmm8, %xmm1
4148 # rnd_1: 0 - 0
4149 rorxq $14, %r9, %rax
4150 rorxq $18, %r9, %rcx
4151 addq %rbx, %r13
4152 vpsrlq $19, %xmm0, %xmm8
4153 vpsllq $45, %xmm0, %xmm9
4154 # rnd_1: 1 - 1
4155 addq 24(%rsp), %r12
4156 movq %r10, %rbx
4157 xorq %rax, %rcx
4158 vpsrlq $61, %xmm0, %xmm10
4159 vpsllq $3, %xmm0, %xmm11
4160 # rnd_1: 2 - 2
4161 xorq %r11, %rbx
4162 rorxq $41, %r9, %rax
4163 xorq %rcx, %rax
4164 vpor %xmm9, %xmm8, %xmm8
4165 vpor %xmm11, %xmm10, %xmm10
4166 # rnd_1: 3 - 4
4167 andq %r9, %rbx
4168 addq %rax, %r12
4169 rorxq $28, %r13, %rax
4170 rorxq $34, %r13, %rcx
4171 xorq %r11, %rbx
4172 xorq %rax, %rcx
4173 vpxor %xmm10, %xmm8, %xmm8
4174 vpsrlq $6, %xmm0, %xmm11
4175 # rnd_1: 5 - 6
4176 rorxq $39, %r13, %rax
4177 addq %rbx, %r12
4178 xorq %rcx, %rax
4179 movq %r14, %rbx
4180 addq %r12, %r8
4181 xorq %r13, %rbx
4182 vpxor %xmm11, %xmm8, %xmm8
4183 # rnd_1: 7 - 7
4184 andq %rbx, %rdx
4185 addq %rax, %r12
4186 xorq %r14, %rdx
4187 vpaddq %xmm1, %xmm8, %xmm1
4188 # msg_sched done: 2-3
4189 # msg_sched: 4-5
4190 # rnd_0: 0 - 0
4191 rorxq $14, %r8, %rax
4192 rorxq $18, %r8, %rcx
4193 addq %rdx, %r12
4194 vpalignr $8, %xmm2, %xmm3, %xmm12
4195 vpalignr $8, %xmm6, %xmm7, %xmm13
4196 # rnd_0: 1 - 1
4197 addq 32(%rsp), %r11
4198 movq %r9, %rdx
4199 xorq %rax, %rcx
4200 vpsrlq $0x01, %xmm12, %xmm8
4201 vpsllq $63, %xmm12, %xmm9
4202 # rnd_0: 2 - 2
4203 xorq %r10, %rdx
4204 rorxq $41, %r8, %rax
4205 xorq %rcx, %rax
4206 vpsrlq $8, %xmm12, %xmm10
4207 vpsllq $56, %xmm12, %xmm11
4208 # rnd_0: 3 - 3
4209 andq %r8, %rdx
4210 addq %rax, %r11
4211 rorxq $28, %r12, %rax
4212 vpor %xmm9, %xmm8, %xmm8
4213 vpor %xmm11, %xmm10, %xmm10
4214 # rnd_0: 4 - 4
4215 rorxq $34, %r12, %rcx
4216 xorq %r10, %rdx
4217 xorq %rax, %rcx
4218 vpsrlq $7, %xmm12, %xmm11
4219 vpxor %xmm10, %xmm8, %xmm8
4220 # rnd_0: 5 - 5
4221 rorxq $39, %r12, %rax
4222 addq %rdx, %r11
4223 xorq %rcx, %rax
4224 vpxor %xmm11, %xmm8, %xmm8
4225 vpaddq %xmm2, %xmm13, %xmm2
4226 # rnd_0: 6 - 7
4227 movq %r13, %rdx
4228 addq %r11, %r15
4229 xorq %r12, %rdx
4230 andq %rdx, %rbx
4231 addq %rax, %r11
4232 xorq %r13, %rbx
4233 vpaddq %xmm2, %xmm8, %xmm2
4234 # rnd_1: 0 - 0
4235 rorxq $14, %r15, %rax
4236 rorxq $18, %r15, %rcx
4237 addq %rbx, %r11
4238 vpsrlq $19, %xmm1, %xmm8
4239 vpsllq $45, %xmm1, %xmm9
4240 # rnd_1: 1 - 1
4241 addq 40(%rsp), %r10
4242 movq %r8, %rbx
4243 xorq %rax, %rcx
4244 vpsrlq $61, %xmm1, %xmm10
4245 vpsllq $3, %xmm1, %xmm11
4246 # rnd_1: 2 - 2
4247 xorq %r9, %rbx
4248 rorxq $41, %r15, %rax
4249 xorq %rcx, %rax
4250 vpor %xmm9, %xmm8, %xmm8
4251 vpor %xmm11, %xmm10, %xmm10
4252 # rnd_1: 3 - 4
4253 andq %r15, %rbx
4254 addq %rax, %r10
4255 rorxq $28, %r11, %rax
4256 rorxq $34, %r11, %rcx
4257 xorq %r9, %rbx
4258 xorq %rax, %rcx
4259 vpxor %xmm10, %xmm8, %xmm8
4260 vpsrlq $6, %xmm1, %xmm11
4261 # rnd_1: 5 - 6
4262 rorxq $39, %r11, %rax
4263 addq %rbx, %r10
4264 xorq %rcx, %rax
4265 movq %r12, %rbx
4266 addq %r10, %r14
4267 xorq %r11, %rbx
4268 vpxor %xmm11, %xmm8, %xmm8
4269 # rnd_1: 7 - 7
4270 andq %rbx, %rdx
4271 addq %rax, %r10
4272 xorq %r12, %rdx
4273 vpaddq %xmm2, %xmm8, %xmm2
4274 # msg_sched done: 4-5
4275 # msg_sched: 6-7
4276 # rnd_0: 0 - 0
4277 rorxq $14, %r14, %rax
4278 rorxq $18, %r14, %rcx
4279 addq %rdx, %r10
4280 vpalignr $8, %xmm3, %xmm4, %xmm12
4281 vpalignr $8, %xmm7, %xmm0, %xmm13
4282 # rnd_0: 1 - 1
4283 addq 48(%rsp), %r9
4284 movq %r15, %rdx
4285 xorq %rax, %rcx
4286 vpsrlq $0x01, %xmm12, %xmm8
4287 vpsllq $63, %xmm12, %xmm9
4288 # rnd_0: 2 - 2
4289 xorq %r8, %rdx
4290 rorxq $41, %r14, %rax
4291 xorq %rcx, %rax
4292 vpsrlq $8, %xmm12, %xmm10
4293 vpsllq $56, %xmm12, %xmm11
4294 # rnd_0: 3 - 3
4295 andq %r14, %rdx
4296 addq %rax, %r9
4297 rorxq $28, %r10, %rax
4298 vpor %xmm9, %xmm8, %xmm8
4299 vpor %xmm11, %xmm10, %xmm10
4300 # rnd_0: 4 - 4
4301 rorxq $34, %r10, %rcx
4302 xorq %r8, %rdx
4303 xorq %rax, %rcx
4304 vpsrlq $7, %xmm12, %xmm11
4305 vpxor %xmm10, %xmm8, %xmm8
4306 # rnd_0: 5 - 5
4307 rorxq $39, %r10, %rax
4308 addq %rdx, %r9
4309 xorq %rcx, %rax
4310 vpxor %xmm11, %xmm8, %xmm8
4311 vpaddq %xmm3, %xmm13, %xmm3
4312 # rnd_0: 6 - 7
4313 movq %r11, %rdx
4314 addq %r9, %r13
4315 xorq %r10, %rdx
4316 andq %rdx, %rbx
4317 addq %rax, %r9
4318 xorq %r11, %rbx
4319 vpaddq %xmm3, %xmm8, %xmm3
4320 # rnd_1: 0 - 0
4321 rorxq $14, %r13, %rax
4322 rorxq $18, %r13, %rcx
4323 addq %rbx, %r9
4324 vpsrlq $19, %xmm2, %xmm8
4325 vpsllq $45, %xmm2, %xmm9
4326 # rnd_1: 1 - 1
4327 addq 56(%rsp), %r8
4328 movq %r14, %rbx
4329 xorq %rax, %rcx
4330 vpsrlq $61, %xmm2, %xmm10
4331 vpsllq $3, %xmm2, %xmm11
4332 # rnd_1: 2 - 2
4333 xorq %r15, %rbx
4334 rorxq $41, %r13, %rax
4335 xorq %rcx, %rax
4336 vpor %xmm9, %xmm8, %xmm8
4337 vpor %xmm11, %xmm10, %xmm10
4338 # rnd_1: 3 - 4
4339 andq %r13, %rbx
4340 addq %rax, %r8
4341 rorxq $28, %r9, %rax
4342 rorxq $34, %r9, %rcx
4343 xorq %r15, %rbx
4344 xorq %rax, %rcx
4345 vpxor %xmm10, %xmm8, %xmm8
4346 vpsrlq $6, %xmm2, %xmm11
4347 # rnd_1: 5 - 6
4348 rorxq $39, %r9, %rax
4349 addq %rbx, %r8
4350 xorq %rcx, %rax
4351 movq %r10, %rbx
4352 addq %r8, %r12
4353 xorq %r9, %rbx
4354 vpxor %xmm11, %xmm8, %xmm8
4355 # rnd_1: 7 - 7
4356 andq %rbx, %rdx
4357 addq %rax, %r8
4358 xorq %r10, %rdx
4359 vpaddq %xmm3, %xmm8, %xmm3
4360 # msg_sched done: 6-7
4361 # msg_sched: 8-9
4362 # rnd_0: 0 - 0
4363 rorxq $14, %r12, %rax
4364 rorxq $18, %r12, %rcx
4365 addq %rdx, %r8
4366 vpalignr $8, %xmm4, %xmm5, %xmm12
4367 vpalignr $8, %xmm0, %xmm1, %xmm13
4368 # rnd_0: 1 - 1
4369 addq 64(%rsp), %r15
4370 movq %r13, %rdx
4371 xorq %rax, %rcx
4372 vpsrlq $0x01, %xmm12, %xmm8
4373 vpsllq $63, %xmm12, %xmm9
4374 # rnd_0: 2 - 2
4375 xorq %r14, %rdx
4376 rorxq $41, %r12, %rax
4377 xorq %rcx, %rax
4378 vpsrlq $8, %xmm12, %xmm10
4379 vpsllq $56, %xmm12, %xmm11
4380 # rnd_0: 3 - 3
4381 andq %r12, %rdx
4382 addq %rax, %r15
4383 rorxq $28, %r8, %rax
4384 vpor %xmm9, %xmm8, %xmm8
4385 vpor %xmm11, %xmm10, %xmm10
4386 # rnd_0: 4 - 4
4387 rorxq $34, %r8, %rcx
4388 xorq %r14, %rdx
4389 xorq %rax, %rcx
4390 vpsrlq $7, %xmm12, %xmm11
4391 vpxor %xmm10, %xmm8, %xmm8
4392 # rnd_0: 5 - 5
4393 rorxq $39, %r8, %rax
4394 addq %rdx, %r15
4395 xorq %rcx, %rax
4396 vpxor %xmm11, %xmm8, %xmm8
4397 vpaddq %xmm4, %xmm13, %xmm4
4398 # rnd_0: 6 - 7
4399 movq %r9, %rdx
4400 addq %r15, %r11
4401 xorq %r8, %rdx
4402 andq %rdx, %rbx
4403 addq %rax, %r15
4404 xorq %r9, %rbx
4405 vpaddq %xmm4, %xmm8, %xmm4
4406 # rnd_1: 0 - 0
4407 rorxq $14, %r11, %rax
4408 rorxq $18, %r11, %rcx
4409 addq %rbx, %r15
4410 vpsrlq $19, %xmm3, %xmm8
4411 vpsllq $45, %xmm3, %xmm9
4412 # rnd_1: 1 - 1
4413 addq 72(%rsp), %r14
4414 movq %r12, %rbx
4415 xorq %rax, %rcx
4416 vpsrlq $61, %xmm3, %xmm10
4417 vpsllq $3, %xmm3, %xmm11
4418 # rnd_1: 2 - 2
4419 xorq %r13, %rbx
4420 rorxq $41, %r11, %rax
4421 xorq %rcx, %rax
4422 vpor %xmm9, %xmm8, %xmm8
4423 vpor %xmm11, %xmm10, %xmm10
4424 # rnd_1: 3 - 4
4425 andq %r11, %rbx
4426 addq %rax, %r14
4427 rorxq $28, %r15, %rax
4428 rorxq $34, %r15, %rcx
4429 xorq %r13, %rbx
4430 xorq %rax, %rcx
4431 vpxor %xmm10, %xmm8, %xmm8
4432 vpsrlq $6, %xmm3, %xmm11
4433 # rnd_1: 5 - 6
4434 rorxq $39, %r15, %rax
4435 addq %rbx, %r14
4436 xorq %rcx, %rax
4437 movq %r8, %rbx
4438 addq %r14, %r10
4439 xorq %r15, %rbx
4440 vpxor %xmm11, %xmm8, %xmm8
4441 # rnd_1: 7 - 7
4442 andq %rbx, %rdx
4443 addq %rax, %r14
4444 xorq %r8, %rdx
4445 vpaddq %xmm4, %xmm8, %xmm4
4446 # msg_sched done: 8-9
4447 # msg_sched: 10-11
4448 # rnd_0: 0 - 0
4449 rorxq $14, %r10, %rax
4450 rorxq $18, %r10, %rcx
4451 addq %rdx, %r14
4452 vpalignr $8, %xmm5, %xmm6, %xmm12
4453 vpalignr $8, %xmm1, %xmm2, %xmm13
4454 # rnd_0: 1 - 1
4455 addq 80(%rsp), %r13
4456 movq %r11, %rdx
4457 xorq %rax, %rcx
4458 vpsrlq $0x01, %xmm12, %xmm8
4459 vpsllq $63, %xmm12, %xmm9
4460 # rnd_0: 2 - 2
4461 xorq %r12, %rdx
4462 rorxq $41, %r10, %rax
4463 xorq %rcx, %rax
4464 vpsrlq $8, %xmm12, %xmm10
4465 vpsllq $56, %xmm12, %xmm11
4466 # rnd_0: 3 - 3
4467 andq %r10, %rdx
4468 addq %rax, %r13
4469 rorxq $28, %r14, %rax
4470 vpor %xmm9, %xmm8, %xmm8
4471 vpor %xmm11, %xmm10, %xmm10
4472 # rnd_0: 4 - 4
4473 rorxq $34, %r14, %rcx
4474 xorq %r12, %rdx
4475 xorq %rax, %rcx
4476 vpsrlq $7, %xmm12, %xmm11
4477 vpxor %xmm10, %xmm8, %xmm8
4478 # rnd_0: 5 - 5
4479 rorxq $39, %r14, %rax
4480 addq %rdx, %r13
4481 xorq %rcx, %rax
4482 vpxor %xmm11, %xmm8, %xmm8
4483 vpaddq %xmm5, %xmm13, %xmm5
4484 # rnd_0: 6 - 7
4485 movq %r15, %rdx
4486 addq %r13, %r9
4487 xorq %r14, %rdx
4488 andq %rdx, %rbx
4489 addq %rax, %r13
4490 xorq %r15, %rbx
4491 vpaddq %xmm5, %xmm8, %xmm5
4492 # rnd_1: 0 - 0
4493 rorxq $14, %r9, %rax
4494 rorxq $18, %r9, %rcx
4495 addq %rbx, %r13
4496 vpsrlq $19, %xmm4, %xmm8
4497 vpsllq $45, %xmm4, %xmm9
4498 # rnd_1: 1 - 1
4499 addq 88(%rsp), %r12
4500 movq %r10, %rbx
4501 xorq %rax, %rcx
4502 vpsrlq $61, %xmm4, %xmm10
4503 vpsllq $3, %xmm4, %xmm11
4504 # rnd_1: 2 - 2
4505 xorq %r11, %rbx
4506 rorxq $41, %r9, %rax
4507 xorq %rcx, %rax
4508 vpor %xmm9, %xmm8, %xmm8
4509 vpor %xmm11, %xmm10, %xmm10
4510 # rnd_1: 3 - 4
4511 andq %r9, %rbx
4512 addq %rax, %r12
4513 rorxq $28, %r13, %rax
4514 rorxq $34, %r13, %rcx
4515 xorq %r11, %rbx
4516 xorq %rax, %rcx
4517 vpxor %xmm10, %xmm8, %xmm8
4518 vpsrlq $6, %xmm4, %xmm11
4519 # rnd_1: 5 - 6
4520 rorxq $39, %r13, %rax
4521 addq %rbx, %r12
4522 xorq %rcx, %rax
4523 movq %r14, %rbx
4524 addq %r12, %r8
4525 xorq %r13, %rbx
4526 vpxor %xmm11, %xmm8, %xmm8
4527 # rnd_1: 7 - 7
4528 andq %rbx, %rdx
4529 addq %rax, %r12
4530 xorq %r14, %rdx
4531 vpaddq %xmm5, %xmm8, %xmm5
4532 # msg_sched done: 10-11
4533 # msg_sched: 12-13
4534 # rnd_0: 0 - 0
4535 rorxq $14, %r8, %rax
4536 rorxq $18, %r8, %rcx
4537 addq %rdx, %r12
4538 vpalignr $8, %xmm6, %xmm7, %xmm12
4539 vpalignr $8, %xmm2, %xmm3, %xmm13
4540 # rnd_0: 1 - 1
4541 addq 96(%rsp), %r11
4542 movq %r9, %rdx
4543 xorq %rax, %rcx
4544 vpsrlq $0x01, %xmm12, %xmm8
4545 vpsllq $63, %xmm12, %xmm9
4546 # rnd_0: 2 - 2
4547 xorq %r10, %rdx
4548 rorxq $41, %r8, %rax
4549 xorq %rcx, %rax
4550 vpsrlq $8, %xmm12, %xmm10
4551 vpsllq $56, %xmm12, %xmm11
4552 # rnd_0: 3 - 3
4553 andq %r8, %rdx
4554 addq %rax, %r11
4555 rorxq $28, %r12, %rax
4556 vpor %xmm9, %xmm8, %xmm8
4557 vpor %xmm11, %xmm10, %xmm10
4558 # rnd_0: 4 - 4
4559 rorxq $34, %r12, %rcx
4560 xorq %r10, %rdx
4561 xorq %rax, %rcx
4562 vpsrlq $7, %xmm12, %xmm11
4563 vpxor %xmm10, %xmm8, %xmm8
4564 # rnd_0: 5 - 5
4565 rorxq $39, %r12, %rax
4566 addq %rdx, %r11
4567 xorq %rcx, %rax
4568 vpxor %xmm11, %xmm8, %xmm8
4569 vpaddq %xmm6, %xmm13, %xmm6
4570 # rnd_0: 6 - 7
4571 movq %r13, %rdx
4572 addq %r11, %r15
4573 xorq %r12, %rdx
4574 andq %rdx, %rbx
4575 addq %rax, %r11
4576 xorq %r13, %rbx
4577 vpaddq %xmm6, %xmm8, %xmm6
4578 # rnd_1: 0 - 0
4579 rorxq $14, %r15, %rax
4580 rorxq $18, %r15, %rcx
4581 addq %rbx, %r11
4582 vpsrlq $19, %xmm5, %xmm8
4583 vpsllq $45, %xmm5, %xmm9
4584 # rnd_1: 1 - 1
4585 addq 104(%rsp), %r10
4586 movq %r8, %rbx
4587 xorq %rax, %rcx
4588 vpsrlq $61, %xmm5, %xmm10
4589 vpsllq $3, %xmm5, %xmm11
4590 # rnd_1: 2 - 2
4591 xorq %r9, %rbx
4592 rorxq $41, %r15, %rax
4593 xorq %rcx, %rax
4594 vpor %xmm9, %xmm8, %xmm8
4595 vpor %xmm11, %xmm10, %xmm10
4596 # rnd_1: 3 - 4
4597 andq %r15, %rbx
4598 addq %rax, %r10
4599 rorxq $28, %r11, %rax
4600 rorxq $34, %r11, %rcx
4601 xorq %r9, %rbx
4602 xorq %rax, %rcx
4603 vpxor %xmm10, %xmm8, %xmm8
4604 vpsrlq $6, %xmm5, %xmm11
4605 # rnd_1: 5 - 6
4606 rorxq $39, %r11, %rax
4607 addq %rbx, %r10
4608 xorq %rcx, %rax
4609 movq %r12, %rbx
4610 addq %r10, %r14
4611 xorq %r11, %rbx
4612 vpxor %xmm11, %xmm8, %xmm8
4613 # rnd_1: 7 - 7
4614 andq %rbx, %rdx
4615 addq %rax, %r10
4616 xorq %r12, %rdx
4617 vpaddq %xmm6, %xmm8, %xmm6
4618 # msg_sched done: 12-13
4619 # msg_sched: 14-15
4620 # rnd_0: 0 - 0
4621 rorxq $14, %r14, %rax
4622 rorxq $18, %r14, %rcx
4623 addq %rdx, %r10
4624 vpalignr $8, %xmm7, %xmm0, %xmm12
4625 vpalignr $8, %xmm3, %xmm4, %xmm13
4626 # rnd_0: 1 - 1
4627 addq 112(%rsp), %r9
4628 movq %r15, %rdx
4629 xorq %rax, %rcx
4630 vpsrlq $0x01, %xmm12, %xmm8
4631 vpsllq $63, %xmm12, %xmm9
4632 # rnd_0: 2 - 2
4633 xorq %r8, %rdx
4634 rorxq $41, %r14, %rax
4635 xorq %rcx, %rax
4636 vpsrlq $8, %xmm12, %xmm10
4637 vpsllq $56, %xmm12, %xmm11
4638 # rnd_0: 3 - 3
4639 andq %r14, %rdx
4640 addq %rax, %r9
4641 rorxq $28, %r10, %rax
4642 vpor %xmm9, %xmm8, %xmm8
4643 vpor %xmm11, %xmm10, %xmm10
4644 # rnd_0: 4 - 4
4645 rorxq $34, %r10, %rcx
4646 xorq %r8, %rdx
4647 xorq %rax, %rcx
4648 vpsrlq $7, %xmm12, %xmm11
4649 vpxor %xmm10, %xmm8, %xmm8
4650 # rnd_0: 5 - 5
4651 rorxq $39, %r10, %rax
4652 addq %rdx, %r9
4653 xorq %rcx, %rax
4654 vpxor %xmm11, %xmm8, %xmm8
4655 vpaddq %xmm7, %xmm13, %xmm7
4656 # rnd_0: 6 - 7
4657 movq %r11, %rdx
4658 addq %r9, %r13
4659 xorq %r10, %rdx
4660 andq %rdx, %rbx
4661 addq %rax, %r9
4662 xorq %r11, %rbx
4663 vpaddq %xmm7, %xmm8, %xmm7
4664 # rnd_1: 0 - 0
4665 rorxq $14, %r13, %rax
4666 rorxq $18, %r13, %rcx
4667 addq %rbx, %r9
4668 vpsrlq $19, %xmm6, %xmm8
4669 vpsllq $45, %xmm6, %xmm9
4670 # rnd_1: 1 - 1
4671 addq 120(%rsp), %r8
4672 movq %r14, %rbx
4673 xorq %rax, %rcx
4674 vpsrlq $61, %xmm6, %xmm10
4675 vpsllq $3, %xmm6, %xmm11
4676 # rnd_1: 2 - 2
4677 xorq %r15, %rbx
4678 rorxq $41, %r13, %rax
4679 xorq %rcx, %rax
4680 vpor %xmm9, %xmm8, %xmm8
4681 vpor %xmm11, %xmm10, %xmm10
4682 # rnd_1: 3 - 4
4683 andq %r13, %rbx
4684 addq %rax, %r8
4685 rorxq $28, %r9, %rax
4686 rorxq $34, %r9, %rcx
4687 xorq %r15, %rbx
4688 xorq %rax, %rcx
4689 vpxor %xmm10, %xmm8, %xmm8
4690 vpsrlq $6, %xmm6, %xmm11
4691 # rnd_1: 5 - 6
4692 rorxq $39, %r9, %rax
4693 addq %rbx, %r8
4694 xorq %rcx, %rax
4695 movq %r10, %rbx
4696 addq %r8, %r12
4697 xorq %r9, %rbx
4698 vpxor %xmm11, %xmm8, %xmm8
4699 # rnd_1: 7 - 7
4700 andq %rbx, %rdx
4701 addq %rax, %r8
4702 xorq %r10, %rdx
4703 vpaddq %xmm7, %xmm8, %xmm7
4704 # msg_sched done: 14-15
4705 movq 136(%rsp), %rcx
4706 vpaddq (%rcx), %xmm0, %xmm8
4707 vpaddq 16(%rcx), %xmm1, %xmm9
4708 vmovdqu %xmm8, (%rsp)
4709 vmovdqu %xmm9, 16(%rsp)
4710 vpaddq 32(%rcx), %xmm2, %xmm8
4711 vpaddq 48(%rcx), %xmm3, %xmm9
4712 vmovdqu %xmm8, 32(%rsp)
4713 vmovdqu %xmm9, 48(%rsp)
4714 vpaddq 64(%rcx), %xmm4, %xmm8
4715 vpaddq 80(%rcx), %xmm5, %xmm9
4716 vmovdqu %xmm8, 64(%rsp)
4717 vmovdqu %xmm9, 80(%rsp)
4718 vpaddq 96(%rcx), %xmm6, %xmm8
4719 vpaddq 112(%rcx), %xmm7, %xmm9
4720 vmovdqu %xmm8, 96(%rsp)
4721 vmovdqu %xmm9, 112(%rsp)
4722 subl $0x01, 128(%rsp)
4723 jne L_sha512_len_avx1_rorx_start
4724 vpaddq (%rcx), %xmm0, %xmm8
4725 vpaddq 16(%rcx), %xmm1, %xmm9
4726 vmovdqu %xmm8, (%rsp)
4727 vmovdqu %xmm9, 16(%rsp)
4728 vpaddq 32(%rcx), %xmm2, %xmm8
4729 vpaddq 48(%rcx), %xmm3, %xmm9
4730 vmovdqu %xmm8, 32(%rsp)
4731 vmovdqu %xmm9, 48(%rsp)
4732 vpaddq 64(%rcx), %xmm4, %xmm8
4733 vpaddq 80(%rcx), %xmm5, %xmm9
4734 vmovdqu %xmm8, 64(%rsp)
4735 vmovdqu %xmm9, 80(%rsp)
4736 vpaddq 96(%rcx), %xmm6, %xmm8
4737 vpaddq 112(%rcx), %xmm7, %xmm9
4738 vmovdqu %xmm8, 96(%rsp)
4739 vmovdqu %xmm9, 112(%rsp)
4740 # rnd_all_2: 0-1
4741 # rnd_0: 0 - 7
4742 rorxq $14, %r12, %rax
4743 rorxq $18, %r12, %rcx
4744 addq %rdx, %r8
4745 addq (%rsp), %r15
4746 movq %r13, %rdx
4747 xorq %rax, %rcx
4748 xorq %r14, %rdx
4749 rorxq $41, %r12, %rax
4750 xorq %rcx, %rax
4751 andq %r12, %rdx
4752 addq %rax, %r15
4753 rorxq $28, %r8, %rax
4754 rorxq $34, %r8, %rcx
4755 xorq %r14, %rdx
4756 xorq %rax, %rcx
4757 rorxq $39, %r8, %rax
4758 addq %rdx, %r15
4759 xorq %rcx, %rax
4760 movq %r9, %rdx
4761 addq %r15, %r11
4762 xorq %r8, %rdx
4763 andq %rdx, %rbx
4764 addq %rax, %r15
4765 xorq %r9, %rbx
4766 # rnd_1: 0 - 7
4767 rorxq $14, %r11, %rax
4768 rorxq $18, %r11, %rcx
4769 addq %rbx, %r15
4770 addq 8(%rsp), %r14
4771 movq %r12, %rbx
4772 xorq %rax, %rcx
4773 xorq %r13, %rbx
4774 rorxq $41, %r11, %rax
4775 xorq %rcx, %rax
4776 andq %r11, %rbx
4777 addq %rax, %r14
4778 rorxq $28, %r15, %rax
4779 rorxq $34, %r15, %rcx
4780 xorq %r13, %rbx
4781 xorq %rax, %rcx
4782 rorxq $39, %r15, %rax
4783 addq %rbx, %r14
4784 xorq %rcx, %rax
4785 movq %r8, %rbx
4786 addq %r14, %r10
4787 xorq %r15, %rbx
4788 andq %rbx, %rdx
4789 addq %rax, %r14
4790 xorq %r8, %rdx
4791 # rnd_all_2: 2-3
4792 # rnd_0: 0 - 7
4793 rorxq $14, %r10, %rax
4794 rorxq $18, %r10, %rcx
4795 addq %rdx, %r14
4796 addq 16(%rsp), %r13
4797 movq %r11, %rdx
4798 xorq %rax, %rcx
4799 xorq %r12, %rdx
4800 rorxq $41, %r10, %rax
4801 xorq %rcx, %rax
4802 andq %r10, %rdx
4803 addq %rax, %r13
4804 rorxq $28, %r14, %rax
4805 rorxq $34, %r14, %rcx
4806 xorq %r12, %rdx
4807 xorq %rax, %rcx
4808 rorxq $39, %r14, %rax
4809 addq %rdx, %r13
4810 xorq %rcx, %rax
4811 movq %r15, %rdx
4812 addq %r13, %r9
4813 xorq %r14, %rdx
4814 andq %rdx, %rbx
4815 addq %rax, %r13
4816 xorq %r15, %rbx
4817 # rnd_1: 0 - 7
4818 rorxq $14, %r9, %rax
4819 rorxq $18, %r9, %rcx
4820 addq %rbx, %r13
4821 addq 24(%rsp), %r12
4822 movq %r10, %rbx
4823 xorq %rax, %rcx
4824 xorq %r11, %rbx
4825 rorxq $41, %r9, %rax
4826 xorq %rcx, %rax
4827 andq %r9, %rbx
4828 addq %rax, %r12
4829 rorxq $28, %r13, %rax
4830 rorxq $34, %r13, %rcx
4831 xorq %r11, %rbx
4832 xorq %rax, %rcx
4833 rorxq $39, %r13, %rax
4834 addq %rbx, %r12
4835 xorq %rcx, %rax
4836 movq %r14, %rbx
4837 addq %r12, %r8
4838 xorq %r13, %rbx
4839 andq %rbx, %rdx
4840 addq %rax, %r12
4841 xorq %r14, %rdx
4842 # rnd_all_2: 4-5
4843 # rnd_0: 0 - 7
4844 rorxq $14, %r8, %rax
4845 rorxq $18, %r8, %rcx
4846 addq %rdx, %r12
4847 addq 32(%rsp), %r11
4848 movq %r9, %rdx
4849 xorq %rax, %rcx
4850 xorq %r10, %rdx
4851 rorxq $41, %r8, %rax
4852 xorq %rcx, %rax
4853 andq %r8, %rdx
4854 addq %rax, %r11
4855 rorxq $28, %r12, %rax
4856 rorxq $34, %r12, %rcx
4857 xorq %r10, %rdx
4858 xorq %rax, %rcx
4859 rorxq $39, %r12, %rax
4860 addq %rdx, %r11
4861 xorq %rcx, %rax
4862 movq %r13, %rdx
4863 addq %r11, %r15
4864 xorq %r12, %rdx
4865 andq %rdx, %rbx
4866 addq %rax, %r11
4867 xorq %r13, %rbx
4868 # rnd_1: 0 - 7
4869 rorxq $14, %r15, %rax
4870 rorxq $18, %r15, %rcx
4871 addq %rbx, %r11
4872 addq 40(%rsp), %r10
4873 movq %r8, %rbx
4874 xorq %rax, %rcx
4875 xorq %r9, %rbx
4876 rorxq $41, %r15, %rax
4877 xorq %rcx, %rax
4878 andq %r15, %rbx
4879 addq %rax, %r10
4880 rorxq $28, %r11, %rax
4881 rorxq $34, %r11, %rcx
4882 xorq %r9, %rbx
4883 xorq %rax, %rcx
4884 rorxq $39, %r11, %rax
4885 addq %rbx, %r10
4886 xorq %rcx, %rax
4887 movq %r12, %rbx
4888 addq %r10, %r14
4889 xorq %r11, %rbx
4890 andq %rbx, %rdx
4891 addq %rax, %r10
4892 xorq %r12, %rdx
4893 # rnd_all_2: 6-7
4894 # rnd_0: 0 - 7
4895 rorxq $14, %r14, %rax
4896 rorxq $18, %r14, %rcx
4897 addq %rdx, %r10
4898 addq 48(%rsp), %r9
4899 movq %r15, %rdx
4900 xorq %rax, %rcx
4901 xorq %r8, %rdx
4902 rorxq $41, %r14, %rax
4903 xorq %rcx, %rax
4904 andq %r14, %rdx
4905 addq %rax, %r9
4906 rorxq $28, %r10, %rax
4907 rorxq $34, %r10, %rcx
4908 xorq %r8, %rdx
4909 xorq %rax, %rcx
4910 rorxq $39, %r10, %rax
4911 addq %rdx, %r9
4912 xorq %rcx, %rax
4913 movq %r11, %rdx
4914 addq %r9, %r13
4915 xorq %r10, %rdx
4916 andq %rdx, %rbx
4917 addq %rax, %r9
4918 xorq %r11, %rbx
4919 # rnd_1: 0 - 7
4920 rorxq $14, %r13, %rax
4921 rorxq $18, %r13, %rcx
4922 addq %rbx, %r9
4923 addq 56(%rsp), %r8
4924 movq %r14, %rbx
4925 xorq %rax, %rcx
4926 xorq %r15, %rbx
4927 rorxq $41, %r13, %rax
4928 xorq %rcx, %rax
4929 andq %r13, %rbx
4930 addq %rax, %r8
4931 rorxq $28, %r9, %rax
4932 rorxq $34, %r9, %rcx
4933 xorq %r15, %rbx
4934 xorq %rax, %rcx
4935 rorxq $39, %r9, %rax
4936 addq %rbx, %r8
4937 xorq %rcx, %rax
4938 movq %r10, %rbx
4939 addq %r8, %r12
4940 xorq %r9, %rbx
4941 andq %rbx, %rdx
4942 addq %rax, %r8
4943 xorq %r10, %rdx
4944 # rnd_all_2: 8-9
4945 # rnd_0: 0 - 7
4946 rorxq $14, %r12, %rax
4947 rorxq $18, %r12, %rcx
4948 addq %rdx, %r8
4949 addq 64(%rsp), %r15
4950 movq %r13, %rdx
4951 xorq %rax, %rcx
4952 xorq %r14, %rdx
4953 rorxq $41, %r12, %rax
4954 xorq %rcx, %rax
4955 andq %r12, %rdx
4956 addq %rax, %r15
4957 rorxq $28, %r8, %rax
4958 rorxq $34, %r8, %rcx
4959 xorq %r14, %rdx
4960 xorq %rax, %rcx
4961 rorxq $39, %r8, %rax
4962 addq %rdx, %r15
4963 xorq %rcx, %rax
4964 movq %r9, %rdx
4965 addq %r15, %r11
4966 xorq %r8, %rdx
4967 andq %rdx, %rbx
4968 addq %rax, %r15
4969 xorq %r9, %rbx
4970 # rnd_1: 0 - 7
4971 rorxq $14, %r11, %rax
4972 rorxq $18, %r11, %rcx
4973 addq %rbx, %r15
4974 addq 72(%rsp), %r14
4975 movq %r12, %rbx
4976 xorq %rax, %rcx
4977 xorq %r13, %rbx
4978 rorxq $41, %r11, %rax
4979 xorq %rcx, %rax
4980 andq %r11, %rbx
4981 addq %rax, %r14
4982 rorxq $28, %r15, %rax
4983 rorxq $34, %r15, %rcx
4984 xorq %r13, %rbx
4985 xorq %rax, %rcx
4986 rorxq $39, %r15, %rax
4987 addq %rbx, %r14
4988 xorq %rcx, %rax
4989 movq %r8, %rbx
4990 addq %r14, %r10
4991 xorq %r15, %rbx
4992 andq %rbx, %rdx
4993 addq %rax, %r14
4994 xorq %r8, %rdx
4995 # rnd_all_2: 10-11
4996 # rnd_0: 0 - 7
4997 rorxq $14, %r10, %rax
4998 rorxq $18, %r10, %rcx
4999 addq %rdx, %r14
5000 addq 80(%rsp), %r13
5001 movq %r11, %rdx
5002 xorq %rax, %rcx
5003 xorq %r12, %rdx
5004 rorxq $41, %r10, %rax
5005 xorq %rcx, %rax
5006 andq %r10, %rdx
5007 addq %rax, %r13
5008 rorxq $28, %r14, %rax
5009 rorxq $34, %r14, %rcx
5010 xorq %r12, %rdx
5011 xorq %rax, %rcx
5012 rorxq $39, %r14, %rax
5013 addq %rdx, %r13
5014 xorq %rcx, %rax
5015 movq %r15, %rdx
5016 addq %r13, %r9
5017 xorq %r14, %rdx
5018 andq %rdx, %rbx
5019 addq %rax, %r13
5020 xorq %r15, %rbx
5021 # rnd_1: 0 - 7
5022 rorxq $14, %r9, %rax
5023 rorxq $18, %r9, %rcx
5024 addq %rbx, %r13
5025 addq 88(%rsp), %r12
5026 movq %r10, %rbx
5027 xorq %rax, %rcx
5028 xorq %r11, %rbx
5029 rorxq $41, %r9, %rax
5030 xorq %rcx, %rax
5031 andq %r9, %rbx
5032 addq %rax, %r12
5033 rorxq $28, %r13, %rax
5034 rorxq $34, %r13, %rcx
5035 xorq %r11, %rbx
5036 xorq %rax, %rcx
5037 rorxq $39, %r13, %rax
5038 addq %rbx, %r12
5039 xorq %rcx, %rax
5040 movq %r14, %rbx
5041 addq %r12, %r8
5042 xorq %r13, %rbx
5043 andq %rbx, %rdx
5044 addq %rax, %r12
5045 xorq %r14, %rdx
5046 # rnd_all_2: 12-13
5047 # rnd_0: 0 - 7
5048 rorxq $14, %r8, %rax
5049 rorxq $18, %r8, %rcx
5050 addq %rdx, %r12
5051 addq 96(%rsp), %r11
5052 movq %r9, %rdx
5053 xorq %rax, %rcx
5054 xorq %r10, %rdx
5055 rorxq $41, %r8, %rax
5056 xorq %rcx, %rax
5057 andq %r8, %rdx
5058 addq %rax, %r11
5059 rorxq $28, %r12, %rax
5060 rorxq $34, %r12, %rcx
5061 xorq %r10, %rdx
5062 xorq %rax, %rcx
5063 rorxq $39, %r12, %rax
5064 addq %rdx, %r11
5065 xorq %rcx, %rax
5066 movq %r13, %rdx
5067 addq %r11, %r15
5068 xorq %r12, %rdx
5069 andq %rdx, %rbx
5070 addq %rax, %r11
5071 xorq %r13, %rbx
5072 # rnd_1: 0 - 7
5073 rorxq $14, %r15, %rax
5074 rorxq $18, %r15, %rcx
5075 addq %rbx, %r11
5076 addq 104(%rsp), %r10
5077 movq %r8, %rbx
5078 xorq %rax, %rcx
5079 xorq %r9, %rbx
5080 rorxq $41, %r15, %rax
5081 xorq %rcx, %rax
5082 andq %r15, %rbx
5083 addq %rax, %r10
5084 rorxq $28, %r11, %rax
5085 rorxq $34, %r11, %rcx
5086 xorq %r9, %rbx
5087 xorq %rax, %rcx
5088 rorxq $39, %r11, %rax
5089 addq %rbx, %r10
5090 xorq %rcx, %rax
5091 movq %r12, %rbx
5092 addq %r10, %r14
5093 xorq %r11, %rbx
5094 andq %rbx, %rdx
5095 addq %rax, %r10
5096 xorq %r12, %rdx
5097 # rnd_all_2: 14-15
5098 # rnd_0: 0 - 7
5099 rorxq $14, %r14, %rax
5100 rorxq $18, %r14, %rcx
5101 addq %rdx, %r10
5102 addq 112(%rsp), %r9
5103 movq %r15, %rdx
5104 xorq %rax, %rcx
5105 xorq %r8, %rdx
5106 rorxq $41, %r14, %rax
5107 xorq %rcx, %rax
5108 andq %r14, %rdx
5109 addq %rax, %r9
5110 rorxq $28, %r10, %rax
5111 rorxq $34, %r10, %rcx
5112 xorq %r8, %rdx
5113 xorq %rax, %rcx
5114 rorxq $39, %r10, %rax
5115 addq %rdx, %r9
5116 xorq %rcx, %rax
5117 movq %r11, %rdx
5118 addq %r9, %r13
5119 xorq %r10, %rdx
5120 andq %rdx, %rbx
5121 addq %rax, %r9
5122 xorq %r11, %rbx
5123 # rnd_1: 0 - 7
5124 rorxq $14, %r13, %rax
5125 rorxq $18, %r13, %rcx
5126 addq %rbx, %r9
5127 addq 120(%rsp), %r8
5128 movq %r14, %rbx
5129 xorq %rax, %rcx
5130 xorq %r15, %rbx
5131 rorxq $41, %r13, %rax
5132 xorq %rcx, %rax
5133 andq %r13, %rbx
5134 addq %rax, %r8
5135 rorxq $28, %r9, %rax
5136 rorxq $34, %r9, %rcx
5137 xorq %r15, %rbx
5138 xorq %rax, %rcx
5139 rorxq $39, %r9, %rax
5140 addq %rbx, %r8
5141 xorq %rcx, %rax
5142 movq %r10, %rbx
5143 addq %r8, %r12
5144 xorq %r9, %rbx
5145 andq %rbx, %rdx
5146 addq %rax, %r8
5147 xorq %r10, %rdx
5148 addq %rdx, %r8
5149 addq (%rdi), %r8
5150 addq 8(%rdi), %r9
5151 addq 16(%rdi), %r10
5152 addq 24(%rdi), %r11
5153 addq 32(%rdi), %r12
5154 addq 40(%rdi), %r13
5155 addq 48(%rdi), %r14
5156 addq 56(%rdi), %r15
5157 leaq L_avx1_rorx_sha512_k(%rip), %rcx
5158 addq $0x80, %rsi
5159 subl $0x80, %ebp
5160 movq %r8, (%rdi)
5161 movq %r9, 8(%rdi)
5162 movq %r10, 16(%rdi)
5163 movq %r11, 24(%rdi)
5164 movq %r12, 32(%rdi)
5165 movq %r13, 40(%rdi)
5166 movq %r14, 48(%rdi)
5167 movq %r15, 56(%rdi)
5168 jnz L_sha512_len_avx1_rorx_begin
5169 xorq %rax, %rax
5170 addq $0x90, %rsp
5171 popq %rbp
5172 popq %r15
5173 popq %r14
5174 popq %r13
5175 popq %r12
5176 popq %rbx
5177 repz retq
5178#ifndef __APPLE__
5179.size Transform_Sha512_AVX1_RORX_Len,.-Transform_Sha512_AVX1_RORX_Len
5180#endif /* __APPLE__ */
5181#endif /* HAVE_INTEL_AVX1 */
5182#ifdef HAVE_INTEL_AVX2
5183#ifndef __APPLE__
5184.data
5185#else
5186.section __DATA,__data
5187#endif /* __APPLE__ */
5188#ifndef __APPLE__
5189.align 32
5190#else
5191.p2align 5
5192#endif /* __APPLE__ */
5193L_avx2_sha512_k:
5194.quad 0x428a2f98d728ae22,0x7137449123ef65cd
5195.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
5196.quad 0x3956c25bf348b538,0x59f111f1b605d019
5197.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
5198.quad 0xd807aa98a3030242,0x12835b0145706fbe
5199.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
5200.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
5201.quad 0x9bdc06a725c71235,0xc19bf174cf692694
5202.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
5203.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
5204.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
5205.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
5206.quad 0x983e5152ee66dfab,0xa831c66d2db43210
5207.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
5208.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
5209.quad 0x06ca6351e003826f,0x142929670a0e6e70
5210.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
5211.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
5212.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
5213.quad 0x81c2c92e47edaee6,0x92722c851482353b
5214.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
5215.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
5216.quad 0xd192e819d6ef5218,0xd69906245565a910
5217.quad 0xf40e35855771202a,0x106aa07032bbd1b8
5218.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
5219.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
5220.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
5221.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
5222.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
5223.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
5224.quad 0x90befffa23631e28,0xa4506cebde82bde9
5225.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
5226.quad 0xca273eceea26619c,0xd186b8c721c0c207
5227.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
5228.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
5229.quad 0x113f9804bef90dae,0x1b710b35131c471b
5230.quad 0x28db77f523047d84,0x32caab7b40c72493
5231.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
5232.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
5233.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
5234#ifndef __APPLE__
5235.data
5236#else
5237.section __DATA,__data
5238#endif /* __APPLE__ */
5239#ifndef __APPLE__
5240.align 32
5241#else
5242.p2align 5
5243#endif /* __APPLE__ */
5244L_avx2_sha512_k_2:
5245.quad 0x428a2f98d728ae22,0x7137449123ef65cd
5246.quad 0x428a2f98d728ae22,0x7137449123ef65cd
5247.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
5248.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
5249.quad 0x3956c25bf348b538,0x59f111f1b605d019
5250.quad 0x3956c25bf348b538,0x59f111f1b605d019
5251.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
5252.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
5253.quad 0xd807aa98a3030242,0x12835b0145706fbe
5254.quad 0xd807aa98a3030242,0x12835b0145706fbe
5255.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
5256.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
5257.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
5258.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
5259.quad 0x9bdc06a725c71235,0xc19bf174cf692694
5260.quad 0x9bdc06a725c71235,0xc19bf174cf692694
5261.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
5262.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
5263.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
5264.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
5265.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
5266.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
5267.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
5268.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
5269.quad 0x983e5152ee66dfab,0xa831c66d2db43210
5270.quad 0x983e5152ee66dfab,0xa831c66d2db43210
5271.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
5272.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
5273.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
5274.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
5275.quad 0x06ca6351e003826f,0x142929670a0e6e70
5276.quad 0x06ca6351e003826f,0x142929670a0e6e70
5277.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
5278.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
5279.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
5280.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
5281.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
5282.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
5283.quad 0x81c2c92e47edaee6,0x92722c851482353b
5284.quad 0x81c2c92e47edaee6,0x92722c851482353b
5285.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
5286.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
5287.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
5288.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
5289.quad 0xd192e819d6ef5218,0xd69906245565a910
5290.quad 0xd192e819d6ef5218,0xd69906245565a910
5291.quad 0xf40e35855771202a,0x106aa07032bbd1b8
5292.quad 0xf40e35855771202a,0x106aa07032bbd1b8
5293.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
5294.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
5295.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
5296.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
5297.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
5298.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
5299.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
5300.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
5301.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
5302.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
5303.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
5304.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
5305.quad 0x90befffa23631e28,0xa4506cebde82bde9
5306.quad 0x90befffa23631e28,0xa4506cebde82bde9
5307.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
5308.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
5309.quad 0xca273eceea26619c,0xd186b8c721c0c207
5310.quad 0xca273eceea26619c,0xd186b8c721c0c207
5311.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
5312.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
5313.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
5314.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
5315.quad 0x113f9804bef90dae,0x1b710b35131c471b
5316.quad 0x113f9804bef90dae,0x1b710b35131c471b
5317.quad 0x28db77f523047d84,0x32caab7b40c72493
5318.quad 0x28db77f523047d84,0x32caab7b40c72493
5319.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
5320.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
5321.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
5322.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
5323.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
5324.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
5325#ifndef __APPLE__
5326.data
5327#else
5328.section __DATA,__data
5329#endif /* __APPLE__ */
5330#ifndef __APPLE__
5331.align 8
5332#else
5333.p2align 3
5334#endif /* __APPLE__ */
5335L_avx2_sha512_k_2_end:
5336.quad 1024+L_avx2_sha512_k_2
5337#ifndef __APPLE__
5338.data
5339#else
5340.section __DATA,__data
5341#endif /* __APPLE__ */
5342#ifndef __APPLE__
5343.align 32
5344#else
5345.p2align 5
5346#endif /* __APPLE__ */
5347L_avx2_sha512_flip_mask:
5348.quad 0x0001020304050607,0x08090a0b0c0d0e0f
5349.quad 0x0001020304050607,0x08090a0b0c0d0e0f
5350#ifndef __APPLE__
5351.text
5352.globl Transform_Sha512_AVX2
5353.type Transform_Sha512_AVX2,@function
5354.align 16
5355Transform_Sha512_AVX2:
5356#else
5357.section __TEXT,__text
5358.globl _Transform_Sha512_AVX2
5359.p2align 4
5360_Transform_Sha512_AVX2:
5361#endif /* __APPLE__ */
5362 pushq %rbx
5363 pushq %r12
5364 pushq %r13
5365 pushq %r14
5366 pushq %r15
5367 subq $0x88, %rsp
5368 leaq 64(%rdi), %rax
5369 vmovdqa L_avx2_sha512_flip_mask(%rip), %ymm15
5370 movq (%rdi), %r8
5371 movq 8(%rdi), %r9
5372 movq 16(%rdi), %r10
5373 movq 24(%rdi), %r11
5374 movq 32(%rdi), %r12
5375 movq 40(%rdi), %r13
5376 movq 48(%rdi), %r14
5377 movq 56(%rdi), %r15
5378 vmovdqu (%rax), %ymm0
5379 vmovdqu 32(%rax), %ymm1
5380 vpshufb %ymm15, %ymm0, %ymm0
5381 vpshufb %ymm15, %ymm1, %ymm1
5382 vmovdqu 64(%rax), %ymm2
5383 vmovdqu 96(%rax), %ymm3
5384 vpshufb %ymm15, %ymm2, %ymm2
5385 vpshufb %ymm15, %ymm3, %ymm3
5386 movl $4, 128(%rsp)
5387 leaq L_avx2_sha512_k(%rip), %rsi
5388 movq %r9, %rbx
5389 movq %r12, %rax
5390 xorq %r10, %rbx
5391 vpaddq (%rsi), %ymm0, %ymm8
5392 vpaddq 32(%rsi), %ymm1, %ymm9
5393 vmovdqu %ymm8, (%rsp)
5394 vmovdqu %ymm9, 32(%rsp)
5395 vpaddq 64(%rsi), %ymm2, %ymm8
5396 vpaddq 96(%rsi), %ymm3, %ymm9
5397 vmovdqu %ymm8, 64(%rsp)
5398 vmovdqu %ymm9, 96(%rsp)
5399 # Start of 16 rounds
5400L_sha256_avx2_start:
5401 addq $0x80, %rsi
5402 rorq $23, %rax
5403 vpblendd $3, %ymm1, %ymm0, %ymm12
5404 vpblendd $3, %ymm3, %ymm2, %ymm13
5405 movq %r8, %rdx
5406 movq %r13, %rcx
5407 addq (%rsp), %r15
5408 xorq %r14, %rcx
5409 xorq %r12, %rax
5410 andq %r12, %rcx
5411 vpermq $57, %ymm12, %ymm12
5412 rorq $4, %rax
5413 xorq %r14, %rcx
5414 vpermq $57, %ymm13, %ymm13
5415 xorq %r12, %rax
5416 addq %rcx, %r15
5417 rorq $14, %rax
5418 xorq %r9, %rdx
5419 vpsrlq $0x01, %ymm12, %ymm8
5420 addq %rax, %r15
5421 movq %r8, %rcx
5422 vpsllq $63, %ymm12, %ymm9
5423 andq %rdx, %rbx
5424 rorq $5, %rcx
5425 vpsrlq $8, %ymm12, %ymm10
5426 xorq %r8, %rcx
5427 xorq %r9, %rbx
5428 vpsllq $56, %ymm12, %ymm11
5429 rorq $6, %rcx
5430 addq %r15, %r11
5431 vpor %ymm9, %ymm8, %ymm8
5432 xorq %r8, %rcx
5433 addq %rbx, %r15
5434 vpor %ymm11, %ymm10, %ymm10
5435 rorq $28, %rcx
5436 movq %r11, %rax
5437 addq %rcx, %r15
5438 rorq $23, %rax
5439 vpsrlq $7, %ymm12, %ymm11
5440 movq %r15, %rbx
5441 movq %r12, %rcx
5442 vpxor %ymm10, %ymm8, %ymm8
5443 addq 8(%rsp), %r14
5444 xorq %r13, %rcx
5445 vpxor %ymm11, %ymm8, %ymm8
5446 xorq %r11, %rax
5447 andq %r11, %rcx
5448 vpaddq %ymm0, %ymm13, %ymm0
5449 rorq $4, %rax
5450 xorq %r13, %rcx
5451 vpaddq %ymm0, %ymm8, %ymm0
5452 xorq %r11, %rax
5453 addq %rcx, %r14
5454 vperm2I128 $0x81, %ymm3, %ymm3, %ymm14
5455 rorq $14, %rax
5456 xorq %r8, %rbx
5457 addq %rax, %r14
5458 movq %r15, %rcx
5459 andq %rbx, %rdx
5460 rorq $5, %rcx
5461 vpsrlq $19, %ymm14, %ymm8
5462 xorq %r15, %rcx
5463 xorq %r8, %rdx
5464 vpsllq $45, %ymm14, %ymm9
5465 rorq $6, %rcx
5466 addq %r14, %r10
5467 vpsrlq $61, %ymm14, %ymm10
5468 xorq %r15, %rcx
5469 addq %rdx, %r14
5470 vpsllq $3, %ymm14, %ymm11
5471 rorq $28, %rcx
5472 movq %r10, %rax
5473 addq %rcx, %r14
5474 rorq $23, %rax
5475 vpor %ymm9, %ymm8, %ymm8
5476 movq %r14, %rdx
5477 movq %r11, %rcx
5478 addq 16(%rsp), %r13
5479 xorq %r12, %rcx
5480 vpor %ymm11, %ymm10, %ymm10
5481 xorq %r10, %rax
5482 andq %r10, %rcx
5483 vpxor %ymm10, %ymm8, %ymm8
5484 rorq $4, %rax
5485 xorq %r12, %rcx
5486 vpsrlq $6, %ymm14, %ymm11
5487 xorq %r10, %rax
5488 addq %rcx, %r13
5489 vpxor %ymm11, %ymm8, %ymm8
5490 rorq $14, %rax
5491 xorq %r15, %rdx
5492 vpaddq %ymm0, %ymm8, %ymm0
5493 addq %rax, %r13
5494 movq %r14, %rcx
5495 andq %rdx, %rbx
5496 rorq $5, %rcx
5497 vperm2I128 $8, %ymm0, %ymm0, %ymm14
5498 xorq %r14, %rcx
5499 xorq %r15, %rbx
5500 rorq $6, %rcx
5501 addq %r13, %r9
5502 vpsrlq $19, %ymm14, %ymm8
5503 xorq %r14, %rcx
5504 addq %rbx, %r13
5505 vpsllq $45, %ymm14, %ymm9
5506 rorq $28, %rcx
5507 movq %r9, %rax
5508 addq %rcx, %r13
5509 rorq $23, %rax
5510 vpsrlq $61, %ymm14, %ymm10
5511 movq %r13, %rbx
5512 movq %r10, %rcx
5513 addq 24(%rsp), %r12
5514 xorq %r11, %rcx
5515 vpsllq $3, %ymm14, %ymm11
5516 xorq %r9, %rax
5517 andq %r9, %rcx
5518 vpor %ymm9, %ymm8, %ymm8
5519 rorq $4, %rax
5520 xorq %r11, %rcx
5521 vpor %ymm11, %ymm10, %ymm10
5522 xorq %r9, %rax
5523 addq %rcx, %r12
5524 vpxor %ymm10, %ymm8, %ymm8
5525 rorq $14, %rax
5526 xorq %r14, %rbx
5527 vpsrlq $6, %ymm14, %ymm11
5528 addq %rax, %r12
5529 movq %r13, %rcx
5530 vpxor %ymm11, %ymm8, %ymm8
5531 andq %rbx, %rdx
5532 rorq $5, %rcx
5533 vpaddq %ymm0, %ymm8, %ymm0
5534 xorq %r13, %rcx
5535 xorq %r14, %rdx
5536 rorq $6, %rcx
5537 addq %r12, %r8
5538 xorq %r13, %rcx
5539 addq %rdx, %r12
5540 rorq $28, %rcx
5541 movq %r8, %rax
5542 addq %rcx, %r12
5543 rorq $23, %rax
5544 vpblendd $3, %ymm2, %ymm1, %ymm12
5545 vpblendd $3, %ymm0, %ymm3, %ymm13
5546 movq %r12, %rdx
5547 movq %r9, %rcx
5548 addq 32(%rsp), %r11
5549 xorq %r10, %rcx
5550 xorq %r8, %rax
5551 andq %r8, %rcx
5552 vpermq $57, %ymm12, %ymm12
5553 rorq $4, %rax
5554 xorq %r10, %rcx
5555 vpermq $57, %ymm13, %ymm13
5556 xorq %r8, %rax
5557 addq %rcx, %r11
5558 rorq $14, %rax
5559 xorq %r13, %rdx
5560 vpsrlq $0x01, %ymm12, %ymm8
5561 addq %rax, %r11
5562 movq %r12, %rcx
5563 vpsllq $63, %ymm12, %ymm9
5564 andq %rdx, %rbx
5565 rorq $5, %rcx
5566 vpsrlq $8, %ymm12, %ymm10
5567 xorq %r12, %rcx
5568 xorq %r13, %rbx
5569 vpsllq $56, %ymm12, %ymm11
5570 rorq $6, %rcx
5571 addq %r11, %r15
5572 vpor %ymm9, %ymm8, %ymm8
5573 xorq %r12, %rcx
5574 addq %rbx, %r11
5575 vpor %ymm11, %ymm10, %ymm10
5576 rorq $28, %rcx
5577 movq %r15, %rax
5578 addq %rcx, %r11
5579 rorq $23, %rax
5580 vpsrlq $7, %ymm12, %ymm11
5581 movq %r11, %rbx
5582 movq %r8, %rcx
5583 vpxor %ymm10, %ymm8, %ymm8
5584 addq 40(%rsp), %r10
5585 xorq %r9, %rcx
5586 vpxor %ymm11, %ymm8, %ymm8
5587 xorq %r15, %rax
5588 andq %r15, %rcx
5589 vpaddq %ymm1, %ymm13, %ymm1
5590 rorq $4, %rax
5591 xorq %r9, %rcx
5592 vpaddq %ymm1, %ymm8, %ymm1
5593 xorq %r15, %rax
5594 addq %rcx, %r10
5595 vperm2I128 $0x81, %ymm0, %ymm0, %ymm14
5596 rorq $14, %rax
5597 xorq %r12, %rbx
5598 addq %rax, %r10
5599 movq %r11, %rcx
5600 andq %rbx, %rdx
5601 rorq $5, %rcx
5602 vpsrlq $19, %ymm14, %ymm8
5603 xorq %r11, %rcx
5604 xorq %r12, %rdx
5605 vpsllq $45, %ymm14, %ymm9
5606 rorq $6, %rcx
5607 addq %r10, %r14
5608 vpsrlq $61, %ymm14, %ymm10
5609 xorq %r11, %rcx
5610 addq %rdx, %r10
5611 vpsllq $3, %ymm14, %ymm11
5612 rorq $28, %rcx
5613 movq %r14, %rax
5614 addq %rcx, %r10
5615 rorq $23, %rax
5616 vpor %ymm9, %ymm8, %ymm8
5617 movq %r10, %rdx
5618 movq %r15, %rcx
5619 addq 48(%rsp), %r9
5620 xorq %r8, %rcx
5621 vpor %ymm11, %ymm10, %ymm10
5622 xorq %r14, %rax
5623 andq %r14, %rcx
5624 vpxor %ymm10, %ymm8, %ymm8
5625 rorq $4, %rax
5626 xorq %r8, %rcx
5627 vpsrlq $6, %ymm14, %ymm11
5628 xorq %r14, %rax
5629 addq %rcx, %r9
5630 vpxor %ymm11, %ymm8, %ymm8
5631 rorq $14, %rax
5632 xorq %r11, %rdx
5633 vpaddq %ymm1, %ymm8, %ymm1
5634 addq %rax, %r9
5635 movq %r10, %rcx
5636 andq %rdx, %rbx
5637 rorq $5, %rcx
5638 vperm2I128 $8, %ymm1, %ymm1, %ymm14
5639 xorq %r10, %rcx
5640 xorq %r11, %rbx
5641 rorq $6, %rcx
5642 addq %r9, %r13
5643 vpsrlq $19, %ymm14, %ymm8
5644 xorq %r10, %rcx
5645 addq %rbx, %r9
5646 vpsllq $45, %ymm14, %ymm9
5647 rorq $28, %rcx
5648 movq %r13, %rax
5649 addq %rcx, %r9
5650 rorq $23, %rax
5651 vpsrlq $61, %ymm14, %ymm10
5652 movq %r9, %rbx
5653 movq %r14, %rcx
5654 addq 56(%rsp), %r8
5655 xorq %r15, %rcx
5656 vpsllq $3, %ymm14, %ymm11
5657 xorq %r13, %rax
5658 andq %r13, %rcx
5659 vpor %ymm9, %ymm8, %ymm8
5660 rorq $4, %rax
5661 xorq %r15, %rcx
5662 vpor %ymm11, %ymm10, %ymm10
5663 xorq %r13, %rax
5664 addq %rcx, %r8
5665 vpxor %ymm10, %ymm8, %ymm8
5666 rorq $14, %rax
5667 xorq %r10, %rbx
5668 vpsrlq $6, %ymm14, %ymm11
5669 addq %rax, %r8
5670 movq %r9, %rcx
5671 vpxor %ymm11, %ymm8, %ymm8
5672 andq %rbx, %rdx
5673 rorq $5, %rcx
5674 vpaddq %ymm1, %ymm8, %ymm1
5675 xorq %r9, %rcx
5676 xorq %r10, %rdx
5677 rorq $6, %rcx
5678 addq %r8, %r12
5679 xorq %r9, %rcx
5680 addq %rdx, %r8
5681 rorq $28, %rcx
5682 movq %r12, %rax
5683 addq %rcx, %r8
5684 rorq $23, %rax
5685 vpblendd $3, %ymm3, %ymm2, %ymm12
5686 vpblendd $3, %ymm1, %ymm0, %ymm13
5687 movq %r8, %rdx
5688 movq %r13, %rcx
5689 addq 64(%rsp), %r15
5690 xorq %r14, %rcx
5691 xorq %r12, %rax
5692 andq %r12, %rcx
5693 vpermq $57, %ymm12, %ymm12
5694 rorq $4, %rax
5695 xorq %r14, %rcx
5696 vpermq $57, %ymm13, %ymm13
5697 xorq %r12, %rax
5698 addq %rcx, %r15
5699 rorq $14, %rax
5700 xorq %r9, %rdx
5701 vpsrlq $0x01, %ymm12, %ymm8
5702 addq %rax, %r15
5703 movq %r8, %rcx
5704 vpsllq $63, %ymm12, %ymm9
5705 andq %rdx, %rbx
5706 rorq $5, %rcx
5707 vpsrlq $8, %ymm12, %ymm10
5708 xorq %r8, %rcx
5709 xorq %r9, %rbx
5710 vpsllq $56, %ymm12, %ymm11
5711 rorq $6, %rcx
5712 addq %r15, %r11
5713 vpor %ymm9, %ymm8, %ymm8
5714 xorq %r8, %rcx
5715 addq %rbx, %r15
5716 vpor %ymm11, %ymm10, %ymm10
5717 rorq $28, %rcx
5718 movq %r11, %rax
5719 addq %rcx, %r15
5720 rorq $23, %rax
5721 vpsrlq $7, %ymm12, %ymm11
5722 movq %r15, %rbx
5723 movq %r12, %rcx
5724 vpxor %ymm10, %ymm8, %ymm8
5725 addq 72(%rsp), %r14
5726 xorq %r13, %rcx
5727 vpxor %ymm11, %ymm8, %ymm8
5728 xorq %r11, %rax
5729 andq %r11, %rcx
5730 vpaddq %ymm2, %ymm13, %ymm2
5731 rorq $4, %rax
5732 xorq %r13, %rcx
5733 vpaddq %ymm2, %ymm8, %ymm2
5734 xorq %r11, %rax
5735 addq %rcx, %r14
5736 vperm2I128 $0x81, %ymm1, %ymm1, %ymm14
5737 rorq $14, %rax
5738 xorq %r8, %rbx
5739 addq %rax, %r14
5740 movq %r15, %rcx
5741 andq %rbx, %rdx
5742 rorq $5, %rcx
5743 vpsrlq $19, %ymm14, %ymm8
5744 xorq %r15, %rcx
5745 xorq %r8, %rdx
5746 vpsllq $45, %ymm14, %ymm9
5747 rorq $6, %rcx
5748 addq %r14, %r10
5749 vpsrlq $61, %ymm14, %ymm10
5750 xorq %r15, %rcx
5751 addq %rdx, %r14
5752 vpsllq $3, %ymm14, %ymm11
5753 rorq $28, %rcx
5754 movq %r10, %rax
5755 addq %rcx, %r14
5756 rorq $23, %rax
5757 vpor %ymm9, %ymm8, %ymm8
5758 movq %r14, %rdx
5759 movq %r11, %rcx
5760 addq 80(%rsp), %r13
5761 xorq %r12, %rcx
5762 vpor %ymm11, %ymm10, %ymm10
5763 xorq %r10, %rax
5764 andq %r10, %rcx
5765 vpxor %ymm10, %ymm8, %ymm8
5766 rorq $4, %rax
5767 xorq %r12, %rcx
5768 vpsrlq $6, %ymm14, %ymm11
5769 xorq %r10, %rax
5770 addq %rcx, %r13
5771 vpxor %ymm11, %ymm8, %ymm8
5772 rorq $14, %rax
5773 xorq %r15, %rdx
5774 vpaddq %ymm2, %ymm8, %ymm2
5775 addq %rax, %r13
5776 movq %r14, %rcx
5777 andq %rdx, %rbx
5778 rorq $5, %rcx
5779 vperm2I128 $8, %ymm2, %ymm2, %ymm14
5780 xorq %r14, %rcx
5781 xorq %r15, %rbx
5782 rorq $6, %rcx
5783 addq %r13, %r9
5784 vpsrlq $19, %ymm14, %ymm8
5785 xorq %r14, %rcx
5786 addq %rbx, %r13
5787 vpsllq $45, %ymm14, %ymm9
5788 rorq $28, %rcx
5789 movq %r9, %rax
5790 addq %rcx, %r13
5791 rorq $23, %rax
5792 vpsrlq $61, %ymm14, %ymm10
5793 movq %r13, %rbx
5794 movq %r10, %rcx
5795 addq 88(%rsp), %r12
5796 xorq %r11, %rcx
5797 vpsllq $3, %ymm14, %ymm11
5798 xorq %r9, %rax
5799 andq %r9, %rcx
5800 vpor %ymm9, %ymm8, %ymm8
5801 rorq $4, %rax
5802 xorq %r11, %rcx
5803 vpor %ymm11, %ymm10, %ymm10
5804 xorq %r9, %rax
5805 addq %rcx, %r12
5806 vpxor %ymm10, %ymm8, %ymm8
5807 rorq $14, %rax
5808 xorq %r14, %rbx
5809 vpsrlq $6, %ymm14, %ymm11
5810 addq %rax, %r12
5811 movq %r13, %rcx
5812 vpxor %ymm11, %ymm8, %ymm8
5813 andq %rbx, %rdx
5814 rorq $5, %rcx
5815 vpaddq %ymm2, %ymm8, %ymm2
5816 xorq %r13, %rcx
5817 xorq %r14, %rdx
5818 rorq $6, %rcx
5819 addq %r12, %r8
5820 xorq %r13, %rcx
5821 addq %rdx, %r12
5822 rorq $28, %rcx
5823 movq %r8, %rax
5824 addq %rcx, %r12
5825 rorq $23, %rax
5826 vpblendd $3, %ymm0, %ymm3, %ymm12
5827 vpblendd $3, %ymm2, %ymm1, %ymm13
5828 movq %r12, %rdx
5829 movq %r9, %rcx
5830 addq 96(%rsp), %r11
5831 xorq %r10, %rcx
5832 xorq %r8, %rax
5833 andq %r8, %rcx
5834 vpermq $57, %ymm12, %ymm12
5835 rorq $4, %rax
5836 xorq %r10, %rcx
5837 vpermq $57, %ymm13, %ymm13
5838 xorq %r8, %rax
5839 addq %rcx, %r11
5840 rorq $14, %rax
5841 xorq %r13, %rdx
5842 vpsrlq $0x01, %ymm12, %ymm8
5843 addq %rax, %r11
5844 movq %r12, %rcx
5845 vpsllq $63, %ymm12, %ymm9
5846 andq %rdx, %rbx
5847 rorq $5, %rcx
5848 vpsrlq $8, %ymm12, %ymm10
5849 xorq %r12, %rcx
5850 xorq %r13, %rbx
5851 vpsllq $56, %ymm12, %ymm11
5852 rorq $6, %rcx
5853 addq %r11, %r15
5854 vpor %ymm9, %ymm8, %ymm8
5855 xorq %r12, %rcx
5856 addq %rbx, %r11
5857 vpor %ymm11, %ymm10, %ymm10
5858 rorq $28, %rcx
5859 movq %r15, %rax
5860 addq %rcx, %r11
5861 rorq $23, %rax
5862 vpsrlq $7, %ymm12, %ymm11
5863 movq %r11, %rbx
5864 movq %r8, %rcx
5865 vpxor %ymm10, %ymm8, %ymm8
5866 addq 104(%rsp), %r10
5867 xorq %r9, %rcx
5868 vpxor %ymm11, %ymm8, %ymm8
5869 xorq %r15, %rax
5870 andq %r15, %rcx
5871 vpaddq %ymm3, %ymm13, %ymm3
5872 rorq $4, %rax
5873 xorq %r9, %rcx
5874 vpaddq %ymm3, %ymm8, %ymm3
5875 xorq %r15, %rax
5876 addq %rcx, %r10
5877 vperm2I128 $0x81, %ymm2, %ymm2, %ymm14
5878 rorq $14, %rax
5879 xorq %r12, %rbx
5880 addq %rax, %r10
5881 movq %r11, %rcx
5882 andq %rbx, %rdx
5883 rorq $5, %rcx
5884 vpsrlq $19, %ymm14, %ymm8
5885 xorq %r11, %rcx
5886 xorq %r12, %rdx
5887 vpsllq $45, %ymm14, %ymm9
5888 rorq $6, %rcx
5889 addq %r10, %r14
5890 vpsrlq $61, %ymm14, %ymm10
5891 xorq %r11, %rcx
5892 addq %rdx, %r10
5893 vpsllq $3, %ymm14, %ymm11
5894 rorq $28, %rcx
5895 movq %r14, %rax
5896 addq %rcx, %r10
5897 rorq $23, %rax
5898 vpor %ymm9, %ymm8, %ymm8
5899 movq %r10, %rdx
5900 movq %r15, %rcx
5901 addq 112(%rsp), %r9
5902 xorq %r8, %rcx
5903 vpor %ymm11, %ymm10, %ymm10
5904 xorq %r14, %rax
5905 andq %r14, %rcx
5906 vpxor %ymm10, %ymm8, %ymm8
5907 rorq $4, %rax
5908 xorq %r8, %rcx
5909 vpsrlq $6, %ymm14, %ymm11
5910 xorq %r14, %rax
5911 addq %rcx, %r9
5912 vpxor %ymm11, %ymm8, %ymm8
5913 rorq $14, %rax
5914 xorq %r11, %rdx
5915 vpaddq %ymm3, %ymm8, %ymm3
5916 addq %rax, %r9
5917 movq %r10, %rcx
5918 andq %rdx, %rbx
5919 rorq $5, %rcx
5920 vperm2I128 $8, %ymm3, %ymm3, %ymm14
5921 xorq %r10, %rcx
5922 xorq %r11, %rbx
5923 rorq $6, %rcx
5924 addq %r9, %r13
5925 vpsrlq $19, %ymm14, %ymm8
5926 xorq %r10, %rcx
5927 addq %rbx, %r9
5928 vpsllq $45, %ymm14, %ymm9
5929 rorq $28, %rcx
5930 movq %r13, %rax
5931 addq %rcx, %r9
5932 rorq $23, %rax
5933 vpsrlq $61, %ymm14, %ymm10
5934 movq %r9, %rbx
5935 movq %r14, %rcx
5936 addq 120(%rsp), %r8
5937 xorq %r15, %rcx
5938 vpsllq $3, %ymm14, %ymm11
5939 xorq %r13, %rax
5940 andq %r13, %rcx
5941 vpor %ymm9, %ymm8, %ymm8
5942 rorq $4, %rax
5943 xorq %r15, %rcx
5944 vpor %ymm11, %ymm10, %ymm10
5945 xorq %r13, %rax
5946 addq %rcx, %r8
5947 vpxor %ymm10, %ymm8, %ymm8
5948 rorq $14, %rax
5949 xorq %r10, %rbx
5950 vpsrlq $6, %ymm14, %ymm11
5951 addq %rax, %r8
5952 movq %r9, %rcx
5953 vpxor %ymm11, %ymm8, %ymm8
5954 andq %rbx, %rdx
5955 rorq $5, %rcx
5956 vpaddq %ymm3, %ymm8, %ymm3
5957 xorq %r9, %rcx
5958 xorq %r10, %rdx
5959 rorq $6, %rcx
5960 addq %r8, %r12
5961 xorq %r9, %rcx
5962 addq %rdx, %r8
5963 rorq $28, %rcx
5964 movq %r12, %rax
5965 addq %rcx, %r8
5966 vpaddq (%rsi), %ymm0, %ymm8
5967 vpaddq 32(%rsi), %ymm1, %ymm9
5968 vmovdqu %ymm8, (%rsp)
5969 vmovdqu %ymm9, 32(%rsp)
5970 vpaddq 64(%rsi), %ymm2, %ymm8
5971 vpaddq 96(%rsi), %ymm3, %ymm9
5972 vmovdqu %ymm8, 64(%rsp)
5973 vmovdqu %ymm9, 96(%rsp)
5974 subl $0x01, 128(%rsp)
5975 jne L_sha256_avx2_start
5976 rorq $23, %rax
5977 movq %r8, %rdx
5978 movq %r13, %rcx
5979 addq (%rsp), %r15
5980 xorq %r14, %rcx
5981 xorq %r12, %rax
5982 andq %r12, %rcx
5983 rorq $4, %rax
5984 xorq %r14, %rcx
5985 xorq %r12, %rax
5986 addq %rcx, %r15
5987 rorq $14, %rax
5988 xorq %r9, %rdx
5989 addq %rax, %r15
5990 movq %r8, %rcx
5991 andq %rdx, %rbx
5992 rorq $5, %rcx
5993 xorq %r8, %rcx
5994 xorq %r9, %rbx
5995 rorq $6, %rcx
5996 addq %r15, %r11
5997 xorq %r8, %rcx
5998 addq %rbx, %r15
5999 rorq $28, %rcx
6000 movq %r11, %rax
6001 addq %rcx, %r15
6002 rorq $23, %rax
6003 movq %r15, %rbx
6004 movq %r12, %rcx
6005 addq 8(%rsp), %r14
6006 xorq %r13, %rcx
6007 xorq %r11, %rax
6008 andq %r11, %rcx
6009 rorq $4, %rax
6010 xorq %r13, %rcx
6011 xorq %r11, %rax
6012 addq %rcx, %r14
6013 rorq $14, %rax
6014 xorq %r8, %rbx
6015 addq %rax, %r14
6016 movq %r15, %rcx
6017 andq %rbx, %rdx
6018 rorq $5, %rcx
6019 xorq %r15, %rcx
6020 xorq %r8, %rdx
6021 rorq $6, %rcx
6022 addq %r14, %r10
6023 xorq %r15, %rcx
6024 addq %rdx, %r14
6025 rorq $28, %rcx
6026 movq %r10, %rax
6027 addq %rcx, %r14
6028 rorq $23, %rax
6029 movq %r14, %rdx
6030 movq %r11, %rcx
6031 addq 16(%rsp), %r13
6032 xorq %r12, %rcx
6033 xorq %r10, %rax
6034 andq %r10, %rcx
6035 rorq $4, %rax
6036 xorq %r12, %rcx
6037 xorq %r10, %rax
6038 addq %rcx, %r13
6039 rorq $14, %rax
6040 xorq %r15, %rdx
6041 addq %rax, %r13
6042 movq %r14, %rcx
6043 andq %rdx, %rbx
6044 rorq $5, %rcx
6045 xorq %r14, %rcx
6046 xorq %r15, %rbx
6047 rorq $6, %rcx
6048 addq %r13, %r9
6049 xorq %r14, %rcx
6050 addq %rbx, %r13
6051 rorq $28, %rcx
6052 movq %r9, %rax
6053 addq %rcx, %r13
6054 rorq $23, %rax
6055 movq %r13, %rbx
6056 movq %r10, %rcx
6057 addq 24(%rsp), %r12
6058 xorq %r11, %rcx
6059 xorq %r9, %rax
6060 andq %r9, %rcx
6061 rorq $4, %rax
6062 xorq %r11, %rcx
6063 xorq %r9, %rax
6064 addq %rcx, %r12
6065 rorq $14, %rax
6066 xorq %r14, %rbx
6067 addq %rax, %r12
6068 movq %r13, %rcx
6069 andq %rbx, %rdx
6070 rorq $5, %rcx
6071 xorq %r13, %rcx
6072 xorq %r14, %rdx
6073 rorq $6, %rcx
6074 addq %r12, %r8
6075 xorq %r13, %rcx
6076 addq %rdx, %r12
6077 rorq $28, %rcx
6078 movq %r8, %rax
6079 addq %rcx, %r12
6080 rorq $23, %rax
6081 movq %r12, %rdx
6082 movq %r9, %rcx
6083 addq 32(%rsp), %r11
6084 xorq %r10, %rcx
6085 xorq %r8, %rax
6086 andq %r8, %rcx
6087 rorq $4, %rax
6088 xorq %r10, %rcx
6089 xorq %r8, %rax
6090 addq %rcx, %r11
6091 rorq $14, %rax
6092 xorq %r13, %rdx
6093 addq %rax, %r11
6094 movq %r12, %rcx
6095 andq %rdx, %rbx
6096 rorq $5, %rcx
6097 xorq %r12, %rcx
6098 xorq %r13, %rbx
6099 rorq $6, %rcx
6100 addq %r11, %r15
6101 xorq %r12, %rcx
6102 addq %rbx, %r11
6103 rorq $28, %rcx
6104 movq %r15, %rax
6105 addq %rcx, %r11
6106 rorq $23, %rax
6107 movq %r11, %rbx
6108 movq %r8, %rcx
6109 addq 40(%rsp), %r10
6110 xorq %r9, %rcx
6111 xorq %r15, %rax
6112 andq %r15, %rcx
6113 rorq $4, %rax
6114 xorq %r9, %rcx
6115 xorq %r15, %rax
6116 addq %rcx, %r10
6117 rorq $14, %rax
6118 xorq %r12, %rbx
6119 addq %rax, %r10
6120 movq %r11, %rcx
6121 andq %rbx, %rdx
6122 rorq $5, %rcx
6123 xorq %r11, %rcx
6124 xorq %r12, %rdx
6125 rorq $6, %rcx
6126 addq %r10, %r14
6127 xorq %r11, %rcx
6128 addq %rdx, %r10
6129 rorq $28, %rcx
6130 movq %r14, %rax
6131 addq %rcx, %r10
6132 rorq $23, %rax
6133 movq %r10, %rdx
6134 movq %r15, %rcx
6135 addq 48(%rsp), %r9
6136 xorq %r8, %rcx
6137 xorq %r14, %rax
6138 andq %r14, %rcx
6139 rorq $4, %rax
6140 xorq %r8, %rcx
6141 xorq %r14, %rax
6142 addq %rcx, %r9
6143 rorq $14, %rax
6144 xorq %r11, %rdx
6145 addq %rax, %r9
6146 movq %r10, %rcx
6147 andq %rdx, %rbx
6148 rorq $5, %rcx
6149 xorq %r10, %rcx
6150 xorq %r11, %rbx
6151 rorq $6, %rcx
6152 addq %r9, %r13
6153 xorq %r10, %rcx
6154 addq %rbx, %r9
6155 rorq $28, %rcx
6156 movq %r13, %rax
6157 addq %rcx, %r9
6158 rorq $23, %rax
6159 movq %r9, %rbx
6160 movq %r14, %rcx
6161 addq 56(%rsp), %r8
6162 xorq %r15, %rcx
6163 xorq %r13, %rax
6164 andq %r13, %rcx
6165 rorq $4, %rax
6166 xorq %r15, %rcx
6167 xorq %r13, %rax
6168 addq %rcx, %r8
6169 rorq $14, %rax
6170 xorq %r10, %rbx
6171 addq %rax, %r8
6172 movq %r9, %rcx
6173 andq %rbx, %rdx
6174 rorq $5, %rcx
6175 xorq %r9, %rcx
6176 xorq %r10, %rdx
6177 rorq $6, %rcx
6178 addq %r8, %r12
6179 xorq %r9, %rcx
6180 addq %rdx, %r8
6181 rorq $28, %rcx
6182 movq %r12, %rax
6183 addq %rcx, %r8
6184 rorq $23, %rax
6185 movq %r8, %rdx
6186 movq %r13, %rcx
6187 addq 64(%rsp), %r15
6188 xorq %r14, %rcx
6189 xorq %r12, %rax
6190 andq %r12, %rcx
6191 rorq $4, %rax
6192 xorq %r14, %rcx
6193 xorq %r12, %rax
6194 addq %rcx, %r15
6195 rorq $14, %rax
6196 xorq %r9, %rdx
6197 addq %rax, %r15
6198 movq %r8, %rcx
6199 andq %rdx, %rbx
6200 rorq $5, %rcx
6201 xorq %r8, %rcx
6202 xorq %r9, %rbx
6203 rorq $6, %rcx
6204 addq %r15, %r11
6205 xorq %r8, %rcx
6206 addq %rbx, %r15
6207 rorq $28, %rcx
6208 movq %r11, %rax
6209 addq %rcx, %r15
6210 rorq $23, %rax
6211 movq %r15, %rbx
6212 movq %r12, %rcx
6213 addq 72(%rsp), %r14
6214 xorq %r13, %rcx
6215 xorq %r11, %rax
6216 andq %r11, %rcx
6217 rorq $4, %rax
6218 xorq %r13, %rcx
6219 xorq %r11, %rax
6220 addq %rcx, %r14
6221 rorq $14, %rax
6222 xorq %r8, %rbx
6223 addq %rax, %r14
6224 movq %r15, %rcx
6225 andq %rbx, %rdx
6226 rorq $5, %rcx
6227 xorq %r15, %rcx
6228 xorq %r8, %rdx
6229 rorq $6, %rcx
6230 addq %r14, %r10
6231 xorq %r15, %rcx
6232 addq %rdx, %r14
6233 rorq $28, %rcx
6234 movq %r10, %rax
6235 addq %rcx, %r14
6236 rorq $23, %rax
6237 movq %r14, %rdx
6238 movq %r11, %rcx
6239 addq 80(%rsp), %r13
6240 xorq %r12, %rcx
6241 xorq %r10, %rax
6242 andq %r10, %rcx
6243 rorq $4, %rax
6244 xorq %r12, %rcx
6245 xorq %r10, %rax
6246 addq %rcx, %r13
6247 rorq $14, %rax
6248 xorq %r15, %rdx
6249 addq %rax, %r13
6250 movq %r14, %rcx
6251 andq %rdx, %rbx
6252 rorq $5, %rcx
6253 xorq %r14, %rcx
6254 xorq %r15, %rbx
6255 rorq $6, %rcx
6256 addq %r13, %r9
6257 xorq %r14, %rcx
6258 addq %rbx, %r13
6259 rorq $28, %rcx
6260 movq %r9, %rax
6261 addq %rcx, %r13
6262 rorq $23, %rax
6263 movq %r13, %rbx
6264 movq %r10, %rcx
6265 addq 88(%rsp), %r12
6266 xorq %r11, %rcx
6267 xorq %r9, %rax
6268 andq %r9, %rcx
6269 rorq $4, %rax
6270 xorq %r11, %rcx
6271 xorq %r9, %rax
6272 addq %rcx, %r12
6273 rorq $14, %rax
6274 xorq %r14, %rbx
6275 addq %rax, %r12
6276 movq %r13, %rcx
6277 andq %rbx, %rdx
6278 rorq $5, %rcx
6279 xorq %r13, %rcx
6280 xorq %r14, %rdx
6281 rorq $6, %rcx
6282 addq %r12, %r8
6283 xorq %r13, %rcx
6284 addq %rdx, %r12
6285 rorq $28, %rcx
6286 movq %r8, %rax
6287 addq %rcx, %r12
6288 rorq $23, %rax
6289 movq %r12, %rdx
6290 movq %r9, %rcx
6291 addq 96(%rsp), %r11
6292 xorq %r10, %rcx
6293 xorq %r8, %rax
6294 andq %r8, %rcx
6295 rorq $4, %rax
6296 xorq %r10, %rcx
6297 xorq %r8, %rax
6298 addq %rcx, %r11
6299 rorq $14, %rax
6300 xorq %r13, %rdx
6301 addq %rax, %r11
6302 movq %r12, %rcx
6303 andq %rdx, %rbx
6304 rorq $5, %rcx
6305 xorq %r12, %rcx
6306 xorq %r13, %rbx
6307 rorq $6, %rcx
6308 addq %r11, %r15
6309 xorq %r12, %rcx
6310 addq %rbx, %r11
6311 rorq $28, %rcx
6312 movq %r15, %rax
6313 addq %rcx, %r11
6314 rorq $23, %rax
6315 movq %r11, %rbx
6316 movq %r8, %rcx
6317 addq 104(%rsp), %r10
6318 xorq %r9, %rcx
6319 xorq %r15, %rax
6320 andq %r15, %rcx
6321 rorq $4, %rax
6322 xorq %r9, %rcx
6323 xorq %r15, %rax
6324 addq %rcx, %r10
6325 rorq $14, %rax
6326 xorq %r12, %rbx
6327 addq %rax, %r10
6328 movq %r11, %rcx
6329 andq %rbx, %rdx
6330 rorq $5, %rcx
6331 xorq %r11, %rcx
6332 xorq %r12, %rdx
6333 rorq $6, %rcx
6334 addq %r10, %r14
6335 xorq %r11, %rcx
6336 addq %rdx, %r10
6337 rorq $28, %rcx
6338 movq %r14, %rax
6339 addq %rcx, %r10
6340 rorq $23, %rax
6341 movq %r10, %rdx
6342 movq %r15, %rcx
6343 addq 112(%rsp), %r9
6344 xorq %r8, %rcx
6345 xorq %r14, %rax
6346 andq %r14, %rcx
6347 rorq $4, %rax
6348 xorq %r8, %rcx
6349 xorq %r14, %rax
6350 addq %rcx, %r9
6351 rorq $14, %rax
6352 xorq %r11, %rdx
6353 addq %rax, %r9
6354 movq %r10, %rcx
6355 andq %rdx, %rbx
6356 rorq $5, %rcx
6357 xorq %r10, %rcx
6358 xorq %r11, %rbx
6359 rorq $6, %rcx
6360 addq %r9, %r13
6361 xorq %r10, %rcx
6362 addq %rbx, %r9
6363 rorq $28, %rcx
6364 movq %r13, %rax
6365 addq %rcx, %r9
6366 rorq $23, %rax
6367 movq %r9, %rbx
6368 movq %r14, %rcx
6369 addq 120(%rsp), %r8
6370 xorq %r15, %rcx
6371 xorq %r13, %rax
6372 andq %r13, %rcx
6373 rorq $4, %rax
6374 xorq %r15, %rcx
6375 xorq %r13, %rax
6376 addq %rcx, %r8
6377 rorq $14, %rax
6378 xorq %r10, %rbx
6379 addq %rax, %r8
6380 movq %r9, %rcx
6381 andq %rbx, %rdx
6382 rorq $5, %rcx
6383 xorq %r9, %rcx
6384 xorq %r10, %rdx
6385 rorq $6, %rcx
6386 addq %r8, %r12
6387 xorq %r9, %rcx
6388 addq %rdx, %r8
6389 rorq $28, %rcx
6390 movq %r12, %rax
6391 addq %rcx, %r8
6392 addq %r8, (%rdi)
6393 addq %r9, 8(%rdi)
6394 addq %r10, 16(%rdi)
6395 addq %r11, 24(%rdi)
6396 addq %r12, 32(%rdi)
6397 addq %r13, 40(%rdi)
6398 addq %r14, 48(%rdi)
6399 addq %r15, 56(%rdi)
6400 xorq %rax, %rax
6401 vzeroupper
6402 addq $0x88, %rsp
6403 popq %r15
6404 popq %r14
6405 popq %r13
6406 popq %r12
6407 popq %rbx
6408 repz retq
6409#ifndef __APPLE__
6410.size Transform_Sha512_AVX2,.-Transform_Sha512_AVX2
6411#endif /* __APPLE__ */
6412#ifndef __APPLE__
6413.text
6414.globl Transform_Sha512_AVX2_Len
6415.type Transform_Sha512_AVX2_Len,@function
6416.align 16
6417Transform_Sha512_AVX2_Len:
6418#else
6419.section __TEXT,__text
6420.globl _Transform_Sha512_AVX2_Len
6421.p2align 4
6422_Transform_Sha512_AVX2_Len:
6423#endif /* __APPLE__ */
6424 pushq %rbx
6425 pushq %r12
6426 pushq %r13
6427 pushq %r14
6428 pushq %r15
6429 pushq %rbp
6430 movq %rsi, %rbp
6431 testb $0x80, %bpl
6432 je L_sha512_len_avx2_block
6433 movq 224(%rdi), %rbx
6434 vmovdqu (%rbx), %ymm0
6435 vmovdqu 32(%rbx), %ymm1
6436 vmovdqu 64(%rbx), %ymm2
6437 vmovdqu 96(%rbx), %ymm3
6438 vmovups %ymm0, 64(%rdi)
6439 vmovups %ymm1, 96(%rdi)
6440 vmovups %ymm2, 128(%rdi)
6441 vmovups %ymm3, 160(%rdi)
6442#ifndef __APPLE__
6443 call Transform_Sha512_AVX2@plt
6444#else
6445 call _Transform_Sha512_AVX2
6446#endif /* __APPLE__ */
6447 addq $0x80, 224(%rdi)
6448 subl $0x80, %ebp
6449 jz L_sha512_len_avx2_done
6450L_sha512_len_avx2_block:
6451 subq $0x548, %rsp
6452 movq 224(%rdi), %rcx
6453 vmovdqa L_avx2_sha512_flip_mask(%rip), %ymm15
6454 movq (%rdi), %r8
6455 movq 8(%rdi), %r9
6456 movq 16(%rdi), %r10
6457 movq 24(%rdi), %r11
6458 movq 32(%rdi), %r12
6459 movq 40(%rdi), %r13
6460 movq 48(%rdi), %r14
6461 movq 56(%rdi), %r15
6462 movq %rbp, 1344(%rsp)
6463 # Start of loop processing two blocks
6464L_sha512_len_avx2_begin:
6465 movq %rsp, %rbp
6466 leaq L_avx2_sha512_k_2(%rip), %rsi
6467 movq %r9, %rbx
6468 movq %r12, %rax
6469 vmovdqu (%rcx), %xmm0
6470 vmovdqu 16(%rcx), %xmm1
6471 vinserti128 $0x01, 128(%rcx), %ymm0, %ymm0
6472 vinserti128 $0x01, 144(%rcx), %ymm1, %ymm1
6473 vpshufb %ymm15, %ymm0, %ymm0
6474 vpshufb %ymm15, %ymm1, %ymm1
6475 vmovdqu 32(%rcx), %xmm2
6476 vmovdqu 48(%rcx), %xmm3
6477 vinserti128 $0x01, 160(%rcx), %ymm2, %ymm2
6478 vinserti128 $0x01, 176(%rcx), %ymm3, %ymm3
6479 vpshufb %ymm15, %ymm2, %ymm2
6480 vpshufb %ymm15, %ymm3, %ymm3
6481 vmovdqu 64(%rcx), %xmm4
6482 vmovdqu 80(%rcx), %xmm5
6483 vinserti128 $0x01, 192(%rcx), %ymm4, %ymm4
6484 vinserti128 $0x01, 208(%rcx), %ymm5, %ymm5
6485 vpshufb %ymm15, %ymm4, %ymm4
6486 vpshufb %ymm15, %ymm5, %ymm5
6487 vmovdqu 96(%rcx), %xmm6
6488 vmovdqu 112(%rcx), %xmm7
6489 vinserti128 $0x01, 224(%rcx), %ymm6, %ymm6
6490 vinserti128 $0x01, 240(%rcx), %ymm7, %ymm7
6491 vpshufb %ymm15, %ymm6, %ymm6
6492 vpshufb %ymm15, %ymm7, %ymm7
6493 xorq %r10, %rbx
6494 # Start of 16 rounds
6495L_sha512_len_avx2_start:
6496 vpaddq (%rsi), %ymm0, %ymm8
6497 vpaddq 32(%rsi), %ymm1, %ymm9
6498 vmovdqu %ymm8, (%rbp)
6499 vmovdqu %ymm9, 32(%rbp)
6500 vpaddq 64(%rsi), %ymm2, %ymm8
6501 vpaddq 96(%rsi), %ymm3, %ymm9
6502 vmovdqu %ymm8, 64(%rbp)
6503 vmovdqu %ymm9, 96(%rbp)
6504 vpaddq 128(%rsi), %ymm4, %ymm8
6505 vpaddq 160(%rsi), %ymm5, %ymm9
6506 vmovdqu %ymm8, 128(%rbp)
6507 vmovdqu %ymm9, 160(%rbp)
6508 vpaddq 192(%rsi), %ymm6, %ymm8
6509 vpaddq 224(%rsi), %ymm7, %ymm9
6510 vmovdqu %ymm8, 192(%rbp)
6511 vmovdqu %ymm9, 224(%rbp)
6512 # msg_sched: 0-1
6513 rorq $23, %rax
6514 vpalignr $8, %ymm0, %ymm1, %ymm12
6515 vpalignr $8, %ymm4, %ymm5, %ymm13
6516 movq %r8, %rdx
6517 movq %r13, %rcx
6518 addq (%rbp), %r15
6519 xorq %r14, %rcx
6520 vpsrlq $0x01, %ymm12, %ymm8
6521 vpsllq $63, %ymm12, %ymm9
6522 xorq %r12, %rax
6523 andq %r12, %rcx
6524 rorq $4, %rax
6525 xorq %r14, %rcx
6526 vpsrlq $8, %ymm12, %ymm10
6527 vpsllq $56, %ymm12, %ymm11
6528 xorq %r12, %rax
6529 addq %rcx, %r15
6530 rorq $14, %rax
6531 xorq %r9, %rdx
6532 vpor %ymm9, %ymm8, %ymm8
6533 vpor %ymm11, %ymm10, %ymm10
6534 addq %rax, %r15
6535 movq %r8, %rcx
6536 andq %rdx, %rbx
6537 rorq $5, %rcx
6538 vpsrlq $7, %ymm12, %ymm11
6539 vpxor %ymm10, %ymm8, %ymm8
6540 xorq %r8, %rcx
6541 xorq %r9, %rbx
6542 rorq $6, %rcx
6543 addq %r15, %r11
6544 vpxor %ymm11, %ymm8, %ymm8
6545 vpaddq %ymm0, %ymm13, %ymm0
6546 xorq %r8, %rcx
6547 addq %rbx, %r15
6548 rorq $28, %rcx
6549 movq %r11, %rax
6550 addq %rcx, %r15
6551 rorq $23, %rax
6552 vpaddq %ymm0, %ymm8, %ymm0
6553 movq %r15, %rbx
6554 movq %r12, %rcx
6555 addq 8(%rbp), %r14
6556 xorq %r13, %rcx
6557 vpsrlq $19, %ymm7, %ymm8
6558 vpsllq $45, %ymm7, %ymm9
6559 xorq %r11, %rax
6560 andq %r11, %rcx
6561 rorq $4, %rax
6562 xorq %r13, %rcx
6563 vpsrlq $61, %ymm7, %ymm10
6564 vpsllq $3, %ymm7, %ymm11
6565 xorq %r11, %rax
6566 addq %rcx, %r14
6567 rorq $14, %rax
6568 xorq %r8, %rbx
6569 addq %rax, %r14
6570 movq %r15, %rcx
6571 vpor %ymm9, %ymm8, %ymm8
6572 vpor %ymm11, %ymm10, %ymm10
6573 andq %rbx, %rdx
6574 rorq $5, %rcx
6575 xorq %r15, %rcx
6576 xorq %r8, %rdx
6577 vpxor %ymm10, %ymm8, %ymm8
6578 vpsrlq $6, %ymm7, %ymm11
6579 rorq $6, %rcx
6580 addq %r14, %r10
6581 xorq %r15, %rcx
6582 addq %rdx, %r14
6583 vpxor %ymm11, %ymm8, %ymm8
6584 rorq $28, %rcx
6585 movq %r10, %rax
6586 addq %rcx, %r14
6587 vpaddq %ymm0, %ymm8, %ymm0
6588 # msg_sched done: 0-1
6589 # msg_sched: 4-5
6590 rorq $23, %rax
6591 vpalignr $8, %ymm1, %ymm2, %ymm12
6592 vpalignr $8, %ymm5, %ymm6, %ymm13
6593 movq %r14, %rdx
6594 movq %r11, %rcx
6595 addq 32(%rbp), %r13
6596 xorq %r12, %rcx
6597 vpsrlq $0x01, %ymm12, %ymm8
6598 vpsllq $63, %ymm12, %ymm9
6599 xorq %r10, %rax
6600 andq %r10, %rcx
6601 rorq $4, %rax
6602 xorq %r12, %rcx
6603 vpsrlq $8, %ymm12, %ymm10
6604 vpsllq $56, %ymm12, %ymm11
6605 xorq %r10, %rax
6606 addq %rcx, %r13
6607 rorq $14, %rax
6608 xorq %r15, %rdx
6609 vpor %ymm9, %ymm8, %ymm8
6610 vpor %ymm11, %ymm10, %ymm10
6611 addq %rax, %r13
6612 movq %r14, %rcx
6613 andq %rdx, %rbx
6614 rorq $5, %rcx
6615 vpsrlq $7, %ymm12, %ymm11
6616 vpxor %ymm10, %ymm8, %ymm8
6617 xorq %r14, %rcx
6618 xorq %r15, %rbx
6619 rorq $6, %rcx
6620 addq %r13, %r9
6621 vpxor %ymm11, %ymm8, %ymm8
6622 vpaddq %ymm1, %ymm13, %ymm1
6623 xorq %r14, %rcx
6624 addq %rbx, %r13
6625 rorq $28, %rcx
6626 movq %r9, %rax
6627 addq %rcx, %r13
6628 rorq $23, %rax
6629 vpaddq %ymm1, %ymm8, %ymm1
6630 movq %r13, %rbx
6631 movq %r10, %rcx
6632 addq 40(%rbp), %r12
6633 xorq %r11, %rcx
6634 vpsrlq $19, %ymm0, %ymm8
6635 vpsllq $45, %ymm0, %ymm9
6636 xorq %r9, %rax
6637 andq %r9, %rcx
6638 rorq $4, %rax
6639 xorq %r11, %rcx
6640 vpsrlq $61, %ymm0, %ymm10
6641 vpsllq $3, %ymm0, %ymm11
6642 xorq %r9, %rax
6643 addq %rcx, %r12
6644 rorq $14, %rax
6645 xorq %r14, %rbx
6646 addq %rax, %r12
6647 movq %r13, %rcx
6648 vpor %ymm9, %ymm8, %ymm8
6649 vpor %ymm11, %ymm10, %ymm10
6650 andq %rbx, %rdx
6651 rorq $5, %rcx
6652 xorq %r13, %rcx
6653 xorq %r14, %rdx
6654 vpxor %ymm10, %ymm8, %ymm8
6655 vpsrlq $6, %ymm0, %ymm11
6656 rorq $6, %rcx
6657 addq %r12, %r8
6658 xorq %r13, %rcx
6659 addq %rdx, %r12
6660 vpxor %ymm11, %ymm8, %ymm8
6661 rorq $28, %rcx
6662 movq %r8, %rax
6663 addq %rcx, %r12
6664 vpaddq %ymm1, %ymm8, %ymm1
6665 # msg_sched done: 4-5
6666 # msg_sched: 8-9
6667 rorq $23, %rax
6668 vpalignr $8, %ymm2, %ymm3, %ymm12
6669 vpalignr $8, %ymm6, %ymm7, %ymm13
6670 movq %r12, %rdx
6671 movq %r9, %rcx
6672 addq 64(%rbp), %r11
6673 xorq %r10, %rcx
6674 vpsrlq $0x01, %ymm12, %ymm8
6675 vpsllq $63, %ymm12, %ymm9
6676 xorq %r8, %rax
6677 andq %r8, %rcx
6678 rorq $4, %rax
6679 xorq %r10, %rcx
6680 vpsrlq $8, %ymm12, %ymm10
6681 vpsllq $56, %ymm12, %ymm11
6682 xorq %r8, %rax
6683 addq %rcx, %r11
6684 rorq $14, %rax
6685 xorq %r13, %rdx
6686 vpor %ymm9, %ymm8, %ymm8
6687 vpor %ymm11, %ymm10, %ymm10
6688 addq %rax, %r11
6689 movq %r12, %rcx
6690 andq %rdx, %rbx
6691 rorq $5, %rcx
6692 vpsrlq $7, %ymm12, %ymm11
6693 vpxor %ymm10, %ymm8, %ymm8
6694 xorq %r12, %rcx
6695 xorq %r13, %rbx
6696 rorq $6, %rcx
6697 addq %r11, %r15
6698 vpxor %ymm11, %ymm8, %ymm8
6699 vpaddq %ymm2, %ymm13, %ymm2
6700 xorq %r12, %rcx
6701 addq %rbx, %r11
6702 rorq $28, %rcx
6703 movq %r15, %rax
6704 addq %rcx, %r11
6705 rorq $23, %rax
6706 vpaddq %ymm2, %ymm8, %ymm2
6707 movq %r11, %rbx
6708 movq %r8, %rcx
6709 addq 72(%rbp), %r10
6710 xorq %r9, %rcx
6711 vpsrlq $19, %ymm1, %ymm8
6712 vpsllq $45, %ymm1, %ymm9
6713 xorq %r15, %rax
6714 andq %r15, %rcx
6715 rorq $4, %rax
6716 xorq %r9, %rcx
6717 vpsrlq $61, %ymm1, %ymm10
6718 vpsllq $3, %ymm1, %ymm11
6719 xorq %r15, %rax
6720 addq %rcx, %r10
6721 rorq $14, %rax
6722 xorq %r12, %rbx
6723 addq %rax, %r10
6724 movq %r11, %rcx
6725 vpor %ymm9, %ymm8, %ymm8
6726 vpor %ymm11, %ymm10, %ymm10
6727 andq %rbx, %rdx
6728 rorq $5, %rcx
6729 xorq %r11, %rcx
6730 xorq %r12, %rdx
6731 vpxor %ymm10, %ymm8, %ymm8
6732 vpsrlq $6, %ymm1, %ymm11
6733 rorq $6, %rcx
6734 addq %r10, %r14
6735 xorq %r11, %rcx
6736 addq %rdx, %r10
6737 vpxor %ymm11, %ymm8, %ymm8
6738 rorq $28, %rcx
6739 movq %r14, %rax
6740 addq %rcx, %r10
6741 vpaddq %ymm2, %ymm8, %ymm2
6742 # msg_sched done: 8-9
6743 # msg_sched: 12-13
6744 rorq $23, %rax
6745 vpalignr $8, %ymm3, %ymm4, %ymm12
6746 vpalignr $8, %ymm7, %ymm0, %ymm13
6747 movq %r10, %rdx
6748 movq %r15, %rcx
6749 addq 96(%rbp), %r9
6750 xorq %r8, %rcx
6751 vpsrlq $0x01, %ymm12, %ymm8
6752 vpsllq $63, %ymm12, %ymm9
6753 xorq %r14, %rax
6754 andq %r14, %rcx
6755 rorq $4, %rax
6756 xorq %r8, %rcx
6757 vpsrlq $8, %ymm12, %ymm10
6758 vpsllq $56, %ymm12, %ymm11
6759 xorq %r14, %rax
6760 addq %rcx, %r9
6761 rorq $14, %rax
6762 xorq %r11, %rdx
6763 vpor %ymm9, %ymm8, %ymm8
6764 vpor %ymm11, %ymm10, %ymm10
6765 addq %rax, %r9
6766 movq %r10, %rcx
6767 andq %rdx, %rbx
6768 rorq $5, %rcx
6769 vpsrlq $7, %ymm12, %ymm11
6770 vpxor %ymm10, %ymm8, %ymm8
6771 xorq %r10, %rcx
6772 xorq %r11, %rbx
6773 rorq $6, %rcx
6774 addq %r9, %r13
6775 vpxor %ymm11, %ymm8, %ymm8
6776 vpaddq %ymm3, %ymm13, %ymm3
6777 xorq %r10, %rcx
6778 addq %rbx, %r9
6779 rorq $28, %rcx
6780 movq %r13, %rax
6781 addq %rcx, %r9
6782 rorq $23, %rax
6783 vpaddq %ymm3, %ymm8, %ymm3
6784 movq %r9, %rbx
6785 movq %r14, %rcx
6786 addq 104(%rbp), %r8
6787 xorq %r15, %rcx
6788 vpsrlq $19, %ymm2, %ymm8
6789 vpsllq $45, %ymm2, %ymm9
6790 xorq %r13, %rax
6791 andq %r13, %rcx
6792 rorq $4, %rax
6793 xorq %r15, %rcx
6794 vpsrlq $61, %ymm2, %ymm10
6795 vpsllq $3, %ymm2, %ymm11
6796 xorq %r13, %rax
6797 addq %rcx, %r8
6798 rorq $14, %rax
6799 xorq %r10, %rbx
6800 addq %rax, %r8
6801 movq %r9, %rcx
6802 vpor %ymm9, %ymm8, %ymm8
6803 vpor %ymm11, %ymm10, %ymm10
6804 andq %rbx, %rdx
6805 rorq $5, %rcx
6806 xorq %r9, %rcx
6807 xorq %r10, %rdx
6808 vpxor %ymm10, %ymm8, %ymm8
6809 vpsrlq $6, %ymm2, %ymm11
6810 rorq $6, %rcx
6811 addq %r8, %r12
6812 xorq %r9, %rcx
6813 addq %rdx, %r8
6814 vpxor %ymm11, %ymm8, %ymm8
6815 rorq $28, %rcx
6816 movq %r12, %rax
6817 addq %rcx, %r8
6818 vpaddq %ymm3, %ymm8, %ymm3
6819 # msg_sched done: 12-13
6820 # msg_sched: 16-17
6821 rorq $23, %rax
6822 vpalignr $8, %ymm4, %ymm5, %ymm12
6823 vpalignr $8, %ymm0, %ymm1, %ymm13
6824 movq %r8, %rdx
6825 movq %r13, %rcx
6826 addq 128(%rbp), %r15
6827 xorq %r14, %rcx
6828 vpsrlq $0x01, %ymm12, %ymm8
6829 vpsllq $63, %ymm12, %ymm9
6830 xorq %r12, %rax
6831 andq %r12, %rcx
6832 rorq $4, %rax
6833 xorq %r14, %rcx
6834 vpsrlq $8, %ymm12, %ymm10
6835 vpsllq $56, %ymm12, %ymm11
6836 xorq %r12, %rax
6837 addq %rcx, %r15
6838 rorq $14, %rax
6839 xorq %r9, %rdx
6840 vpor %ymm9, %ymm8, %ymm8
6841 vpor %ymm11, %ymm10, %ymm10
6842 addq %rax, %r15
6843 movq %r8, %rcx
6844 andq %rdx, %rbx
6845 rorq $5, %rcx
6846 vpsrlq $7, %ymm12, %ymm11
6847 vpxor %ymm10, %ymm8, %ymm8
6848 xorq %r8, %rcx
6849 xorq %r9, %rbx
6850 rorq $6, %rcx
6851 addq %r15, %r11
6852 vpxor %ymm11, %ymm8, %ymm8
6853 vpaddq %ymm4, %ymm13, %ymm4
6854 xorq %r8, %rcx
6855 addq %rbx, %r15
6856 rorq $28, %rcx
6857 movq %r11, %rax
6858 addq %rcx, %r15
6859 rorq $23, %rax
6860 vpaddq %ymm4, %ymm8, %ymm4
6861 movq %r15, %rbx
6862 movq %r12, %rcx
6863 addq 136(%rbp), %r14
6864 xorq %r13, %rcx
6865 vpsrlq $19, %ymm3, %ymm8
6866 vpsllq $45, %ymm3, %ymm9
6867 xorq %r11, %rax
6868 andq %r11, %rcx
6869 rorq $4, %rax
6870 xorq %r13, %rcx
6871 vpsrlq $61, %ymm3, %ymm10
6872 vpsllq $3, %ymm3, %ymm11
6873 xorq %r11, %rax
6874 addq %rcx, %r14
6875 rorq $14, %rax
6876 xorq %r8, %rbx
6877 addq %rax, %r14
6878 movq %r15, %rcx
6879 vpor %ymm9, %ymm8, %ymm8
6880 vpor %ymm11, %ymm10, %ymm10
6881 andq %rbx, %rdx
6882 rorq $5, %rcx
6883 xorq %r15, %rcx
6884 xorq %r8, %rdx
6885 vpxor %ymm10, %ymm8, %ymm8
6886 vpsrlq $6, %ymm3, %ymm11
6887 rorq $6, %rcx
6888 addq %r14, %r10
6889 xorq %r15, %rcx
6890 addq %rdx, %r14
6891 vpxor %ymm11, %ymm8, %ymm8
6892 rorq $28, %rcx
6893 movq %r10, %rax
6894 addq %rcx, %r14
6895 vpaddq %ymm4, %ymm8, %ymm4
6896 # msg_sched done: 16-17
6897 # msg_sched: 20-21
6898 rorq $23, %rax
6899 vpalignr $8, %ymm5, %ymm6, %ymm12
6900 vpalignr $8, %ymm1, %ymm2, %ymm13
6901 movq %r14, %rdx
6902 movq %r11, %rcx
6903 addq 160(%rbp), %r13
6904 xorq %r12, %rcx
6905 vpsrlq $0x01, %ymm12, %ymm8
6906 vpsllq $63, %ymm12, %ymm9
6907 xorq %r10, %rax
6908 andq %r10, %rcx
6909 rorq $4, %rax
6910 xorq %r12, %rcx
6911 vpsrlq $8, %ymm12, %ymm10
6912 vpsllq $56, %ymm12, %ymm11
6913 xorq %r10, %rax
6914 addq %rcx, %r13
6915 rorq $14, %rax
6916 xorq %r15, %rdx
6917 vpor %ymm9, %ymm8, %ymm8
6918 vpor %ymm11, %ymm10, %ymm10
6919 addq %rax, %r13
6920 movq %r14, %rcx
6921 andq %rdx, %rbx
6922 rorq $5, %rcx
6923 vpsrlq $7, %ymm12, %ymm11
6924 vpxor %ymm10, %ymm8, %ymm8
6925 xorq %r14, %rcx
6926 xorq %r15, %rbx
6927 rorq $6, %rcx
6928 addq %r13, %r9
6929 vpxor %ymm11, %ymm8, %ymm8
6930 vpaddq %ymm5, %ymm13, %ymm5
6931 xorq %r14, %rcx
6932 addq %rbx, %r13
6933 rorq $28, %rcx
6934 movq %r9, %rax
6935 addq %rcx, %r13
6936 rorq $23, %rax
6937 vpaddq %ymm5, %ymm8, %ymm5
6938 movq %r13, %rbx
6939 movq %r10, %rcx
6940 addq 168(%rbp), %r12
6941 xorq %r11, %rcx
6942 vpsrlq $19, %ymm4, %ymm8
6943 vpsllq $45, %ymm4, %ymm9
6944 xorq %r9, %rax
6945 andq %r9, %rcx
6946 rorq $4, %rax
6947 xorq %r11, %rcx
6948 vpsrlq $61, %ymm4, %ymm10
6949 vpsllq $3, %ymm4, %ymm11
6950 xorq %r9, %rax
6951 addq %rcx, %r12
6952 rorq $14, %rax
6953 xorq %r14, %rbx
6954 addq %rax, %r12
6955 movq %r13, %rcx
6956 vpor %ymm9, %ymm8, %ymm8
6957 vpor %ymm11, %ymm10, %ymm10
6958 andq %rbx, %rdx
6959 rorq $5, %rcx
6960 xorq %r13, %rcx
6961 xorq %r14, %rdx
6962 vpxor %ymm10, %ymm8, %ymm8
6963 vpsrlq $6, %ymm4, %ymm11
6964 rorq $6, %rcx
6965 addq %r12, %r8
6966 xorq %r13, %rcx
6967 addq %rdx, %r12
6968 vpxor %ymm11, %ymm8, %ymm8
6969 rorq $28, %rcx
6970 movq %r8, %rax
6971 addq %rcx, %r12
6972 vpaddq %ymm5, %ymm8, %ymm5
6973 # msg_sched done: 20-21
6974 # msg_sched: 24-25
6975 rorq $23, %rax
6976 vpalignr $8, %ymm6, %ymm7, %ymm12
6977 vpalignr $8, %ymm2, %ymm3, %ymm13
6978 movq %r12, %rdx
6979 movq %r9, %rcx
6980 addq 192(%rbp), %r11
6981 xorq %r10, %rcx
6982 vpsrlq $0x01, %ymm12, %ymm8
6983 vpsllq $63, %ymm12, %ymm9
6984 xorq %r8, %rax
6985 andq %r8, %rcx
6986 rorq $4, %rax
6987 xorq %r10, %rcx
6988 vpsrlq $8, %ymm12, %ymm10
6989 vpsllq $56, %ymm12, %ymm11
6990 xorq %r8, %rax
6991 addq %rcx, %r11
6992 rorq $14, %rax
6993 xorq %r13, %rdx
6994 vpor %ymm9, %ymm8, %ymm8
6995 vpor %ymm11, %ymm10, %ymm10
6996 addq %rax, %r11
6997 movq %r12, %rcx
6998 andq %rdx, %rbx
6999 rorq $5, %rcx
7000 vpsrlq $7, %ymm12, %ymm11
7001 vpxor %ymm10, %ymm8, %ymm8
7002 xorq %r12, %rcx
7003 xorq %r13, %rbx
7004 rorq $6, %rcx
7005 addq %r11, %r15
7006 vpxor %ymm11, %ymm8, %ymm8
7007 vpaddq %ymm6, %ymm13, %ymm6
7008 xorq %r12, %rcx
7009 addq %rbx, %r11
7010 rorq $28, %rcx
7011 movq %r15, %rax
7012 addq %rcx, %r11
7013 rorq $23, %rax
7014 vpaddq %ymm6, %ymm8, %ymm6
7015 movq %r11, %rbx
7016 movq %r8, %rcx
7017 addq 200(%rbp), %r10
7018 xorq %r9, %rcx
7019 vpsrlq $19, %ymm5, %ymm8
7020 vpsllq $45, %ymm5, %ymm9
7021 xorq %r15, %rax
7022 andq %r15, %rcx
7023 rorq $4, %rax
7024 xorq %r9, %rcx
7025 vpsrlq $61, %ymm5, %ymm10
7026 vpsllq $3, %ymm5, %ymm11
7027 xorq %r15, %rax
7028 addq %rcx, %r10
7029 rorq $14, %rax
7030 xorq %r12, %rbx
7031 addq %rax, %r10
7032 movq %r11, %rcx
7033 vpor %ymm9, %ymm8, %ymm8
7034 vpor %ymm11, %ymm10, %ymm10
7035 andq %rbx, %rdx
7036 rorq $5, %rcx
7037 xorq %r11, %rcx
7038 xorq %r12, %rdx
7039 vpxor %ymm10, %ymm8, %ymm8
7040 vpsrlq $6, %ymm5, %ymm11
7041 rorq $6, %rcx
7042 addq %r10, %r14
7043 xorq %r11, %rcx
7044 addq %rdx, %r10
7045 vpxor %ymm11, %ymm8, %ymm8
7046 rorq $28, %rcx
7047 movq %r14, %rax
7048 addq %rcx, %r10
7049 vpaddq %ymm6, %ymm8, %ymm6
7050 # msg_sched done: 24-25
7051 # msg_sched: 28-29
7052 rorq $23, %rax
7053 vpalignr $8, %ymm7, %ymm0, %ymm12
7054 vpalignr $8, %ymm3, %ymm4, %ymm13
7055 movq %r10, %rdx
7056 movq %r15, %rcx
7057 addq 224(%rbp), %r9
7058 xorq %r8, %rcx
7059 vpsrlq $0x01, %ymm12, %ymm8
7060 vpsllq $63, %ymm12, %ymm9
7061 xorq %r14, %rax
7062 andq %r14, %rcx
7063 rorq $4, %rax
7064 xorq %r8, %rcx
7065 vpsrlq $8, %ymm12, %ymm10
7066 vpsllq $56, %ymm12, %ymm11
7067 xorq %r14, %rax
7068 addq %rcx, %r9
7069 rorq $14, %rax
7070 xorq %r11, %rdx
7071 vpor %ymm9, %ymm8, %ymm8
7072 vpor %ymm11, %ymm10, %ymm10
7073 addq %rax, %r9
7074 movq %r10, %rcx
7075 andq %rdx, %rbx
7076 rorq $5, %rcx
7077 vpsrlq $7, %ymm12, %ymm11
7078 vpxor %ymm10, %ymm8, %ymm8
7079 xorq %r10, %rcx
7080 xorq %r11, %rbx
7081 rorq $6, %rcx
7082 addq %r9, %r13
7083 vpxor %ymm11, %ymm8, %ymm8
7084 vpaddq %ymm7, %ymm13, %ymm7
7085 xorq %r10, %rcx
7086 addq %rbx, %r9
7087 rorq $28, %rcx
7088 movq %r13, %rax
7089 addq %rcx, %r9
7090 rorq $23, %rax
7091 vpaddq %ymm7, %ymm8, %ymm7
7092 movq %r9, %rbx
7093 movq %r14, %rcx
7094 addq 232(%rbp), %r8
7095 xorq %r15, %rcx
7096 vpsrlq $19, %ymm6, %ymm8
7097 vpsllq $45, %ymm6, %ymm9
7098 xorq %r13, %rax
7099 andq %r13, %rcx
7100 rorq $4, %rax
7101 xorq %r15, %rcx
7102 vpsrlq $61, %ymm6, %ymm10
7103 vpsllq $3, %ymm6, %ymm11
7104 xorq %r13, %rax
7105 addq %rcx, %r8
7106 rorq $14, %rax
7107 xorq %r10, %rbx
7108 addq %rax, %r8
7109 movq %r9, %rcx
7110 vpor %ymm9, %ymm8, %ymm8
7111 vpor %ymm11, %ymm10, %ymm10
7112 andq %rbx, %rdx
7113 rorq $5, %rcx
7114 xorq %r9, %rcx
7115 xorq %r10, %rdx
7116 vpxor %ymm10, %ymm8, %ymm8
7117 vpsrlq $6, %ymm6, %ymm11
7118 rorq $6, %rcx
7119 addq %r8, %r12
7120 xorq %r9, %rcx
7121 addq %rdx, %r8
7122 vpxor %ymm11, %ymm8, %ymm8
7123 rorq $28, %rcx
7124 movq %r12, %rax
7125 addq %rcx, %r8
7126 vpaddq %ymm7, %ymm8, %ymm7
7127 # msg_sched done: 28-29
7128 addq $0x100, %rsi
7129 addq $0x100, %rbp
7130 cmpq L_avx2_sha512_k_2_end(%rip), %rsi
7131 jne L_sha512_len_avx2_start
7132 vpaddq (%rsi), %ymm0, %ymm8
7133 vpaddq 32(%rsi), %ymm1, %ymm9
7134 vmovdqu %ymm8, (%rbp)
7135 vmovdqu %ymm9, 32(%rbp)
7136 vpaddq 64(%rsi), %ymm2, %ymm8
7137 vpaddq 96(%rsi), %ymm3, %ymm9
7138 vmovdqu %ymm8, 64(%rbp)
7139 vmovdqu %ymm9, 96(%rbp)
7140 vpaddq 128(%rsi), %ymm4, %ymm8
7141 vpaddq 160(%rsi), %ymm5, %ymm9
7142 vmovdqu %ymm8, 128(%rbp)
7143 vmovdqu %ymm9, 160(%rbp)
7144 vpaddq 192(%rsi), %ymm6, %ymm8
7145 vpaddq 224(%rsi), %ymm7, %ymm9
7146 vmovdqu %ymm8, 192(%rbp)
7147 vmovdqu %ymm9, 224(%rbp)
7148 rorq $23, %rax
7149 movq %r8, %rdx
7150 movq %r13, %rcx
7151 addq (%rbp), %r15
7152 xorq %r14, %rcx
7153 xorq %r12, %rax
7154 andq %r12, %rcx
7155 rorq $4, %rax
7156 xorq %r14, %rcx
7157 xorq %r12, %rax
7158 addq %rcx, %r15
7159 rorq $14, %rax
7160 xorq %r9, %rdx
7161 addq %rax, %r15
7162 movq %r8, %rcx
7163 andq %rdx, %rbx
7164 rorq $5, %rcx
7165 xorq %r8, %rcx
7166 xorq %r9, %rbx
7167 rorq $6, %rcx
7168 addq %r15, %r11
7169 xorq %r8, %rcx
7170 addq %rbx, %r15
7171 rorq $28, %rcx
7172 movq %r11, %rax
7173 addq %rcx, %r15
7174 rorq $23, %rax
7175 movq %r15, %rbx
7176 movq %r12, %rcx
7177 addq 8(%rbp), %r14
7178 xorq %r13, %rcx
7179 xorq %r11, %rax
7180 andq %r11, %rcx
7181 rorq $4, %rax
7182 xorq %r13, %rcx
7183 xorq %r11, %rax
7184 addq %rcx, %r14
7185 rorq $14, %rax
7186 xorq %r8, %rbx
7187 addq %rax, %r14
7188 movq %r15, %rcx
7189 andq %rbx, %rdx
7190 rorq $5, %rcx
7191 xorq %r15, %rcx
7192 xorq %r8, %rdx
7193 rorq $6, %rcx
7194 addq %r14, %r10
7195 xorq %r15, %rcx
7196 addq %rdx, %r14
7197 rorq $28, %rcx
7198 movq %r10, %rax
7199 addq %rcx, %r14
7200 rorq $23, %rax
7201 movq %r14, %rdx
7202 movq %r11, %rcx
7203 addq 32(%rbp), %r13
7204 xorq %r12, %rcx
7205 xorq %r10, %rax
7206 andq %r10, %rcx
7207 rorq $4, %rax
7208 xorq %r12, %rcx
7209 xorq %r10, %rax
7210 addq %rcx, %r13
7211 rorq $14, %rax
7212 xorq %r15, %rdx
7213 addq %rax, %r13
7214 movq %r14, %rcx
7215 andq %rdx, %rbx
7216 rorq $5, %rcx
7217 xorq %r14, %rcx
7218 xorq %r15, %rbx
7219 rorq $6, %rcx
7220 addq %r13, %r9
7221 xorq %r14, %rcx
7222 addq %rbx, %r13
7223 rorq $28, %rcx
7224 movq %r9, %rax
7225 addq %rcx, %r13
7226 rorq $23, %rax
7227 movq %r13, %rbx
7228 movq %r10, %rcx
7229 addq 40(%rbp), %r12
7230 xorq %r11, %rcx
7231 xorq %r9, %rax
7232 andq %r9, %rcx
7233 rorq $4, %rax
7234 xorq %r11, %rcx
7235 xorq %r9, %rax
7236 addq %rcx, %r12
7237 rorq $14, %rax
7238 xorq %r14, %rbx
7239 addq %rax, %r12
7240 movq %r13, %rcx
7241 andq %rbx, %rdx
7242 rorq $5, %rcx
7243 xorq %r13, %rcx
7244 xorq %r14, %rdx
7245 rorq $6, %rcx
7246 addq %r12, %r8
7247 xorq %r13, %rcx
7248 addq %rdx, %r12
7249 rorq $28, %rcx
7250 movq %r8, %rax
7251 addq %rcx, %r12
7252 rorq $23, %rax
7253 movq %r12, %rdx
7254 movq %r9, %rcx
7255 addq 64(%rbp), %r11
7256 xorq %r10, %rcx
7257 xorq %r8, %rax
7258 andq %r8, %rcx
7259 rorq $4, %rax
7260 xorq %r10, %rcx
7261 xorq %r8, %rax
7262 addq %rcx, %r11
7263 rorq $14, %rax
7264 xorq %r13, %rdx
7265 addq %rax, %r11
7266 movq %r12, %rcx
7267 andq %rdx, %rbx
7268 rorq $5, %rcx
7269 xorq %r12, %rcx
7270 xorq %r13, %rbx
7271 rorq $6, %rcx
7272 addq %r11, %r15
7273 xorq %r12, %rcx
7274 addq %rbx, %r11
7275 rorq $28, %rcx
7276 movq %r15, %rax
7277 addq %rcx, %r11
7278 rorq $23, %rax
7279 movq %r11, %rbx
7280 movq %r8, %rcx
7281 addq 72(%rbp), %r10
7282 xorq %r9, %rcx
7283 xorq %r15, %rax
7284 andq %r15, %rcx
7285 rorq $4, %rax
7286 xorq %r9, %rcx
7287 xorq %r15, %rax
7288 addq %rcx, %r10
7289 rorq $14, %rax
7290 xorq %r12, %rbx
7291 addq %rax, %r10
7292 movq %r11, %rcx
7293 andq %rbx, %rdx
7294 rorq $5, %rcx
7295 xorq %r11, %rcx
7296 xorq %r12, %rdx
7297 rorq $6, %rcx
7298 addq %r10, %r14
7299 xorq %r11, %rcx
7300 addq %rdx, %r10
7301 rorq $28, %rcx
7302 movq %r14, %rax
7303 addq %rcx, %r10
7304 rorq $23, %rax
7305 movq %r10, %rdx
7306 movq %r15, %rcx
7307 addq 96(%rbp), %r9
7308 xorq %r8, %rcx
7309 xorq %r14, %rax
7310 andq %r14, %rcx
7311 rorq $4, %rax
7312 xorq %r8, %rcx
7313 xorq %r14, %rax
7314 addq %rcx, %r9
7315 rorq $14, %rax
7316 xorq %r11, %rdx
7317 addq %rax, %r9
7318 movq %r10, %rcx
7319 andq %rdx, %rbx
7320 rorq $5, %rcx
7321 xorq %r10, %rcx
7322 xorq %r11, %rbx
7323 rorq $6, %rcx
7324 addq %r9, %r13
7325 xorq %r10, %rcx
7326 addq %rbx, %r9
7327 rorq $28, %rcx
7328 movq %r13, %rax
7329 addq %rcx, %r9
7330 rorq $23, %rax
7331 movq %r9, %rbx
7332 movq %r14, %rcx
7333 addq 104(%rbp), %r8
7334 xorq %r15, %rcx
7335 xorq %r13, %rax
7336 andq %r13, %rcx
7337 rorq $4, %rax
7338 xorq %r15, %rcx
7339 xorq %r13, %rax
7340 addq %rcx, %r8
7341 rorq $14, %rax
7342 xorq %r10, %rbx
7343 addq %rax, %r8
7344 movq %r9, %rcx
7345 andq %rbx, %rdx
7346 rorq $5, %rcx
7347 xorq %r9, %rcx
7348 xorq %r10, %rdx
7349 rorq $6, %rcx
7350 addq %r8, %r12
7351 xorq %r9, %rcx
7352 addq %rdx, %r8
7353 rorq $28, %rcx
7354 movq %r12, %rax
7355 addq %rcx, %r8
7356 rorq $23, %rax
7357 movq %r8, %rdx
7358 movq %r13, %rcx
7359 addq 128(%rbp), %r15
7360 xorq %r14, %rcx
7361 xorq %r12, %rax
7362 andq %r12, %rcx
7363 rorq $4, %rax
7364 xorq %r14, %rcx
7365 xorq %r12, %rax
7366 addq %rcx, %r15
7367 rorq $14, %rax
7368 xorq %r9, %rdx
7369 addq %rax, %r15
7370 movq %r8, %rcx
7371 andq %rdx, %rbx
7372 rorq $5, %rcx
7373 xorq %r8, %rcx
7374 xorq %r9, %rbx
7375 rorq $6, %rcx
7376 addq %r15, %r11
7377 xorq %r8, %rcx
7378 addq %rbx, %r15
7379 rorq $28, %rcx
7380 movq %r11, %rax
7381 addq %rcx, %r15
7382 rorq $23, %rax
7383 movq %r15, %rbx
7384 movq %r12, %rcx
7385 addq 136(%rbp), %r14
7386 xorq %r13, %rcx
7387 xorq %r11, %rax
7388 andq %r11, %rcx
7389 rorq $4, %rax
7390 xorq %r13, %rcx
7391 xorq %r11, %rax
7392 addq %rcx, %r14
7393 rorq $14, %rax
7394 xorq %r8, %rbx
7395 addq %rax, %r14
7396 movq %r15, %rcx
7397 andq %rbx, %rdx
7398 rorq $5, %rcx
7399 xorq %r15, %rcx
7400 xorq %r8, %rdx
7401 rorq $6, %rcx
7402 addq %r14, %r10
7403 xorq %r15, %rcx
7404 addq %rdx, %r14
7405 rorq $28, %rcx
7406 movq %r10, %rax
7407 addq %rcx, %r14
7408 rorq $23, %rax
7409 movq %r14, %rdx
7410 movq %r11, %rcx
7411 addq 160(%rbp), %r13
7412 xorq %r12, %rcx
7413 xorq %r10, %rax
7414 andq %r10, %rcx
7415 rorq $4, %rax
7416 xorq %r12, %rcx
7417 xorq %r10, %rax
7418 addq %rcx, %r13
7419 rorq $14, %rax
7420 xorq %r15, %rdx
7421 addq %rax, %r13
7422 movq %r14, %rcx
7423 andq %rdx, %rbx
7424 rorq $5, %rcx
7425 xorq %r14, %rcx
7426 xorq %r15, %rbx
7427 rorq $6, %rcx
7428 addq %r13, %r9
7429 xorq %r14, %rcx
7430 addq %rbx, %r13
7431 rorq $28, %rcx
7432 movq %r9, %rax
7433 addq %rcx, %r13
7434 rorq $23, %rax
7435 movq %r13, %rbx
7436 movq %r10, %rcx
7437 addq 168(%rbp), %r12
7438 xorq %r11, %rcx
7439 xorq %r9, %rax
7440 andq %r9, %rcx
7441 rorq $4, %rax
7442 xorq %r11, %rcx
7443 xorq %r9, %rax
7444 addq %rcx, %r12
7445 rorq $14, %rax
7446 xorq %r14, %rbx
7447 addq %rax, %r12
7448 movq %r13, %rcx
7449 andq %rbx, %rdx
7450 rorq $5, %rcx
7451 xorq %r13, %rcx
7452 xorq %r14, %rdx
7453 rorq $6, %rcx
7454 addq %r12, %r8
7455 xorq %r13, %rcx
7456 addq %rdx, %r12
7457 rorq $28, %rcx
7458 movq %r8, %rax
7459 addq %rcx, %r12
7460 rorq $23, %rax
7461 movq %r12, %rdx
7462 movq %r9, %rcx
7463 addq 192(%rbp), %r11
7464 xorq %r10, %rcx
7465 xorq %r8, %rax
7466 andq %r8, %rcx
7467 rorq $4, %rax
7468 xorq %r10, %rcx
7469 xorq %r8, %rax
7470 addq %rcx, %r11
7471 rorq $14, %rax
7472 xorq %r13, %rdx
7473 addq %rax, %r11
7474 movq %r12, %rcx
7475 andq %rdx, %rbx
7476 rorq $5, %rcx
7477 xorq %r12, %rcx
7478 xorq %r13, %rbx
7479 rorq $6, %rcx
7480 addq %r11, %r15
7481 xorq %r12, %rcx
7482 addq %rbx, %r11
7483 rorq $28, %rcx
7484 movq %r15, %rax
7485 addq %rcx, %r11
7486 rorq $23, %rax
7487 movq %r11, %rbx
7488 movq %r8, %rcx
7489 addq 200(%rbp), %r10
7490 xorq %r9, %rcx
7491 xorq %r15, %rax
7492 andq %r15, %rcx
7493 rorq $4, %rax
7494 xorq %r9, %rcx
7495 xorq %r15, %rax
7496 addq %rcx, %r10
7497 rorq $14, %rax
7498 xorq %r12, %rbx
7499 addq %rax, %r10
7500 movq %r11, %rcx
7501 andq %rbx, %rdx
7502 rorq $5, %rcx
7503 xorq %r11, %rcx
7504 xorq %r12, %rdx
7505 rorq $6, %rcx
7506 addq %r10, %r14
7507 xorq %r11, %rcx
7508 addq %rdx, %r10
7509 rorq $28, %rcx
7510 movq %r14, %rax
7511 addq %rcx, %r10
7512 rorq $23, %rax
7513 movq %r10, %rdx
7514 movq %r15, %rcx
7515 addq 224(%rbp), %r9
7516 xorq %r8, %rcx
7517 xorq %r14, %rax
7518 andq %r14, %rcx
7519 rorq $4, %rax
7520 xorq %r8, %rcx
7521 xorq %r14, %rax
7522 addq %rcx, %r9
7523 rorq $14, %rax
7524 xorq %r11, %rdx
7525 addq %rax, %r9
7526 movq %r10, %rcx
7527 andq %rdx, %rbx
7528 rorq $5, %rcx
7529 xorq %r10, %rcx
7530 xorq %r11, %rbx
7531 rorq $6, %rcx
7532 addq %r9, %r13
7533 xorq %r10, %rcx
7534 addq %rbx, %r9
7535 rorq $28, %rcx
7536 movq %r13, %rax
7537 addq %rcx, %r9
7538 rorq $23, %rax
7539 movq %r9, %rbx
7540 movq %r14, %rcx
7541 addq 232(%rbp), %r8
7542 xorq %r15, %rcx
7543 xorq %r13, %rax
7544 andq %r13, %rcx
7545 rorq $4, %rax
7546 xorq %r15, %rcx
7547 xorq %r13, %rax
7548 addq %rcx, %r8
7549 rorq $14, %rax
7550 xorq %r10, %rbx
7551 addq %rax, %r8
7552 movq %r9, %rcx
7553 andq %rbx, %rdx
7554 rorq $5, %rcx
7555 xorq %r9, %rcx
7556 xorq %r10, %rdx
7557 rorq $6, %rcx
7558 addq %r8, %r12
7559 xorq %r9, %rcx
7560 addq %rdx, %r8
7561 rorq $28, %rcx
7562 movq %r12, %rax
7563 addq %rcx, %r8
7564 subq $0x400, %rbp
7565 addq (%rdi), %r8
7566 addq 8(%rdi), %r9
7567 addq 16(%rdi), %r10
7568 addq 24(%rdi), %r11
7569 addq 32(%rdi), %r12
7570 addq 40(%rdi), %r13
7571 addq 48(%rdi), %r14
7572 addq 56(%rdi), %r15
7573 movq %r8, (%rdi)
7574 movq %r9, 8(%rdi)
7575 movq %r10, 16(%rdi)
7576 movq %r11, 24(%rdi)
7577 movq %r12, 32(%rdi)
7578 movq %r13, 40(%rdi)
7579 movq %r14, 48(%rdi)
7580 movq %r15, 56(%rdi)
7581 movq %r9, %rbx
7582 movq %r12, %rax
7583 xorq %r10, %rbx
7584 movq $5, %rsi
7585L_sha512_len_avx2_tail:
7586 rorq $23, %rax
7587 movq %r8, %rdx
7588 movq %r13, %rcx
7589 addq 16(%rbp), %r15
7590 xorq %r14, %rcx
7591 xorq %r12, %rax
7592 andq %r12, %rcx
7593 rorq $4, %rax
7594 xorq %r14, %rcx
7595 xorq %r12, %rax
7596 addq %rcx, %r15
7597 rorq $14, %rax
7598 xorq %r9, %rdx
7599 addq %rax, %r15
7600 movq %r8, %rcx
7601 andq %rdx, %rbx
7602 rorq $5, %rcx
7603 xorq %r8, %rcx
7604 xorq %r9, %rbx
7605 rorq $6, %rcx
7606 addq %r15, %r11
7607 xorq %r8, %rcx
7608 addq %rbx, %r15
7609 rorq $28, %rcx
7610 movq %r11, %rax
7611 addq %rcx, %r15
7612 rorq $23, %rax
7613 movq %r15, %rbx
7614 movq %r12, %rcx
7615 addq 24(%rbp), %r14
7616 xorq %r13, %rcx
7617 xorq %r11, %rax
7618 andq %r11, %rcx
7619 rorq $4, %rax
7620 xorq %r13, %rcx
7621 xorq %r11, %rax
7622 addq %rcx, %r14
7623 rorq $14, %rax
7624 xorq %r8, %rbx
7625 addq %rax, %r14
7626 movq %r15, %rcx
7627 andq %rbx, %rdx
7628 rorq $5, %rcx
7629 xorq %r15, %rcx
7630 xorq %r8, %rdx
7631 rorq $6, %rcx
7632 addq %r14, %r10
7633 xorq %r15, %rcx
7634 addq %rdx, %r14
7635 rorq $28, %rcx
7636 movq %r10, %rax
7637 addq %rcx, %r14
7638 rorq $23, %rax
7639 movq %r14, %rdx
7640 movq %r11, %rcx
7641 addq 48(%rbp), %r13
7642 xorq %r12, %rcx
7643 xorq %r10, %rax
7644 andq %r10, %rcx
7645 rorq $4, %rax
7646 xorq %r12, %rcx
7647 xorq %r10, %rax
7648 addq %rcx, %r13
7649 rorq $14, %rax
7650 xorq %r15, %rdx
7651 addq %rax, %r13
7652 movq %r14, %rcx
7653 andq %rdx, %rbx
7654 rorq $5, %rcx
7655 xorq %r14, %rcx
7656 xorq %r15, %rbx
7657 rorq $6, %rcx
7658 addq %r13, %r9
7659 xorq %r14, %rcx
7660 addq %rbx, %r13
7661 rorq $28, %rcx
7662 movq %r9, %rax
7663 addq %rcx, %r13
7664 rorq $23, %rax
7665 movq %r13, %rbx
7666 movq %r10, %rcx
7667 addq 56(%rbp), %r12
7668 xorq %r11, %rcx
7669 xorq %r9, %rax
7670 andq %r9, %rcx
7671 rorq $4, %rax
7672 xorq %r11, %rcx
7673 xorq %r9, %rax
7674 addq %rcx, %r12
7675 rorq $14, %rax
7676 xorq %r14, %rbx
7677 addq %rax, %r12
7678 movq %r13, %rcx
7679 andq %rbx, %rdx
7680 rorq $5, %rcx
7681 xorq %r13, %rcx
7682 xorq %r14, %rdx
7683 rorq $6, %rcx
7684 addq %r12, %r8
7685 xorq %r13, %rcx
7686 addq %rdx, %r12
7687 rorq $28, %rcx
7688 movq %r8, %rax
7689 addq %rcx, %r12
7690 rorq $23, %rax
7691 movq %r12, %rdx
7692 movq %r9, %rcx
7693 addq 80(%rbp), %r11
7694 xorq %r10, %rcx
7695 xorq %r8, %rax
7696 andq %r8, %rcx
7697 rorq $4, %rax
7698 xorq %r10, %rcx
7699 xorq %r8, %rax
7700 addq %rcx, %r11
7701 rorq $14, %rax
7702 xorq %r13, %rdx
7703 addq %rax, %r11
7704 movq %r12, %rcx
7705 andq %rdx, %rbx
7706 rorq $5, %rcx
7707 xorq %r12, %rcx
7708 xorq %r13, %rbx
7709 rorq $6, %rcx
7710 addq %r11, %r15
7711 xorq %r12, %rcx
7712 addq %rbx, %r11
7713 rorq $28, %rcx
7714 movq %r15, %rax
7715 addq %rcx, %r11
7716 rorq $23, %rax
7717 movq %r11, %rbx
7718 movq %r8, %rcx
7719 addq 88(%rbp), %r10
7720 xorq %r9, %rcx
7721 xorq %r15, %rax
7722 andq %r15, %rcx
7723 rorq $4, %rax
7724 xorq %r9, %rcx
7725 xorq %r15, %rax
7726 addq %rcx, %r10
7727 rorq $14, %rax
7728 xorq %r12, %rbx
7729 addq %rax, %r10
7730 movq %r11, %rcx
7731 andq %rbx, %rdx
7732 rorq $5, %rcx
7733 xorq %r11, %rcx
7734 xorq %r12, %rdx
7735 rorq $6, %rcx
7736 addq %r10, %r14
7737 xorq %r11, %rcx
7738 addq %rdx, %r10
7739 rorq $28, %rcx
7740 movq %r14, %rax
7741 addq %rcx, %r10
7742 rorq $23, %rax
7743 movq %r10, %rdx
7744 movq %r15, %rcx
7745 addq 112(%rbp), %r9
7746 xorq %r8, %rcx
7747 xorq %r14, %rax
7748 andq %r14, %rcx
7749 rorq $4, %rax
7750 xorq %r8, %rcx
7751 xorq %r14, %rax
7752 addq %rcx, %r9
7753 rorq $14, %rax
7754 xorq %r11, %rdx
7755 addq %rax, %r9
7756 movq %r10, %rcx
7757 andq %rdx, %rbx
7758 rorq $5, %rcx
7759 xorq %r10, %rcx
7760 xorq %r11, %rbx
7761 rorq $6, %rcx
7762 addq %r9, %r13
7763 xorq %r10, %rcx
7764 addq %rbx, %r9
7765 rorq $28, %rcx
7766 movq %r13, %rax
7767 addq %rcx, %r9
7768 rorq $23, %rax
7769 movq %r9, %rbx
7770 movq %r14, %rcx
7771 addq 120(%rbp), %r8
7772 xorq %r15, %rcx
7773 xorq %r13, %rax
7774 andq %r13, %rcx
7775 rorq $4, %rax
7776 xorq %r15, %rcx
7777 xorq %r13, %rax
7778 addq %rcx, %r8
7779 rorq $14, %rax
7780 xorq %r10, %rbx
7781 addq %rax, %r8
7782 movq %r9, %rcx
7783 andq %rbx, %rdx
7784 rorq $5, %rcx
7785 xorq %r9, %rcx
7786 xorq %r10, %rdx
7787 rorq $6, %rcx
7788 addq %r8, %r12
7789 xorq %r9, %rcx
7790 addq %rdx, %r8
7791 rorq $28, %rcx
7792 movq %r12, %rax
7793 addq %rcx, %r8
7794 rorq $23, %rax
7795 movq %r8, %rdx
7796 movq %r13, %rcx
7797 addq 144(%rbp), %r15
7798 xorq %r14, %rcx
7799 xorq %r12, %rax
7800 andq %r12, %rcx
7801 rorq $4, %rax
7802 xorq %r14, %rcx
7803 xorq %r12, %rax
7804 addq %rcx, %r15
7805 rorq $14, %rax
7806 xorq %r9, %rdx
7807 addq %rax, %r15
7808 movq %r8, %rcx
7809 andq %rdx, %rbx
7810 rorq $5, %rcx
7811 xorq %r8, %rcx
7812 xorq %r9, %rbx
7813 rorq $6, %rcx
7814 addq %r15, %r11
7815 xorq %r8, %rcx
7816 addq %rbx, %r15
7817 rorq $28, %rcx
7818 movq %r11, %rax
7819 addq %rcx, %r15
7820 rorq $23, %rax
7821 movq %r15, %rbx
7822 movq %r12, %rcx
7823 addq 152(%rbp), %r14
7824 xorq %r13, %rcx
7825 xorq %r11, %rax
7826 andq %r11, %rcx
7827 rorq $4, %rax
7828 xorq %r13, %rcx
7829 xorq %r11, %rax
7830 addq %rcx, %r14
7831 rorq $14, %rax
7832 xorq %r8, %rbx
7833 addq %rax, %r14
7834 movq %r15, %rcx
7835 andq %rbx, %rdx
7836 rorq $5, %rcx
7837 xorq %r15, %rcx
7838 xorq %r8, %rdx
7839 rorq $6, %rcx
7840 addq %r14, %r10
7841 xorq %r15, %rcx
7842 addq %rdx, %r14
7843 rorq $28, %rcx
7844 movq %r10, %rax
7845 addq %rcx, %r14
7846 rorq $23, %rax
7847 movq %r14, %rdx
7848 movq %r11, %rcx
7849 addq 176(%rbp), %r13
7850 xorq %r12, %rcx
7851 xorq %r10, %rax
7852 andq %r10, %rcx
7853 rorq $4, %rax
7854 xorq %r12, %rcx
7855 xorq %r10, %rax
7856 addq %rcx, %r13
7857 rorq $14, %rax
7858 xorq %r15, %rdx
7859 addq %rax, %r13
7860 movq %r14, %rcx
7861 andq %rdx, %rbx
7862 rorq $5, %rcx
7863 xorq %r14, %rcx
7864 xorq %r15, %rbx
7865 rorq $6, %rcx
7866 addq %r13, %r9
7867 xorq %r14, %rcx
7868 addq %rbx, %r13
7869 rorq $28, %rcx
7870 movq %r9, %rax
7871 addq %rcx, %r13
7872 rorq $23, %rax
7873 movq %r13, %rbx
7874 movq %r10, %rcx
7875 addq 184(%rbp), %r12
7876 xorq %r11, %rcx
7877 xorq %r9, %rax
7878 andq %r9, %rcx
7879 rorq $4, %rax
7880 xorq %r11, %rcx
7881 xorq %r9, %rax
7882 addq %rcx, %r12
7883 rorq $14, %rax
7884 xorq %r14, %rbx
7885 addq %rax, %r12
7886 movq %r13, %rcx
7887 andq %rbx, %rdx
7888 rorq $5, %rcx
7889 xorq %r13, %rcx
7890 xorq %r14, %rdx
7891 rorq $6, %rcx
7892 addq %r12, %r8
7893 xorq %r13, %rcx
7894 addq %rdx, %r12
7895 rorq $28, %rcx
7896 movq %r8, %rax
7897 addq %rcx, %r12
7898 rorq $23, %rax
7899 movq %r12, %rdx
7900 movq %r9, %rcx
7901 addq 208(%rbp), %r11
7902 xorq %r10, %rcx
7903 xorq %r8, %rax
7904 andq %r8, %rcx
7905 rorq $4, %rax
7906 xorq %r10, %rcx
7907 xorq %r8, %rax
7908 addq %rcx, %r11
7909 rorq $14, %rax
7910 xorq %r13, %rdx
7911 addq %rax, %r11
7912 movq %r12, %rcx
7913 andq %rdx, %rbx
7914 rorq $5, %rcx
7915 xorq %r12, %rcx
7916 xorq %r13, %rbx
7917 rorq $6, %rcx
7918 addq %r11, %r15
7919 xorq %r12, %rcx
7920 addq %rbx, %r11
7921 rorq $28, %rcx
7922 movq %r15, %rax
7923 addq %rcx, %r11
7924 rorq $23, %rax
7925 movq %r11, %rbx
7926 movq %r8, %rcx
7927 addq 216(%rbp), %r10
7928 xorq %r9, %rcx
7929 xorq %r15, %rax
7930 andq %r15, %rcx
7931 rorq $4, %rax
7932 xorq %r9, %rcx
7933 xorq %r15, %rax
7934 addq %rcx, %r10
7935 rorq $14, %rax
7936 xorq %r12, %rbx
7937 addq %rax, %r10
7938 movq %r11, %rcx
7939 andq %rbx, %rdx
7940 rorq $5, %rcx
7941 xorq %r11, %rcx
7942 xorq %r12, %rdx
7943 rorq $6, %rcx
7944 addq %r10, %r14
7945 xorq %r11, %rcx
7946 addq %rdx, %r10
7947 rorq $28, %rcx
7948 movq %r14, %rax
7949 addq %rcx, %r10
7950 rorq $23, %rax
7951 movq %r10, %rdx
7952 movq %r15, %rcx
7953 addq 240(%rbp), %r9
7954 xorq %r8, %rcx
7955 xorq %r14, %rax
7956 andq %r14, %rcx
7957 rorq $4, %rax
7958 xorq %r8, %rcx
7959 xorq %r14, %rax
7960 addq %rcx, %r9
7961 rorq $14, %rax
7962 xorq %r11, %rdx
7963 addq %rax, %r9
7964 movq %r10, %rcx
7965 andq %rdx, %rbx
7966 rorq $5, %rcx
7967 xorq %r10, %rcx
7968 xorq %r11, %rbx
7969 rorq $6, %rcx
7970 addq %r9, %r13
7971 xorq %r10, %rcx
7972 addq %rbx, %r9
7973 rorq $28, %rcx
7974 movq %r13, %rax
7975 addq %rcx, %r9
7976 rorq $23, %rax
7977 movq %r9, %rbx
7978 movq %r14, %rcx
7979 addq 248(%rbp), %r8
7980 xorq %r15, %rcx
7981 xorq %r13, %rax
7982 andq %r13, %rcx
7983 rorq $4, %rax
7984 xorq %r15, %rcx
7985 xorq %r13, %rax
7986 addq %rcx, %r8
7987 rorq $14, %rax
7988 xorq %r10, %rbx
7989 addq %rax, %r8
7990 movq %r9, %rcx
7991 andq %rbx, %rdx
7992 rorq $5, %rcx
7993 xorq %r9, %rcx
7994 xorq %r10, %rdx
7995 rorq $6, %rcx
7996 addq %r8, %r12
7997 xorq %r9, %rcx
7998 addq %rdx, %r8
7999 rorq $28, %rcx
8000 movq %r12, %rax
8001 addq %rcx, %r8
8002 addq $0x100, %rbp
8003 subq $0x01, %rsi
8004 jnz L_sha512_len_avx2_tail
8005 addq (%rdi), %r8
8006 addq 8(%rdi), %r9
8007 addq 16(%rdi), %r10
8008 addq 24(%rdi), %r11
8009 addq 32(%rdi), %r12
8010 addq 40(%rdi), %r13
8011 addq 48(%rdi), %r14
8012 addq 56(%rdi), %r15
8013 movq 224(%rdi), %rcx
8014 addq $0x100, %rcx
8015 subl $0x100, 1344(%rsp)
8016 movq %rcx, 224(%rdi)
8017 movq %r8, (%rdi)
8018 movq %r9, 8(%rdi)
8019 movq %r10, 16(%rdi)
8020 movq %r11, 24(%rdi)
8021 movq %r12, 32(%rdi)
8022 movq %r13, 40(%rdi)
8023 movq %r14, 48(%rdi)
8024 movq %r15, 56(%rdi)
8025 jnz L_sha512_len_avx2_begin
8026 addq $0x548, %rsp
8027L_sha512_len_avx2_done:
8028 xorq %rax, %rax
8029 vzeroupper
8030 popq %rbp
8031 popq %r15
8032 popq %r14
8033 popq %r13
8034 popq %r12
8035 popq %rbx
8036 repz retq
8037#ifndef __APPLE__
8038.size Transform_Sha512_AVX2_Len,.-Transform_Sha512_AVX2_Len
8039#endif /* __APPLE__ */
8040#ifndef __APPLE__
8041.data
8042#else
8043.section __DATA,__data
8044#endif /* __APPLE__ */
8045#ifndef __APPLE__
8046.align 32
8047#else
8048.p2align 5
8049#endif /* __APPLE__ */
8050L_avx2_rorx_sha512_k:
8051.quad 0x428a2f98d728ae22,0x7137449123ef65cd
8052.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
8053.quad 0x3956c25bf348b538,0x59f111f1b605d019
8054.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
8055.quad 0xd807aa98a3030242,0x12835b0145706fbe
8056.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
8057.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
8058.quad 0x9bdc06a725c71235,0xc19bf174cf692694
8059.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
8060.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
8061.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
8062.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
8063.quad 0x983e5152ee66dfab,0xa831c66d2db43210
8064.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
8065.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
8066.quad 0x06ca6351e003826f,0x142929670a0e6e70
8067.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
8068.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
8069.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
8070.quad 0x81c2c92e47edaee6,0x92722c851482353b
8071.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
8072.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
8073.quad 0xd192e819d6ef5218,0xd69906245565a910
8074.quad 0xf40e35855771202a,0x106aa07032bbd1b8
8075.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
8076.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
8077.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
8078.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
8079.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
8080.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
8081.quad 0x90befffa23631e28,0xa4506cebde82bde9
8082.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
8083.quad 0xca273eceea26619c,0xd186b8c721c0c207
8084.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
8085.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
8086.quad 0x113f9804bef90dae,0x1b710b35131c471b
8087.quad 0x28db77f523047d84,0x32caab7b40c72493
8088.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
8089.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
8090.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
8091#ifndef __APPLE__
8092.data
8093#else
8094.section __DATA,__data
8095#endif /* __APPLE__ */
8096#ifndef __APPLE__
8097.align 32
8098#else
8099.p2align 5
8100#endif /* __APPLE__ */
8101L_avx2_rorx_sha512_k_2:
8102.quad 0x428a2f98d728ae22,0x7137449123ef65cd
8103.quad 0x428a2f98d728ae22,0x7137449123ef65cd
8104.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
8105.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
8106.quad 0x3956c25bf348b538,0x59f111f1b605d019
8107.quad 0x3956c25bf348b538,0x59f111f1b605d019
8108.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
8109.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
8110.quad 0xd807aa98a3030242,0x12835b0145706fbe
8111.quad 0xd807aa98a3030242,0x12835b0145706fbe
8112.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
8113.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
8114.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
8115.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
8116.quad 0x9bdc06a725c71235,0xc19bf174cf692694
8117.quad 0x9bdc06a725c71235,0xc19bf174cf692694
8118.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
8119.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
8120.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
8121.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
8122.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
8123.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
8124.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
8125.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
8126.quad 0x983e5152ee66dfab,0xa831c66d2db43210
8127.quad 0x983e5152ee66dfab,0xa831c66d2db43210
8128.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
8129.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
8130.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
8131.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
8132.quad 0x06ca6351e003826f,0x142929670a0e6e70
8133.quad 0x06ca6351e003826f,0x142929670a0e6e70
8134.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
8135.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
8136.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
8137.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
8138.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
8139.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
8140.quad 0x81c2c92e47edaee6,0x92722c851482353b
8141.quad 0x81c2c92e47edaee6,0x92722c851482353b
8142.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
8143.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
8144.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
8145.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
8146.quad 0xd192e819d6ef5218,0xd69906245565a910
8147.quad 0xd192e819d6ef5218,0xd69906245565a910
8148.quad 0xf40e35855771202a,0x106aa07032bbd1b8
8149.quad 0xf40e35855771202a,0x106aa07032bbd1b8
8150.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
8151.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
8152.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
8153.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
8154.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
8155.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
8156.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
8157.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
8158.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
8159.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
8160.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
8161.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
8162.quad 0x90befffa23631e28,0xa4506cebde82bde9
8163.quad 0x90befffa23631e28,0xa4506cebde82bde9
8164.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
8165.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
8166.quad 0xca273eceea26619c,0xd186b8c721c0c207
8167.quad 0xca273eceea26619c,0xd186b8c721c0c207
8168.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
8169.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
8170.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
8171.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
8172.quad 0x113f9804bef90dae,0x1b710b35131c471b
8173.quad 0x113f9804bef90dae,0x1b710b35131c471b
8174.quad 0x28db77f523047d84,0x32caab7b40c72493
8175.quad 0x28db77f523047d84,0x32caab7b40c72493
8176.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
8177.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
8178.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
8179.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
8180.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
8181.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
8182#ifndef __APPLE__
8183.data
8184#else
8185.section __DATA,__data
8186#endif /* __APPLE__ */
8187#ifndef __APPLE__
8188.align 8
8189#else
8190.p2align 3
8191#endif /* __APPLE__ */
8192L_avx2_rorx_sha512_k_2_end:
8193.quad 1024+L_avx2_rorx_sha512_k_2
8194#ifndef __APPLE__
8195.data
8196#else
8197.section __DATA,__data
8198#endif /* __APPLE__ */
8199#ifndef __APPLE__
8200.align 32
8201#else
8202.p2align 5
8203#endif /* __APPLE__ */
8204L_avx2_rorx_sha512_flip_mask:
8205.quad 0x0001020304050607,0x08090a0b0c0d0e0f
8206.quad 0x0001020304050607,0x08090a0b0c0d0e0f
8207#ifndef __APPLE__
8208.text
8209.globl Transform_Sha512_AVX2_RORX
8210.type Transform_Sha512_AVX2_RORX,@function
8211.align 16
8212Transform_Sha512_AVX2_RORX:
8213#else
8214.section __TEXT,__text
8215.globl _Transform_Sha512_AVX2_RORX
8216.p2align 4
8217_Transform_Sha512_AVX2_RORX:
8218#endif /* __APPLE__ */
8219 pushq %rbx
8220 pushq %r12
8221 pushq %r13
8222 pushq %r14
8223 pushq %r15
8224 subq $0x88, %rsp
8225 leaq 64(%rdi), %rcx
8226 vmovdqa L_avx2_rorx_sha512_flip_mask(%rip), %ymm15
8227 movq (%rdi), %r8
8228 movq 8(%rdi), %r9
8229 movq 16(%rdi), %r10
8230 movq 24(%rdi), %r11
8231 movq 32(%rdi), %r12
8232 movq 40(%rdi), %r13
8233 movq 48(%rdi), %r14
8234 movq 56(%rdi), %r15
8235 vmovdqu (%rcx), %ymm0
8236 vmovdqu 32(%rcx), %ymm1
8237 vpshufb %ymm15, %ymm0, %ymm0
8238 vpshufb %ymm15, %ymm1, %ymm1
8239 vmovdqu 64(%rcx), %ymm2
8240 vmovdqu 96(%rcx), %ymm3
8241 vpshufb %ymm15, %ymm2, %ymm2
8242 vpshufb %ymm15, %ymm3, %ymm3
8243 movl $4, 128(%rsp)
8244 leaq L_avx2_rorx_sha512_k(%rip), %rsi
8245 movq %r9, %rbx
8246 xorq %rdx, %rdx
8247 xorq %r10, %rbx
8248 # set_w_k: 0
8249 vpaddq (%rsi), %ymm0, %ymm8
8250 vpaddq 32(%rsi), %ymm1, %ymm9
8251 vmovdqu %ymm8, (%rsp)
8252 vmovdqu %ymm9, 32(%rsp)
8253 vpaddq 64(%rsi), %ymm2, %ymm8
8254 vpaddq 96(%rsi), %ymm3, %ymm9
8255 vmovdqu %ymm8, 64(%rsp)
8256 vmovdqu %ymm9, 96(%rsp)
8257 # Start of 16 rounds
8258L_sha256_len_avx2_rorx_start:
8259 addq $0x80, %rsi
8260 rorxq $14, %r12, %rax
8261 rorxq $18, %r12, %rcx
8262 addq %rdx, %r8
8263 vpblendd $3, %ymm1, %ymm0, %ymm12
8264 vpblendd $3, %ymm3, %ymm2, %ymm13
8265 addq (%rsp), %r15
8266 movq %r13, %rdx
8267 xorq %rax, %rcx
8268 vpermq $57, %ymm12, %ymm12
8269 xorq %r14, %rdx
8270 rorxq $41, %r12, %rax
8271 xorq %rcx, %rax
8272 vpermq $57, %ymm13, %ymm13
8273 andq %r12, %rdx
8274 addq %rax, %r15
8275 rorxq $28, %r8, %rax
8276 vpsrlq $0x01, %ymm12, %ymm8
8277 vpsllq $63, %ymm12, %ymm9
8278 rorxq $34, %r8, %rcx
8279 xorq %r14, %rdx
8280 xorq %rax, %rcx
8281 vpsrlq $8, %ymm12, %ymm10
8282 vpsllq $56, %ymm12, %ymm11
8283 vpor %ymm9, %ymm8, %ymm8
8284 vpor %ymm11, %ymm10, %ymm10
8285 rorxq $39, %r8, %rax
8286 addq %rdx, %r15
8287 xorq %rcx, %rax
8288 vpsrlq $7, %ymm12, %ymm11
8289 movq %r9, %rdx
8290 addq %r15, %r11
8291 xorq %r8, %rdx
8292 vperm2I128 $0x81, %ymm3, %ymm3, %ymm14
8293 andq %rdx, %rbx
8294 addq %rax, %r15
8295 xorq %r9, %rbx
8296 rorxq $14, %r11, %rax
8297 rorxq $18, %r11, %rcx
8298 addq %rbx, %r15
8299 vpxor %ymm10, %ymm8, %ymm8
8300 addq 8(%rsp), %r14
8301 movq %r12, %rbx
8302 xorq %rax, %rcx
8303 vpxor %ymm11, %ymm8, %ymm8
8304 xorq %r13, %rbx
8305 rorxq $41, %r11, %rax
8306 xorq %rcx, %rax
8307 vpaddq %ymm0, %ymm13, %ymm0
8308 vpaddq %ymm0, %ymm8, %ymm0
8309 andq %r11, %rbx
8310 addq %rax, %r14
8311 rorxq $28, %r15, %rax
8312 vpsrlq $19, %ymm14, %ymm8
8313 vpsllq $45, %ymm14, %ymm9
8314 rorxq $34, %r15, %rcx
8315 xorq %r13, %rbx
8316 xorq %rax, %rcx
8317 vpsrlq $61, %ymm14, %ymm10
8318 vpsllq $3, %ymm14, %ymm11
8319 vpor %ymm9, %ymm8, %ymm8
8320 rorxq $39, %r15, %rax
8321 addq %rbx, %r14
8322 xorq %rcx, %rax
8323 vpor %ymm11, %ymm10, %ymm10
8324 movq %r8, %rbx
8325 leaq (%r10,%r14,1), %r10
8326 xorq %r15, %rbx
8327 vpxor %ymm10, %ymm8, %ymm8
8328 andq %rbx, %rdx
8329 addq %rax, %r14
8330 xorq %r8, %rdx
8331 vpsrlq $6, %ymm14, %ymm11
8332 rorxq $14, %r10, %rax
8333 rorxq $18, %r10, %rcx
8334 addq %rdx, %r14
8335 vpxor %ymm11, %ymm8, %ymm8
8336 addq 16(%rsp), %r13
8337 movq %r11, %rdx
8338 xorq %rax, %rcx
8339 vpaddq %ymm0, %ymm8, %ymm0
8340 xorq %r12, %rdx
8341 rorxq $41, %r10, %rax
8342 xorq %rcx, %rax
8343 vperm2I128 $8, %ymm0, %ymm0, %ymm14
8344 andq %r10, %rdx
8345 addq %rax, %r13
8346 rorxq $28, %r14, %rax
8347 rorxq $34, %r14, %rcx
8348 xorq %r12, %rdx
8349 xorq %rax, %rcx
8350 vpsrlq $19, %ymm14, %ymm8
8351 vpsllq $45, %ymm14, %ymm9
8352 rorxq $39, %r14, %rax
8353 addq %rdx, %r13
8354 xorq %rcx, %rax
8355 vpsrlq $61, %ymm14, %ymm10
8356 vpsllq $3, %ymm14, %ymm11
8357 vpor %ymm9, %ymm8, %ymm8
8358 movq %r15, %rdx
8359 addq %r13, %r9
8360 xorq %r14, %rdx
8361 vpor %ymm11, %ymm10, %ymm10
8362 andq %rdx, %rbx
8363 addq %rax, %r13
8364 xorq %r15, %rbx
8365 vpxor %ymm10, %ymm8, %ymm8
8366 rorxq $14, %r9, %rax
8367 rorxq $18, %r9, %rcx
8368 addq %rbx, %r13
8369 vpsrlq $6, %ymm14, %ymm11
8370 addq 24(%rsp), %r12
8371 movq %r10, %rbx
8372 xorq %rax, %rcx
8373 xorq %r11, %rbx
8374 rorxq $41, %r9, %rax
8375 xorq %rcx, %rax
8376 vpxor %ymm11, %ymm8, %ymm8
8377 andq %r9, %rbx
8378 addq %rax, %r12
8379 rorxq $28, %r13, %rax
8380 rorxq $34, %r13, %rcx
8381 xorq %r11, %rbx
8382 xorq %rax, %rcx
8383 vpaddq %ymm0, %ymm8, %ymm0
8384 rorxq $39, %r13, %rax
8385 addq %rbx, %r12
8386 xorq %rcx, %rax
8387 vpaddq (%rsi), %ymm0, %ymm8
8388 movq %r14, %rbx
8389 leaq (%r8,%r12,1), %r8
8390 xorq %r13, %rbx
8391 andq %rbx, %rdx
8392 addq %rax, %r12
8393 xorq %r14, %rdx
8394 vmovdqu %ymm8, (%rsp)
8395 rorxq $14, %r8, %rax
8396 rorxq $18, %r8, %rcx
8397 addq %rdx, %r12
8398 vpblendd $3, %ymm2, %ymm1, %ymm12
8399 vpblendd $3, %ymm0, %ymm3, %ymm13
8400 addq 32(%rsp), %r11
8401 movq %r9, %rdx
8402 xorq %rax, %rcx
8403 vpermq $57, %ymm12, %ymm12
8404 xorq %r10, %rdx
8405 rorxq $41, %r8, %rax
8406 xorq %rcx, %rax
8407 vpermq $57, %ymm13, %ymm13
8408 andq %r8, %rdx
8409 addq %rax, %r11
8410 rorxq $28, %r12, %rax
8411 vpsrlq $0x01, %ymm12, %ymm8
8412 vpsllq $63, %ymm12, %ymm9
8413 rorxq $34, %r12, %rcx
8414 xorq %r10, %rdx
8415 xorq %rax, %rcx
8416 vpsrlq $8, %ymm12, %ymm10
8417 vpsllq $56, %ymm12, %ymm11
8418 vpor %ymm9, %ymm8, %ymm8
8419 vpor %ymm11, %ymm10, %ymm10
8420 rorxq $39, %r12, %rax
8421 addq %rdx, %r11
8422 xorq %rcx, %rax
8423 vpsrlq $7, %ymm12, %ymm11
8424 movq %r13, %rdx
8425 addq %r11, %r15
8426 xorq %r12, %rdx
8427 vperm2I128 $0x81, %ymm0, %ymm0, %ymm14
8428 andq %rdx, %rbx
8429 addq %rax, %r11
8430 xorq %r13, %rbx
8431 rorxq $14, %r15, %rax
8432 rorxq $18, %r15, %rcx
8433 addq %rbx, %r11
8434 vpxor %ymm10, %ymm8, %ymm8
8435 addq 40(%rsp), %r10
8436 movq %r8, %rbx
8437 xorq %rax, %rcx
8438 vpxor %ymm11, %ymm8, %ymm8
8439 xorq %r9, %rbx
8440 rorxq $41, %r15, %rax
8441 xorq %rcx, %rax
8442 vpaddq %ymm1, %ymm13, %ymm1
8443 vpaddq %ymm1, %ymm8, %ymm1
8444 andq %r15, %rbx
8445 addq %rax, %r10
8446 rorxq $28, %r11, %rax
8447 vpsrlq $19, %ymm14, %ymm8
8448 vpsllq $45, %ymm14, %ymm9
8449 rorxq $34, %r11, %rcx
8450 xorq %r9, %rbx
8451 xorq %rax, %rcx
8452 vpsrlq $61, %ymm14, %ymm10
8453 vpsllq $3, %ymm14, %ymm11
8454 vpor %ymm9, %ymm8, %ymm8
8455 rorxq $39, %r11, %rax
8456 addq %rbx, %r10
8457 xorq %rcx, %rax
8458 vpor %ymm11, %ymm10, %ymm10
8459 movq %r12, %rbx
8460 leaq (%r14,%r10,1), %r14
8461 xorq %r11, %rbx
8462 vpxor %ymm10, %ymm8, %ymm8
8463 andq %rbx, %rdx
8464 addq %rax, %r10
8465 xorq %r12, %rdx
8466 vpsrlq $6, %ymm14, %ymm11
8467 rorxq $14, %r14, %rax
8468 rorxq $18, %r14, %rcx
8469 addq %rdx, %r10
8470 vpxor %ymm11, %ymm8, %ymm8
8471 addq 48(%rsp), %r9
8472 movq %r15, %rdx
8473 xorq %rax, %rcx
8474 vpaddq %ymm1, %ymm8, %ymm1
8475 xorq %r8, %rdx
8476 rorxq $41, %r14, %rax
8477 xorq %rcx, %rax
8478 vperm2I128 $8, %ymm1, %ymm1, %ymm14
8479 andq %r14, %rdx
8480 addq %rax, %r9
8481 rorxq $28, %r10, %rax
8482 rorxq $34, %r10, %rcx
8483 xorq %r8, %rdx
8484 xorq %rax, %rcx
8485 vpsrlq $19, %ymm14, %ymm8
8486 vpsllq $45, %ymm14, %ymm9
8487 rorxq $39, %r10, %rax
8488 addq %rdx, %r9
8489 xorq %rcx, %rax
8490 vpsrlq $61, %ymm14, %ymm10
8491 vpsllq $3, %ymm14, %ymm11
8492 vpor %ymm9, %ymm8, %ymm8
8493 movq %r11, %rdx
8494 addq %r9, %r13
8495 xorq %r10, %rdx
8496 vpor %ymm11, %ymm10, %ymm10
8497 andq %rdx, %rbx
8498 addq %rax, %r9
8499 xorq %r11, %rbx
8500 vpxor %ymm10, %ymm8, %ymm8
8501 rorxq $14, %r13, %rax
8502 rorxq $18, %r13, %rcx
8503 addq %rbx, %r9
8504 vpsrlq $6, %ymm14, %ymm11
8505 addq 56(%rsp), %r8
8506 movq %r14, %rbx
8507 xorq %rax, %rcx
8508 xorq %r15, %rbx
8509 rorxq $41, %r13, %rax
8510 xorq %rcx, %rax
8511 vpxor %ymm11, %ymm8, %ymm8
8512 andq %r13, %rbx
8513 addq %rax, %r8
8514 rorxq $28, %r9, %rax
8515 rorxq $34, %r9, %rcx
8516 xorq %r15, %rbx
8517 xorq %rax, %rcx
8518 vpaddq %ymm1, %ymm8, %ymm1
8519 rorxq $39, %r9, %rax
8520 addq %rbx, %r8
8521 xorq %rcx, %rax
8522 vpaddq 32(%rsi), %ymm1, %ymm8
8523 movq %r10, %rbx
8524 leaq (%r12,%r8,1), %r12
8525 xorq %r9, %rbx
8526 andq %rbx, %rdx
8527 addq %rax, %r8
8528 xorq %r10, %rdx
8529 vmovdqu %ymm8, 32(%rsp)
8530 rorxq $14, %r12, %rax
8531 rorxq $18, %r12, %rcx
8532 addq %rdx, %r8
8533 vpblendd $3, %ymm3, %ymm2, %ymm12
8534 vpblendd $3, %ymm1, %ymm0, %ymm13
8535 addq 64(%rsp), %r15
8536 movq %r13, %rdx
8537 xorq %rax, %rcx
8538 vpermq $57, %ymm12, %ymm12
8539 xorq %r14, %rdx
8540 rorxq $41, %r12, %rax
8541 xorq %rcx, %rax
8542 vpermq $57, %ymm13, %ymm13
8543 andq %r12, %rdx
8544 addq %rax, %r15
8545 rorxq $28, %r8, %rax
8546 vpsrlq $0x01, %ymm12, %ymm8
8547 vpsllq $63, %ymm12, %ymm9
8548 rorxq $34, %r8, %rcx
8549 xorq %r14, %rdx
8550 xorq %rax, %rcx
8551 vpsrlq $8, %ymm12, %ymm10
8552 vpsllq $56, %ymm12, %ymm11
8553 vpor %ymm9, %ymm8, %ymm8
8554 vpor %ymm11, %ymm10, %ymm10
8555 rorxq $39, %r8, %rax
8556 addq %rdx, %r15
8557 xorq %rcx, %rax
8558 vpsrlq $7, %ymm12, %ymm11
8559 movq %r9, %rdx
8560 addq %r15, %r11
8561 xorq %r8, %rdx
8562 vperm2I128 $0x81, %ymm1, %ymm1, %ymm14
8563 andq %rdx, %rbx
8564 addq %rax, %r15
8565 xorq %r9, %rbx
8566 rorxq $14, %r11, %rax
8567 rorxq $18, %r11, %rcx
8568 addq %rbx, %r15
8569 vpxor %ymm10, %ymm8, %ymm8
8570 addq 72(%rsp), %r14
8571 movq %r12, %rbx
8572 xorq %rax, %rcx
8573 vpxor %ymm11, %ymm8, %ymm8
8574 xorq %r13, %rbx
8575 rorxq $41, %r11, %rax
8576 xorq %rcx, %rax
8577 vpaddq %ymm2, %ymm13, %ymm2
8578 vpaddq %ymm2, %ymm8, %ymm2
8579 andq %r11, %rbx
8580 addq %rax, %r14
8581 rorxq $28, %r15, %rax
8582 vpsrlq $19, %ymm14, %ymm8
8583 vpsllq $45, %ymm14, %ymm9
8584 rorxq $34, %r15, %rcx
8585 xorq %r13, %rbx
8586 xorq %rax, %rcx
8587 vpsrlq $61, %ymm14, %ymm10
8588 vpsllq $3, %ymm14, %ymm11
8589 vpor %ymm9, %ymm8, %ymm8
8590 rorxq $39, %r15, %rax
8591 addq %rbx, %r14
8592 xorq %rcx, %rax
8593 vpor %ymm11, %ymm10, %ymm10
8594 movq %r8, %rbx
8595 leaq (%r10,%r14,1), %r10
8596 xorq %r15, %rbx
8597 vpxor %ymm10, %ymm8, %ymm8
8598 andq %rbx, %rdx
8599 addq %rax, %r14
8600 xorq %r8, %rdx
8601 vpsrlq $6, %ymm14, %ymm11
8602 rorxq $14, %r10, %rax
8603 rorxq $18, %r10, %rcx
8604 addq %rdx, %r14
8605 vpxor %ymm11, %ymm8, %ymm8
8606 addq 80(%rsp), %r13
8607 movq %r11, %rdx
8608 xorq %rax, %rcx
8609 vpaddq %ymm2, %ymm8, %ymm2
8610 xorq %r12, %rdx
8611 rorxq $41, %r10, %rax
8612 xorq %rcx, %rax
8613 vperm2I128 $8, %ymm2, %ymm2, %ymm14
8614 andq %r10, %rdx
8615 addq %rax, %r13
8616 rorxq $28, %r14, %rax
8617 rorxq $34, %r14, %rcx
8618 xorq %r12, %rdx
8619 xorq %rax, %rcx
8620 vpsrlq $19, %ymm14, %ymm8
8621 vpsllq $45, %ymm14, %ymm9
8622 rorxq $39, %r14, %rax
8623 addq %rdx, %r13
8624 xorq %rcx, %rax
8625 vpsrlq $61, %ymm14, %ymm10
8626 vpsllq $3, %ymm14, %ymm11
8627 vpor %ymm9, %ymm8, %ymm8
8628 movq %r15, %rdx
8629 addq %r13, %r9
8630 xorq %r14, %rdx
8631 vpor %ymm11, %ymm10, %ymm10
8632 andq %rdx, %rbx
8633 addq %rax, %r13
8634 xorq %r15, %rbx
8635 vpxor %ymm10, %ymm8, %ymm8
8636 rorxq $14, %r9, %rax
8637 rorxq $18, %r9, %rcx
8638 addq %rbx, %r13
8639 vpsrlq $6, %ymm14, %ymm11
8640 addq 88(%rsp), %r12
8641 movq %r10, %rbx
8642 xorq %rax, %rcx
8643 xorq %r11, %rbx
8644 rorxq $41, %r9, %rax
8645 xorq %rcx, %rax
8646 vpxor %ymm11, %ymm8, %ymm8
8647 andq %r9, %rbx
8648 addq %rax, %r12
8649 rorxq $28, %r13, %rax
8650 rorxq $34, %r13, %rcx
8651 xorq %r11, %rbx
8652 xorq %rax, %rcx
8653 vpaddq %ymm2, %ymm8, %ymm2
8654 rorxq $39, %r13, %rax
8655 addq %rbx, %r12
8656 xorq %rcx, %rax
8657 vpaddq 64(%rsi), %ymm2, %ymm8
8658 movq %r14, %rbx
8659 leaq (%r8,%r12,1), %r8
8660 xorq %r13, %rbx
8661 andq %rbx, %rdx
8662 addq %rax, %r12
8663 xorq %r14, %rdx
8664 vmovdqu %ymm8, 64(%rsp)
8665 rorxq $14, %r8, %rax
8666 rorxq $18, %r8, %rcx
8667 addq %rdx, %r12
8668 vpblendd $3, %ymm0, %ymm3, %ymm12
8669 vpblendd $3, %ymm2, %ymm1, %ymm13
8670 addq 96(%rsp), %r11
8671 movq %r9, %rdx
8672 xorq %rax, %rcx
8673 vpermq $57, %ymm12, %ymm12
8674 xorq %r10, %rdx
8675 rorxq $41, %r8, %rax
8676 xorq %rcx, %rax
8677 vpermq $57, %ymm13, %ymm13
8678 andq %r8, %rdx
8679 addq %rax, %r11
8680 rorxq $28, %r12, %rax
8681 vpsrlq $0x01, %ymm12, %ymm8
8682 vpsllq $63, %ymm12, %ymm9
8683 rorxq $34, %r12, %rcx
8684 xorq %r10, %rdx
8685 xorq %rax, %rcx
8686 vpsrlq $8, %ymm12, %ymm10
8687 vpsllq $56, %ymm12, %ymm11
8688 vpor %ymm9, %ymm8, %ymm8
8689 vpor %ymm11, %ymm10, %ymm10
8690 rorxq $39, %r12, %rax
8691 addq %rdx, %r11
8692 xorq %rcx, %rax
8693 vpsrlq $7, %ymm12, %ymm11
8694 movq %r13, %rdx
8695 addq %r11, %r15
8696 xorq %r12, %rdx
8697 vperm2I128 $0x81, %ymm2, %ymm2, %ymm14
8698 andq %rdx, %rbx
8699 addq %rax, %r11
8700 xorq %r13, %rbx
8701 rorxq $14, %r15, %rax
8702 rorxq $18, %r15, %rcx
8703 addq %rbx, %r11
8704 vpxor %ymm10, %ymm8, %ymm8
8705 addq 104(%rsp), %r10
8706 movq %r8, %rbx
8707 xorq %rax, %rcx
8708 vpxor %ymm11, %ymm8, %ymm8
8709 xorq %r9, %rbx
8710 rorxq $41, %r15, %rax
8711 xorq %rcx, %rax
8712 vpaddq %ymm3, %ymm13, %ymm3
8713 vpaddq %ymm3, %ymm8, %ymm3
8714 andq %r15, %rbx
8715 addq %rax, %r10
8716 rorxq $28, %r11, %rax
8717 vpsrlq $19, %ymm14, %ymm8
8718 vpsllq $45, %ymm14, %ymm9
8719 rorxq $34, %r11, %rcx
8720 xorq %r9, %rbx
8721 xorq %rax, %rcx
8722 vpsrlq $61, %ymm14, %ymm10
8723 vpsllq $3, %ymm14, %ymm11
8724 vpor %ymm9, %ymm8, %ymm8
8725 rorxq $39, %r11, %rax
8726 addq %rbx, %r10
8727 xorq %rcx, %rax
8728 vpor %ymm11, %ymm10, %ymm10
8729 movq %r12, %rbx
8730 leaq (%r14,%r10,1), %r14
8731 xorq %r11, %rbx
8732 vpxor %ymm10, %ymm8, %ymm8
8733 andq %rbx, %rdx
8734 addq %rax, %r10
8735 xorq %r12, %rdx
8736 vpsrlq $6, %ymm14, %ymm11
8737 rorxq $14, %r14, %rax
8738 rorxq $18, %r14, %rcx
8739 addq %rdx, %r10
8740 vpxor %ymm11, %ymm8, %ymm8
8741 addq 112(%rsp), %r9
8742 movq %r15, %rdx
8743 xorq %rax, %rcx
8744 vpaddq %ymm3, %ymm8, %ymm3
8745 xorq %r8, %rdx
8746 rorxq $41, %r14, %rax
8747 xorq %rcx, %rax
8748 vperm2I128 $8, %ymm3, %ymm3, %ymm14
8749 andq %r14, %rdx
8750 addq %rax, %r9
8751 rorxq $28, %r10, %rax
8752 rorxq $34, %r10, %rcx
8753 xorq %r8, %rdx
8754 xorq %rax, %rcx
8755 vpsrlq $19, %ymm14, %ymm8
8756 vpsllq $45, %ymm14, %ymm9
8757 rorxq $39, %r10, %rax
8758 addq %rdx, %r9
8759 xorq %rcx, %rax
8760 vpsrlq $61, %ymm14, %ymm10
8761 vpsllq $3, %ymm14, %ymm11
8762 vpor %ymm9, %ymm8, %ymm8
8763 movq %r11, %rdx
8764 addq %r9, %r13
8765 xorq %r10, %rdx
8766 vpor %ymm11, %ymm10, %ymm10
8767 andq %rdx, %rbx
8768 addq %rax, %r9
8769 xorq %r11, %rbx
8770 vpxor %ymm10, %ymm8, %ymm8
8771 rorxq $14, %r13, %rax
8772 rorxq $18, %r13, %rcx
8773 addq %rbx, %r9
8774 vpsrlq $6, %ymm14, %ymm11
8775 addq 120(%rsp), %r8
8776 movq %r14, %rbx
8777 xorq %rax, %rcx
8778 xorq %r15, %rbx
8779 rorxq $41, %r13, %rax
8780 xorq %rcx, %rax
8781 vpxor %ymm11, %ymm8, %ymm8
8782 andq %r13, %rbx
8783 addq %rax, %r8
8784 rorxq $28, %r9, %rax
8785 rorxq $34, %r9, %rcx
8786 xorq %r15, %rbx
8787 xorq %rax, %rcx
8788 vpaddq %ymm3, %ymm8, %ymm3
8789 rorxq $39, %r9, %rax
8790 addq %rbx, %r8
8791 xorq %rcx, %rax
8792 vpaddq 96(%rsi), %ymm3, %ymm8
8793 movq %r10, %rbx
8794 leaq (%r12,%r8,1), %r12
8795 xorq %r9, %rbx
8796 andq %rbx, %rdx
8797 addq %rax, %r8
8798 xorq %r10, %rdx
8799 vmovdqu %ymm8, 96(%rsp)
8800 subl $0x01, 128(%rsp)
8801 jne L_sha256_len_avx2_rorx_start
8802 # rnd_all_4: 0-3
8803 rorxq $14, %r12, %rax
8804 rorxq $18, %r12, %rcx
8805 addq %rdx, %r8
8806 addq (%rsp), %r15
8807 movq %r13, %rdx
8808 xorq %rax, %rcx
8809 xorq %r14, %rdx
8810 rorxq $41, %r12, %rax
8811 xorq %rcx, %rax
8812 andq %r12, %rdx
8813 addq %rax, %r15
8814 rorxq $28, %r8, %rax
8815 rorxq $34, %r8, %rcx
8816 xorq %r14, %rdx
8817 xorq %rax, %rcx
8818 rorxq $39, %r8, %rax
8819 addq %rdx, %r15
8820 xorq %rcx, %rax
8821 movq %r9, %rdx
8822 addq %r15, %r11
8823 xorq %r8, %rdx
8824 andq %rdx, %rbx
8825 addq %rax, %r15
8826 xorq %r9, %rbx
8827 rorxq $14, %r11, %rax
8828 rorxq $18, %r11, %rcx
8829 addq %rbx, %r15
8830 addq 8(%rsp), %r14
8831 movq %r12, %rbx
8832 xorq %rax, %rcx
8833 xorq %r13, %rbx
8834 rorxq $41, %r11, %rax
8835 xorq %rcx, %rax
8836 andq %r11, %rbx
8837 addq %rax, %r14
8838 rorxq $28, %r15, %rax
8839 rorxq $34, %r15, %rcx
8840 xorq %r13, %rbx
8841 xorq %rax, %rcx
8842 rorxq $39, %r15, %rax
8843 addq %rbx, %r14
8844 xorq %rcx, %rax
8845 movq %r8, %rbx
8846 leaq (%r10,%r14,1), %r10
8847 xorq %r15, %rbx
8848 andq %rbx, %rdx
8849 addq %rax, %r14
8850 xorq %r8, %rdx
8851 rorxq $14, %r10, %rax
8852 rorxq $18, %r10, %rcx
8853 addq %rdx, %r14
8854 addq 16(%rsp), %r13
8855 movq %r11, %rdx
8856 xorq %rax, %rcx
8857 xorq %r12, %rdx
8858 rorxq $41, %r10, %rax
8859 xorq %rcx, %rax
8860 andq %r10, %rdx
8861 addq %rax, %r13
8862 rorxq $28, %r14, %rax
8863 rorxq $34, %r14, %rcx
8864 xorq %r12, %rdx
8865 xorq %rax, %rcx
8866 rorxq $39, %r14, %rax
8867 addq %rdx, %r13
8868 xorq %rcx, %rax
8869 movq %r15, %rdx
8870 addq %r13, %r9
8871 xorq %r14, %rdx
8872 andq %rdx, %rbx
8873 addq %rax, %r13
8874 xorq %r15, %rbx
8875 rorxq $14, %r9, %rax
8876 rorxq $18, %r9, %rcx
8877 addq %rbx, %r13
8878 addq 24(%rsp), %r12
8879 movq %r10, %rbx
8880 xorq %rax, %rcx
8881 xorq %r11, %rbx
8882 rorxq $41, %r9, %rax
8883 xorq %rcx, %rax
8884 andq %r9, %rbx
8885 addq %rax, %r12
8886 rorxq $28, %r13, %rax
8887 rorxq $34, %r13, %rcx
8888 xorq %r11, %rbx
8889 xorq %rax, %rcx
8890 rorxq $39, %r13, %rax
8891 addq %rbx, %r12
8892 xorq %rcx, %rax
8893 movq %r14, %rbx
8894 leaq (%r8,%r12,1), %r8
8895 xorq %r13, %rbx
8896 andq %rbx, %rdx
8897 addq %rax, %r12
8898 xorq %r14, %rdx
8899 # rnd_all_4: 4-7
8900 rorxq $14, %r8, %rax
8901 rorxq $18, %r8, %rcx
8902 addq %rdx, %r12
8903 addq 32(%rsp), %r11
8904 movq %r9, %rdx
8905 xorq %rax, %rcx
8906 xorq %r10, %rdx
8907 rorxq $41, %r8, %rax
8908 xorq %rcx, %rax
8909 andq %r8, %rdx
8910 addq %rax, %r11
8911 rorxq $28, %r12, %rax
8912 rorxq $34, %r12, %rcx
8913 xorq %r10, %rdx
8914 xorq %rax, %rcx
8915 rorxq $39, %r12, %rax
8916 addq %rdx, %r11
8917 xorq %rcx, %rax
8918 movq %r13, %rdx
8919 addq %r11, %r15
8920 xorq %r12, %rdx
8921 andq %rdx, %rbx
8922 addq %rax, %r11
8923 xorq %r13, %rbx
8924 rorxq $14, %r15, %rax
8925 rorxq $18, %r15, %rcx
8926 addq %rbx, %r11
8927 addq 40(%rsp), %r10
8928 movq %r8, %rbx
8929 xorq %rax, %rcx
8930 xorq %r9, %rbx
8931 rorxq $41, %r15, %rax
8932 xorq %rcx, %rax
8933 andq %r15, %rbx
8934 addq %rax, %r10
8935 rorxq $28, %r11, %rax
8936 rorxq $34, %r11, %rcx
8937 xorq %r9, %rbx
8938 xorq %rax, %rcx
8939 rorxq $39, %r11, %rax
8940 addq %rbx, %r10
8941 xorq %rcx, %rax
8942 movq %r12, %rbx
8943 leaq (%r14,%r10,1), %r14
8944 xorq %r11, %rbx
8945 andq %rbx, %rdx
8946 addq %rax, %r10
8947 xorq %r12, %rdx
8948 rorxq $14, %r14, %rax
8949 rorxq $18, %r14, %rcx
8950 addq %rdx, %r10
8951 addq 48(%rsp), %r9
8952 movq %r15, %rdx
8953 xorq %rax, %rcx
8954 xorq %r8, %rdx
8955 rorxq $41, %r14, %rax
8956 xorq %rcx, %rax
8957 andq %r14, %rdx
8958 addq %rax, %r9
8959 rorxq $28, %r10, %rax
8960 rorxq $34, %r10, %rcx
8961 xorq %r8, %rdx
8962 xorq %rax, %rcx
8963 rorxq $39, %r10, %rax
8964 addq %rdx, %r9
8965 xorq %rcx, %rax
8966 movq %r11, %rdx
8967 addq %r9, %r13
8968 xorq %r10, %rdx
8969 andq %rdx, %rbx
8970 addq %rax, %r9
8971 xorq %r11, %rbx
8972 rorxq $14, %r13, %rax
8973 rorxq $18, %r13, %rcx
8974 addq %rbx, %r9
8975 addq 56(%rsp), %r8
8976 movq %r14, %rbx
8977 xorq %rax, %rcx
8978 xorq %r15, %rbx
8979 rorxq $41, %r13, %rax
8980 xorq %rcx, %rax
8981 andq %r13, %rbx
8982 addq %rax, %r8
8983 rorxq $28, %r9, %rax
8984 rorxq $34, %r9, %rcx
8985 xorq %r15, %rbx
8986 xorq %rax, %rcx
8987 rorxq $39, %r9, %rax
8988 addq %rbx, %r8
8989 xorq %rcx, %rax
8990 movq %r10, %rbx
8991 leaq (%r12,%r8,1), %r12
8992 xorq %r9, %rbx
8993 andq %rbx, %rdx
8994 addq %rax, %r8
8995 xorq %r10, %rdx
8996 # rnd_all_4: 8-11
8997 rorxq $14, %r12, %rax
8998 rorxq $18, %r12, %rcx
8999 addq %rdx, %r8
9000 addq 64(%rsp), %r15
9001 movq %r13, %rdx
9002 xorq %rax, %rcx
9003 xorq %r14, %rdx
9004 rorxq $41, %r12, %rax
9005 xorq %rcx, %rax
9006 andq %r12, %rdx
9007 addq %rax, %r15
9008 rorxq $28, %r8, %rax
9009 rorxq $34, %r8, %rcx
9010 xorq %r14, %rdx
9011 xorq %rax, %rcx
9012 rorxq $39, %r8, %rax
9013 addq %rdx, %r15
9014 xorq %rcx, %rax
9015 movq %r9, %rdx
9016 addq %r15, %r11
9017 xorq %r8, %rdx
9018 andq %rdx, %rbx
9019 addq %rax, %r15
9020 xorq %r9, %rbx
9021 rorxq $14, %r11, %rax
9022 rorxq $18, %r11, %rcx
9023 addq %rbx, %r15
9024 addq 72(%rsp), %r14
9025 movq %r12, %rbx
9026 xorq %rax, %rcx
9027 xorq %r13, %rbx
9028 rorxq $41, %r11, %rax
9029 xorq %rcx, %rax
9030 andq %r11, %rbx
9031 addq %rax, %r14
9032 rorxq $28, %r15, %rax
9033 rorxq $34, %r15, %rcx
9034 xorq %r13, %rbx
9035 xorq %rax, %rcx
9036 rorxq $39, %r15, %rax
9037 addq %rbx, %r14
9038 xorq %rcx, %rax
9039 movq %r8, %rbx
9040 leaq (%r10,%r14,1), %r10
9041 xorq %r15, %rbx
9042 andq %rbx, %rdx
9043 addq %rax, %r14
9044 xorq %r8, %rdx
9045 rorxq $14, %r10, %rax
9046 rorxq $18, %r10, %rcx
9047 addq %rdx, %r14
9048 addq 80(%rsp), %r13
9049 movq %r11, %rdx
9050 xorq %rax, %rcx
9051 xorq %r12, %rdx
9052 rorxq $41, %r10, %rax
9053 xorq %rcx, %rax
9054 andq %r10, %rdx
9055 addq %rax, %r13
9056 rorxq $28, %r14, %rax
9057 rorxq $34, %r14, %rcx
9058 xorq %r12, %rdx
9059 xorq %rax, %rcx
9060 rorxq $39, %r14, %rax
9061 addq %rdx, %r13
9062 xorq %rcx, %rax
9063 movq %r15, %rdx
9064 addq %r13, %r9
9065 xorq %r14, %rdx
9066 andq %rdx, %rbx
9067 addq %rax, %r13
9068 xorq %r15, %rbx
9069 rorxq $14, %r9, %rax
9070 rorxq $18, %r9, %rcx
9071 addq %rbx, %r13
9072 addq 88(%rsp), %r12
9073 movq %r10, %rbx
9074 xorq %rax, %rcx
9075 xorq %r11, %rbx
9076 rorxq $41, %r9, %rax
9077 xorq %rcx, %rax
9078 andq %r9, %rbx
9079 addq %rax, %r12
9080 rorxq $28, %r13, %rax
9081 rorxq $34, %r13, %rcx
9082 xorq %r11, %rbx
9083 xorq %rax, %rcx
9084 rorxq $39, %r13, %rax
9085 addq %rbx, %r12
9086 xorq %rcx, %rax
9087 movq %r14, %rbx
9088 leaq (%r8,%r12,1), %r8
9089 xorq %r13, %rbx
9090 andq %rbx, %rdx
9091 addq %rax, %r12
9092 xorq %r14, %rdx
9093 # rnd_all_4: 12-15
9094 rorxq $14, %r8, %rax
9095 rorxq $18, %r8, %rcx
9096 addq %rdx, %r12
9097 addq 96(%rsp), %r11
9098 movq %r9, %rdx
9099 xorq %rax, %rcx
9100 xorq %r10, %rdx
9101 rorxq $41, %r8, %rax
9102 xorq %rcx, %rax
9103 andq %r8, %rdx
9104 addq %rax, %r11
9105 rorxq $28, %r12, %rax
9106 rorxq $34, %r12, %rcx
9107 xorq %r10, %rdx
9108 xorq %rax, %rcx
9109 rorxq $39, %r12, %rax
9110 addq %rdx, %r11
9111 xorq %rcx, %rax
9112 movq %r13, %rdx
9113 addq %r11, %r15
9114 xorq %r12, %rdx
9115 andq %rdx, %rbx
9116 addq %rax, %r11
9117 xorq %r13, %rbx
9118 rorxq $14, %r15, %rax
9119 rorxq $18, %r15, %rcx
9120 addq %rbx, %r11
9121 addq 104(%rsp), %r10
9122 movq %r8, %rbx
9123 xorq %rax, %rcx
9124 xorq %r9, %rbx
9125 rorxq $41, %r15, %rax
9126 xorq %rcx, %rax
9127 andq %r15, %rbx
9128 addq %rax, %r10
9129 rorxq $28, %r11, %rax
9130 rorxq $34, %r11, %rcx
9131 xorq %r9, %rbx
9132 xorq %rax, %rcx
9133 rorxq $39, %r11, %rax
9134 addq %rbx, %r10
9135 xorq %rcx, %rax
9136 movq %r12, %rbx
9137 leaq (%r14,%r10,1), %r14
9138 xorq %r11, %rbx
9139 andq %rbx, %rdx
9140 addq %rax, %r10
9141 xorq %r12, %rdx
9142 rorxq $14, %r14, %rax
9143 rorxq $18, %r14, %rcx
9144 addq %rdx, %r10
9145 addq 112(%rsp), %r9
9146 movq %r15, %rdx
9147 xorq %rax, %rcx
9148 xorq %r8, %rdx
9149 rorxq $41, %r14, %rax
9150 xorq %rcx, %rax
9151 andq %r14, %rdx
9152 addq %rax, %r9
9153 rorxq $28, %r10, %rax
9154 rorxq $34, %r10, %rcx
9155 xorq %r8, %rdx
9156 xorq %rax, %rcx
9157 rorxq $39, %r10, %rax
9158 addq %rdx, %r9
9159 xorq %rcx, %rax
9160 movq %r11, %rdx
9161 addq %r9, %r13
9162 xorq %r10, %rdx
9163 andq %rdx, %rbx
9164 addq %rax, %r9
9165 xorq %r11, %rbx
9166 rorxq $14, %r13, %rax
9167 rorxq $18, %r13, %rcx
9168 addq %rbx, %r9
9169 addq 120(%rsp), %r8
9170 movq %r14, %rbx
9171 xorq %rax, %rcx
9172 xorq %r15, %rbx
9173 rorxq $41, %r13, %rax
9174 xorq %rcx, %rax
9175 andq %r13, %rbx
9176 addq %rax, %r8
9177 rorxq $28, %r9, %rax
9178 rorxq $34, %r9, %rcx
9179 xorq %r15, %rbx
9180 xorq %rax, %rcx
9181 rorxq $39, %r9, %rax
9182 addq %rbx, %r8
9183 xorq %rcx, %rax
9184 movq %r10, %rbx
9185 leaq (%r12,%r8,1), %r12
9186 xorq %r9, %rbx
9187 andq %rbx, %rdx
9188 addq %rax, %r8
9189 xorq %r10, %rdx
9190 addq %rdx, %r8
9191 addq %r8, (%rdi)
9192 addq %r9, 8(%rdi)
9193 addq %r10, 16(%rdi)
9194 addq %r11, 24(%rdi)
9195 addq %r12, 32(%rdi)
9196 addq %r13, 40(%rdi)
9197 addq %r14, 48(%rdi)
9198 addq %r15, 56(%rdi)
9199 xorq %rax, %rax
9200 vzeroupper
9201 addq $0x88, %rsp
9202 popq %r15
9203 popq %r14
9204 popq %r13
9205 popq %r12
9206 popq %rbx
9207 repz retq
9208#ifndef __APPLE__
9209.size Transform_Sha512_AVX2_RORX,.-Transform_Sha512_AVX2_RORX
9210#endif /* __APPLE__ */
9211#ifndef __APPLE__
9212.text
9213.globl Transform_Sha512_AVX2_RORX_Len
9214.type Transform_Sha512_AVX2_RORX_Len,@function
9215.align 16
9216Transform_Sha512_AVX2_RORX_Len:
9217#else
9218.section __TEXT,__text
9219.globl _Transform_Sha512_AVX2_RORX_Len
9220.p2align 4
9221_Transform_Sha512_AVX2_RORX_Len:
9222#endif /* __APPLE__ */
9223 pushq %rbx
9224 pushq %r12
9225 pushq %r13
9226 pushq %r14
9227 pushq %r15
9228 pushq %rbp
9229 testb $0x80, %sil
9230 je L_sha512_len_avx2_rorx_block
9231 movq 224(%rdi), %rax
9232 push %rsi
9233 vmovdqu (%rax), %ymm0
9234 vmovdqu 32(%rax), %ymm1
9235 vmovdqu 64(%rax), %ymm2
9236 vmovdqu 96(%rax), %ymm3
9237 vmovups %ymm0, 64(%rdi)
9238 vmovups %ymm1, 96(%rdi)
9239 vmovups %ymm2, 128(%rdi)
9240 vmovups %ymm3, 160(%rdi)
9241#ifndef __APPLE__
9242 call Transform_Sha512_AVX2_RORX@plt
9243#else
9244 call _Transform_Sha512_AVX2_RORX
9245#endif /* __APPLE__ */
9246 pop %rsi
9247 addq $0x80, 224(%rdi)
9248 subl $0x80, %esi
9249 jz L_sha512_len_avx2_rorx_done
9250L_sha512_len_avx2_rorx_block:
9251 subq $0x548, %rsp
9252 movq 224(%rdi), %rax
9253 vmovdqa L_avx2_rorx_sha512_flip_mask(%rip), %ymm15
9254 movq (%rdi), %r8
9255 movq 8(%rdi), %r9
9256 movq 16(%rdi), %r10
9257 movq 24(%rdi), %r11
9258 movq 32(%rdi), %r12
9259 movq 40(%rdi), %r13
9260 movq 48(%rdi), %r14
9261 movq 56(%rdi), %r15
9262 movl %esi, 1344(%rsp)
9263 # Start of loop processing two blocks
9264L_sha512_len_avx2_rorx_begin:
9265 movq %rsp, %rsi
9266 leaq L_avx2_rorx_sha512_k_2(%rip), %rbp
9267 movq %r9, %rbx
9268 xorq %rdx, %rdx
9269 vmovdqu (%rax), %xmm0
9270 vmovdqu 16(%rax), %xmm1
9271 vinserti128 $0x01, 128(%rax), %ymm0, %ymm0
9272 vinserti128 $0x01, 144(%rax), %ymm1, %ymm1
9273 vpshufb %ymm15, %ymm0, %ymm0
9274 vpshufb %ymm15, %ymm1, %ymm1
9275 vmovdqu 32(%rax), %xmm2
9276 vmovdqu 48(%rax), %xmm3
9277 vinserti128 $0x01, 160(%rax), %ymm2, %ymm2
9278 vinserti128 $0x01, 176(%rax), %ymm3, %ymm3
9279 vpshufb %ymm15, %ymm2, %ymm2
9280 vpshufb %ymm15, %ymm3, %ymm3
9281 vmovdqu 64(%rax), %xmm4
9282 vmovdqu 80(%rax), %xmm5
9283 vinserti128 $0x01, 192(%rax), %ymm4, %ymm4
9284 vinserti128 $0x01, 208(%rax), %ymm5, %ymm5
9285 vpshufb %ymm15, %ymm4, %ymm4
9286 vpshufb %ymm15, %ymm5, %ymm5
9287 vmovdqu 96(%rax), %xmm6
9288 vmovdqu 112(%rax), %xmm7
9289 vinserti128 $0x01, 224(%rax), %ymm6, %ymm6
9290 vinserti128 $0x01, 240(%rax), %ymm7, %ymm7
9291 vpshufb %ymm15, %ymm6, %ymm6
9292 vpshufb %ymm15, %ymm7, %ymm7
9293 xorq %r10, %rbx
9294 # Start of 16 rounds
9295L_sha512_len_avx2_rorx_start:
9296 vpaddq (%rbp), %ymm0, %ymm8
9297 vpaddq 32(%rbp), %ymm1, %ymm9
9298 vmovdqu %ymm8, (%rsi)
9299 vmovdqu %ymm9, 32(%rsi)
9300 vpaddq 64(%rbp), %ymm2, %ymm8
9301 vpaddq 96(%rbp), %ymm3, %ymm9
9302 vmovdqu %ymm8, 64(%rsi)
9303 vmovdqu %ymm9, 96(%rsi)
9304 vpaddq 128(%rbp), %ymm4, %ymm8
9305 vpaddq 160(%rbp), %ymm5, %ymm9
9306 vmovdqu %ymm8, 128(%rsi)
9307 vmovdqu %ymm9, 160(%rsi)
9308 vpaddq 192(%rbp), %ymm6, %ymm8
9309 vpaddq 224(%rbp), %ymm7, %ymm9
9310 vmovdqu %ymm8, 192(%rsi)
9311 vmovdqu %ymm9, 224(%rsi)
9312 # msg_sched: 0-1
9313 rorxq $14, %r12, %rax
9314 rorxq $18, %r12, %rcx
9315 addq %rdx, %r8
9316 vpalignr $8, %ymm0, %ymm1, %ymm12
9317 addq (%rsi), %r15
9318 movq %r13, %rdx
9319 xorq %rax, %rcx
9320 vpalignr $8, %ymm4, %ymm5, %ymm13
9321 xorq %r14, %rdx
9322 rorxq $41, %r12, %rax
9323 xorq %rcx, %rax
9324 vpsrlq $0x01, %ymm12, %ymm8
9325 vpsllq $63, %ymm12, %ymm9
9326 andq %r12, %rdx
9327 addq %rax, %r15
9328 rorxq $28, %r8, %rax
9329 vpsrlq $8, %ymm12, %ymm10
9330 vpsllq $56, %ymm12, %ymm11
9331 rorxq $34, %r8, %rcx
9332 xorq %r14, %rdx
9333 xorq %rax, %rcx
9334 vpor %ymm9, %ymm8, %ymm8
9335 vpor %ymm11, %ymm10, %ymm10
9336 rorxq $39, %r8, %rax
9337 addq %rdx, %r15
9338 xorq %rcx, %rax
9339 vpsrlq $7, %ymm12, %ymm11
9340 vpxor %ymm10, %ymm8, %ymm8
9341 movq %r9, %rdx
9342 addq %r15, %r11
9343 xorq %r8, %rdx
9344 vpxor %ymm11, %ymm8, %ymm8
9345 vpaddq %ymm0, %ymm13, %ymm0
9346 andq %rdx, %rbx
9347 addq %rax, %r15
9348 xorq %r9, %rbx
9349 vpaddq %ymm0, %ymm8, %ymm0
9350 rorxq $14, %r11, %rax
9351 rorxq $18, %r11, %rcx
9352 addq %rbx, %r15
9353 vpsrlq $19, %ymm7, %ymm8
9354 vpsllq $45, %ymm7, %ymm9
9355 addq 8(%rsi), %r14
9356 movq %r12, %rbx
9357 xorq %rax, %rcx
9358 vpsrlq $61, %ymm7, %ymm10
9359 vpsllq $3, %ymm7, %ymm11
9360 xorq %r13, %rbx
9361 rorxq $41, %r11, %rax
9362 xorq %rcx, %rax
9363 vpor %ymm9, %ymm8, %ymm8
9364 vpor %ymm11, %ymm10, %ymm10
9365 andq %r11, %rbx
9366 addq %rax, %r14
9367 rorxq $28, %r15, %rax
9368 rorxq $34, %r15, %rcx
9369 xorq %r13, %rbx
9370 xorq %rax, %rcx
9371 vpxor %ymm10, %ymm8, %ymm8
9372 vpsrlq $6, %ymm7, %ymm11
9373 rorxq $39, %r15, %rax
9374 addq %rbx, %r14
9375 xorq %rcx, %rax
9376 movq %r8, %rbx
9377 leaq (%r10,%r14,1), %r10
9378 xorq %r15, %rbx
9379 vpxor %ymm11, %ymm8, %ymm8
9380 andq %rbx, %rdx
9381 addq %rax, %r14
9382 xorq %r8, %rdx
9383 vpaddq %ymm0, %ymm8, %ymm0
9384 # msg_sched done: 0-1
9385 # msg_sched: 4-5
9386 rorxq $14, %r10, %rax
9387 rorxq $18, %r10, %rcx
9388 addq %rdx, %r14
9389 vpalignr $8, %ymm1, %ymm2, %ymm12
9390 addq 32(%rsi), %r13
9391 movq %r11, %rdx
9392 xorq %rax, %rcx
9393 vpalignr $8, %ymm5, %ymm6, %ymm13
9394 xorq %r12, %rdx
9395 rorxq $41, %r10, %rax
9396 xorq %rcx, %rax
9397 vpsrlq $0x01, %ymm12, %ymm8
9398 vpsllq $63, %ymm12, %ymm9
9399 andq %r10, %rdx
9400 addq %rax, %r13
9401 rorxq $28, %r14, %rax
9402 vpsrlq $8, %ymm12, %ymm10
9403 vpsllq $56, %ymm12, %ymm11
9404 rorxq $34, %r14, %rcx
9405 xorq %r12, %rdx
9406 xorq %rax, %rcx
9407 vpor %ymm9, %ymm8, %ymm8
9408 vpor %ymm11, %ymm10, %ymm10
9409 rorxq $39, %r14, %rax
9410 addq %rdx, %r13
9411 xorq %rcx, %rax
9412 vpsrlq $7, %ymm12, %ymm11
9413 vpxor %ymm10, %ymm8, %ymm8
9414 movq %r15, %rdx
9415 addq %r13, %r9
9416 xorq %r14, %rdx
9417 vpxor %ymm11, %ymm8, %ymm8
9418 vpaddq %ymm1, %ymm13, %ymm1
9419 andq %rdx, %rbx
9420 addq %rax, %r13
9421 xorq %r15, %rbx
9422 vpaddq %ymm1, %ymm8, %ymm1
9423 rorxq $14, %r9, %rax
9424 rorxq $18, %r9, %rcx
9425 addq %rbx, %r13
9426 vpsrlq $19, %ymm0, %ymm8
9427 vpsllq $45, %ymm0, %ymm9
9428 addq 40(%rsi), %r12
9429 movq %r10, %rbx
9430 xorq %rax, %rcx
9431 vpsrlq $61, %ymm0, %ymm10
9432 vpsllq $3, %ymm0, %ymm11
9433 xorq %r11, %rbx
9434 rorxq $41, %r9, %rax
9435 xorq %rcx, %rax
9436 vpor %ymm9, %ymm8, %ymm8
9437 vpor %ymm11, %ymm10, %ymm10
9438 andq %r9, %rbx
9439 addq %rax, %r12
9440 rorxq $28, %r13, %rax
9441 rorxq $34, %r13, %rcx
9442 xorq %r11, %rbx
9443 xorq %rax, %rcx
9444 vpxor %ymm10, %ymm8, %ymm8
9445 vpsrlq $6, %ymm0, %ymm11
9446 rorxq $39, %r13, %rax
9447 addq %rbx, %r12
9448 xorq %rcx, %rax
9449 movq %r14, %rbx
9450 leaq (%r8,%r12,1), %r8
9451 xorq %r13, %rbx
9452 vpxor %ymm11, %ymm8, %ymm8
9453 andq %rbx, %rdx
9454 addq %rax, %r12
9455 xorq %r14, %rdx
9456 vpaddq %ymm1, %ymm8, %ymm1
9457 # msg_sched done: 4-5
9458 # msg_sched: 8-9
9459 rorxq $14, %r8, %rax
9460 rorxq $18, %r8, %rcx
9461 addq %rdx, %r12
9462 vpalignr $8, %ymm2, %ymm3, %ymm12
9463 addq 64(%rsi), %r11
9464 movq %r9, %rdx
9465 xorq %rax, %rcx
9466 vpalignr $8, %ymm6, %ymm7, %ymm13
9467 xorq %r10, %rdx
9468 rorxq $41, %r8, %rax
9469 xorq %rcx, %rax
9470 vpsrlq $0x01, %ymm12, %ymm8
9471 vpsllq $63, %ymm12, %ymm9
9472 andq %r8, %rdx
9473 addq %rax, %r11
9474 rorxq $28, %r12, %rax
9475 vpsrlq $8, %ymm12, %ymm10
9476 vpsllq $56, %ymm12, %ymm11
9477 rorxq $34, %r12, %rcx
9478 xorq %r10, %rdx
9479 xorq %rax, %rcx
9480 vpor %ymm9, %ymm8, %ymm8
9481 vpor %ymm11, %ymm10, %ymm10
9482 rorxq $39, %r12, %rax
9483 addq %rdx, %r11
9484 xorq %rcx, %rax
9485 vpsrlq $7, %ymm12, %ymm11
9486 vpxor %ymm10, %ymm8, %ymm8
9487 movq %r13, %rdx
9488 addq %r11, %r15
9489 xorq %r12, %rdx
9490 vpxor %ymm11, %ymm8, %ymm8
9491 vpaddq %ymm2, %ymm13, %ymm2
9492 andq %rdx, %rbx
9493 addq %rax, %r11
9494 xorq %r13, %rbx
9495 vpaddq %ymm2, %ymm8, %ymm2
9496 rorxq $14, %r15, %rax
9497 rorxq $18, %r15, %rcx
9498 addq %rbx, %r11
9499 vpsrlq $19, %ymm1, %ymm8
9500 vpsllq $45, %ymm1, %ymm9
9501 addq 72(%rsi), %r10
9502 movq %r8, %rbx
9503 xorq %rax, %rcx
9504 vpsrlq $61, %ymm1, %ymm10
9505 vpsllq $3, %ymm1, %ymm11
9506 xorq %r9, %rbx
9507 rorxq $41, %r15, %rax
9508 xorq %rcx, %rax
9509 vpor %ymm9, %ymm8, %ymm8
9510 vpor %ymm11, %ymm10, %ymm10
9511 andq %r15, %rbx
9512 addq %rax, %r10
9513 rorxq $28, %r11, %rax
9514 rorxq $34, %r11, %rcx
9515 xorq %r9, %rbx
9516 xorq %rax, %rcx
9517 vpxor %ymm10, %ymm8, %ymm8
9518 vpsrlq $6, %ymm1, %ymm11
9519 rorxq $39, %r11, %rax
9520 addq %rbx, %r10
9521 xorq %rcx, %rax
9522 movq %r12, %rbx
9523 leaq (%r14,%r10,1), %r14
9524 xorq %r11, %rbx
9525 vpxor %ymm11, %ymm8, %ymm8
9526 andq %rbx, %rdx
9527 addq %rax, %r10
9528 xorq %r12, %rdx
9529 vpaddq %ymm2, %ymm8, %ymm2
9530 # msg_sched done: 8-9
9531 # msg_sched: 12-13
9532 rorxq $14, %r14, %rax
9533 rorxq $18, %r14, %rcx
9534 addq %rdx, %r10
9535 vpalignr $8, %ymm3, %ymm4, %ymm12
9536 addq 96(%rsi), %r9
9537 movq %r15, %rdx
9538 xorq %rax, %rcx
9539 vpalignr $8, %ymm7, %ymm0, %ymm13
9540 xorq %r8, %rdx
9541 rorxq $41, %r14, %rax
9542 xorq %rcx, %rax
9543 vpsrlq $0x01, %ymm12, %ymm8
9544 vpsllq $63, %ymm12, %ymm9
9545 andq %r14, %rdx
9546 addq %rax, %r9
9547 rorxq $28, %r10, %rax
9548 vpsrlq $8, %ymm12, %ymm10
9549 vpsllq $56, %ymm12, %ymm11
9550 rorxq $34, %r10, %rcx
9551 xorq %r8, %rdx
9552 xorq %rax, %rcx
9553 vpor %ymm9, %ymm8, %ymm8
9554 vpor %ymm11, %ymm10, %ymm10
9555 rorxq $39, %r10, %rax
9556 addq %rdx, %r9
9557 xorq %rcx, %rax
9558 vpsrlq $7, %ymm12, %ymm11
9559 vpxor %ymm10, %ymm8, %ymm8
9560 movq %r11, %rdx
9561 addq %r9, %r13
9562 xorq %r10, %rdx
9563 vpxor %ymm11, %ymm8, %ymm8
9564 vpaddq %ymm3, %ymm13, %ymm3
9565 andq %rdx, %rbx
9566 addq %rax, %r9
9567 xorq %r11, %rbx
9568 vpaddq %ymm3, %ymm8, %ymm3
9569 rorxq $14, %r13, %rax
9570 rorxq $18, %r13, %rcx
9571 addq %rbx, %r9
9572 vpsrlq $19, %ymm2, %ymm8
9573 vpsllq $45, %ymm2, %ymm9
9574 addq 104(%rsi), %r8
9575 movq %r14, %rbx
9576 xorq %rax, %rcx
9577 vpsrlq $61, %ymm2, %ymm10
9578 vpsllq $3, %ymm2, %ymm11
9579 xorq %r15, %rbx
9580 rorxq $41, %r13, %rax
9581 xorq %rcx, %rax
9582 vpor %ymm9, %ymm8, %ymm8
9583 vpor %ymm11, %ymm10, %ymm10
9584 andq %r13, %rbx
9585 addq %rax, %r8
9586 rorxq $28, %r9, %rax
9587 rorxq $34, %r9, %rcx
9588 xorq %r15, %rbx
9589 xorq %rax, %rcx
9590 vpxor %ymm10, %ymm8, %ymm8
9591 vpsrlq $6, %ymm2, %ymm11
9592 rorxq $39, %r9, %rax
9593 addq %rbx, %r8
9594 xorq %rcx, %rax
9595 movq %r10, %rbx
9596 leaq (%r12,%r8,1), %r12
9597 xorq %r9, %rbx
9598 vpxor %ymm11, %ymm8, %ymm8
9599 andq %rbx, %rdx
9600 addq %rax, %r8
9601 xorq %r10, %rdx
9602 vpaddq %ymm3, %ymm8, %ymm3
9603 # msg_sched done: 12-13
9604 # msg_sched: 16-17
9605 rorxq $14, %r12, %rax
9606 rorxq $18, %r12, %rcx
9607 addq %rdx, %r8
9608 vpalignr $8, %ymm4, %ymm5, %ymm12
9609 addq 128(%rsi), %r15
9610 movq %r13, %rdx
9611 xorq %rax, %rcx
9612 vpalignr $8, %ymm0, %ymm1, %ymm13
9613 xorq %r14, %rdx
9614 rorxq $41, %r12, %rax
9615 xorq %rcx, %rax
9616 vpsrlq $0x01, %ymm12, %ymm8
9617 vpsllq $63, %ymm12, %ymm9
9618 andq %r12, %rdx
9619 addq %rax, %r15
9620 rorxq $28, %r8, %rax
9621 vpsrlq $8, %ymm12, %ymm10
9622 vpsllq $56, %ymm12, %ymm11
9623 rorxq $34, %r8, %rcx
9624 xorq %r14, %rdx
9625 xorq %rax, %rcx
9626 vpor %ymm9, %ymm8, %ymm8
9627 vpor %ymm11, %ymm10, %ymm10
9628 rorxq $39, %r8, %rax
9629 addq %rdx, %r15
9630 xorq %rcx, %rax
9631 vpsrlq $7, %ymm12, %ymm11
9632 vpxor %ymm10, %ymm8, %ymm8
9633 movq %r9, %rdx
9634 addq %r15, %r11
9635 xorq %r8, %rdx
9636 vpxor %ymm11, %ymm8, %ymm8
9637 vpaddq %ymm4, %ymm13, %ymm4
9638 andq %rdx, %rbx
9639 addq %rax, %r15
9640 xorq %r9, %rbx
9641 vpaddq %ymm4, %ymm8, %ymm4
9642 rorxq $14, %r11, %rax
9643 rorxq $18, %r11, %rcx
9644 addq %rbx, %r15
9645 vpsrlq $19, %ymm3, %ymm8
9646 vpsllq $45, %ymm3, %ymm9
9647 addq 136(%rsi), %r14
9648 movq %r12, %rbx
9649 xorq %rax, %rcx
9650 vpsrlq $61, %ymm3, %ymm10
9651 vpsllq $3, %ymm3, %ymm11
9652 xorq %r13, %rbx
9653 rorxq $41, %r11, %rax
9654 xorq %rcx, %rax
9655 vpor %ymm9, %ymm8, %ymm8
9656 vpor %ymm11, %ymm10, %ymm10
9657 andq %r11, %rbx
9658 addq %rax, %r14
9659 rorxq $28, %r15, %rax
9660 rorxq $34, %r15, %rcx
9661 xorq %r13, %rbx
9662 xorq %rax, %rcx
9663 vpxor %ymm10, %ymm8, %ymm8
9664 vpsrlq $6, %ymm3, %ymm11
9665 rorxq $39, %r15, %rax
9666 addq %rbx, %r14
9667 xorq %rcx, %rax
9668 movq %r8, %rbx
9669 leaq (%r10,%r14,1), %r10
9670 xorq %r15, %rbx
9671 vpxor %ymm11, %ymm8, %ymm8
9672 andq %rbx, %rdx
9673 addq %rax, %r14
9674 xorq %r8, %rdx
9675 vpaddq %ymm4, %ymm8, %ymm4
9676 # msg_sched done: 16-17
9677 # msg_sched: 20-21
9678 rorxq $14, %r10, %rax
9679 rorxq $18, %r10, %rcx
9680 addq %rdx, %r14
9681 vpalignr $8, %ymm5, %ymm6, %ymm12
9682 addq 160(%rsi), %r13
9683 movq %r11, %rdx
9684 xorq %rax, %rcx
9685 vpalignr $8, %ymm1, %ymm2, %ymm13
9686 xorq %r12, %rdx
9687 rorxq $41, %r10, %rax
9688 xorq %rcx, %rax
9689 vpsrlq $0x01, %ymm12, %ymm8
9690 vpsllq $63, %ymm12, %ymm9
9691 andq %r10, %rdx
9692 addq %rax, %r13
9693 rorxq $28, %r14, %rax
9694 vpsrlq $8, %ymm12, %ymm10
9695 vpsllq $56, %ymm12, %ymm11
9696 rorxq $34, %r14, %rcx
9697 xorq %r12, %rdx
9698 xorq %rax, %rcx
9699 vpor %ymm9, %ymm8, %ymm8
9700 vpor %ymm11, %ymm10, %ymm10
9701 rorxq $39, %r14, %rax
9702 addq %rdx, %r13
9703 xorq %rcx, %rax
9704 vpsrlq $7, %ymm12, %ymm11
9705 vpxor %ymm10, %ymm8, %ymm8
9706 movq %r15, %rdx
9707 addq %r13, %r9
9708 xorq %r14, %rdx
9709 vpxor %ymm11, %ymm8, %ymm8
9710 vpaddq %ymm5, %ymm13, %ymm5
9711 andq %rdx, %rbx
9712 addq %rax, %r13
9713 xorq %r15, %rbx
9714 vpaddq %ymm5, %ymm8, %ymm5
9715 rorxq $14, %r9, %rax
9716 rorxq $18, %r9, %rcx
9717 addq %rbx, %r13
9718 vpsrlq $19, %ymm4, %ymm8
9719 vpsllq $45, %ymm4, %ymm9
9720 addq 168(%rsi), %r12
9721 movq %r10, %rbx
9722 xorq %rax, %rcx
9723 vpsrlq $61, %ymm4, %ymm10
9724 vpsllq $3, %ymm4, %ymm11
9725 xorq %r11, %rbx
9726 rorxq $41, %r9, %rax
9727 xorq %rcx, %rax
9728 vpor %ymm9, %ymm8, %ymm8
9729 vpor %ymm11, %ymm10, %ymm10
9730 andq %r9, %rbx
9731 addq %rax, %r12
9732 rorxq $28, %r13, %rax
9733 rorxq $34, %r13, %rcx
9734 xorq %r11, %rbx
9735 xorq %rax, %rcx
9736 vpxor %ymm10, %ymm8, %ymm8
9737 vpsrlq $6, %ymm4, %ymm11
9738 rorxq $39, %r13, %rax
9739 addq %rbx, %r12
9740 xorq %rcx, %rax
9741 movq %r14, %rbx
9742 leaq (%r8,%r12,1), %r8
9743 xorq %r13, %rbx
9744 vpxor %ymm11, %ymm8, %ymm8
9745 andq %rbx, %rdx
9746 addq %rax, %r12
9747 xorq %r14, %rdx
9748 vpaddq %ymm5, %ymm8, %ymm5
9749 # msg_sched done: 20-21
9750 # msg_sched: 24-25
9751 rorxq $14, %r8, %rax
9752 rorxq $18, %r8, %rcx
9753 addq %rdx, %r12
9754 vpalignr $8, %ymm6, %ymm7, %ymm12
9755 addq 192(%rsi), %r11
9756 movq %r9, %rdx
9757 xorq %rax, %rcx
9758 vpalignr $8, %ymm2, %ymm3, %ymm13
9759 xorq %r10, %rdx
9760 rorxq $41, %r8, %rax
9761 xorq %rcx, %rax
9762 vpsrlq $0x01, %ymm12, %ymm8
9763 vpsllq $63, %ymm12, %ymm9
9764 andq %r8, %rdx
9765 addq %rax, %r11
9766 rorxq $28, %r12, %rax
9767 vpsrlq $8, %ymm12, %ymm10
9768 vpsllq $56, %ymm12, %ymm11
9769 rorxq $34, %r12, %rcx
9770 xorq %r10, %rdx
9771 xorq %rax, %rcx
9772 vpor %ymm9, %ymm8, %ymm8
9773 vpor %ymm11, %ymm10, %ymm10
9774 rorxq $39, %r12, %rax
9775 addq %rdx, %r11
9776 xorq %rcx, %rax
9777 vpsrlq $7, %ymm12, %ymm11
9778 vpxor %ymm10, %ymm8, %ymm8
9779 movq %r13, %rdx
9780 addq %r11, %r15
9781 xorq %r12, %rdx
9782 vpxor %ymm11, %ymm8, %ymm8
9783 vpaddq %ymm6, %ymm13, %ymm6
9784 andq %rdx, %rbx
9785 addq %rax, %r11
9786 xorq %r13, %rbx
9787 vpaddq %ymm6, %ymm8, %ymm6
9788 rorxq $14, %r15, %rax
9789 rorxq $18, %r15, %rcx
9790 addq %rbx, %r11
9791 vpsrlq $19, %ymm5, %ymm8
9792 vpsllq $45, %ymm5, %ymm9
9793 addq 200(%rsi), %r10
9794 movq %r8, %rbx
9795 xorq %rax, %rcx
9796 vpsrlq $61, %ymm5, %ymm10
9797 vpsllq $3, %ymm5, %ymm11
9798 xorq %r9, %rbx
9799 rorxq $41, %r15, %rax
9800 xorq %rcx, %rax
9801 vpor %ymm9, %ymm8, %ymm8
9802 vpor %ymm11, %ymm10, %ymm10
9803 andq %r15, %rbx
9804 addq %rax, %r10
9805 rorxq $28, %r11, %rax
9806 rorxq $34, %r11, %rcx
9807 xorq %r9, %rbx
9808 xorq %rax, %rcx
9809 vpxor %ymm10, %ymm8, %ymm8
9810 vpsrlq $6, %ymm5, %ymm11
9811 rorxq $39, %r11, %rax
9812 addq %rbx, %r10
9813 xorq %rcx, %rax
9814 movq %r12, %rbx
9815 leaq (%r14,%r10,1), %r14
9816 xorq %r11, %rbx
9817 vpxor %ymm11, %ymm8, %ymm8
9818 andq %rbx, %rdx
9819 addq %rax, %r10
9820 xorq %r12, %rdx
9821 vpaddq %ymm6, %ymm8, %ymm6
9822 # msg_sched done: 24-25
9823 # msg_sched: 28-29
9824 rorxq $14, %r14, %rax
9825 rorxq $18, %r14, %rcx
9826 addq %rdx, %r10
9827 vpalignr $8, %ymm7, %ymm0, %ymm12
9828 addq 224(%rsi), %r9
9829 movq %r15, %rdx
9830 xorq %rax, %rcx
9831 vpalignr $8, %ymm3, %ymm4, %ymm13
9832 xorq %r8, %rdx
9833 rorxq $41, %r14, %rax
9834 xorq %rcx, %rax
9835 vpsrlq $0x01, %ymm12, %ymm8
9836 vpsllq $63, %ymm12, %ymm9
9837 andq %r14, %rdx
9838 addq %rax, %r9
9839 rorxq $28, %r10, %rax
9840 vpsrlq $8, %ymm12, %ymm10
9841 vpsllq $56, %ymm12, %ymm11
9842 rorxq $34, %r10, %rcx
9843 xorq %r8, %rdx
9844 xorq %rax, %rcx
9845 vpor %ymm9, %ymm8, %ymm8
9846 vpor %ymm11, %ymm10, %ymm10
9847 rorxq $39, %r10, %rax
9848 addq %rdx, %r9
9849 xorq %rcx, %rax
9850 vpsrlq $7, %ymm12, %ymm11
9851 vpxor %ymm10, %ymm8, %ymm8
9852 movq %r11, %rdx
9853 addq %r9, %r13
9854 xorq %r10, %rdx
9855 vpxor %ymm11, %ymm8, %ymm8
9856 vpaddq %ymm7, %ymm13, %ymm7
9857 andq %rdx, %rbx
9858 addq %rax, %r9
9859 xorq %r11, %rbx
9860 vpaddq %ymm7, %ymm8, %ymm7
9861 rorxq $14, %r13, %rax
9862 rorxq $18, %r13, %rcx
9863 addq %rbx, %r9
9864 vpsrlq $19, %ymm6, %ymm8
9865 vpsllq $45, %ymm6, %ymm9
9866 addq 232(%rsi), %r8
9867 movq %r14, %rbx
9868 xorq %rax, %rcx
9869 vpsrlq $61, %ymm6, %ymm10
9870 vpsllq $3, %ymm6, %ymm11
9871 xorq %r15, %rbx
9872 rorxq $41, %r13, %rax
9873 xorq %rcx, %rax
9874 vpor %ymm9, %ymm8, %ymm8
9875 vpor %ymm11, %ymm10, %ymm10
9876 andq %r13, %rbx
9877 addq %rax, %r8
9878 rorxq $28, %r9, %rax
9879 rorxq $34, %r9, %rcx
9880 xorq %r15, %rbx
9881 xorq %rax, %rcx
9882 vpxor %ymm10, %ymm8, %ymm8
9883 vpsrlq $6, %ymm6, %ymm11
9884 rorxq $39, %r9, %rax
9885 addq %rbx, %r8
9886 xorq %rcx, %rax
9887 movq %r10, %rbx
9888 leaq (%r12,%r8,1), %r12
9889 xorq %r9, %rbx
9890 vpxor %ymm11, %ymm8, %ymm8
9891 andq %rbx, %rdx
9892 addq %rax, %r8
9893 xorq %r10, %rdx
9894 vpaddq %ymm7, %ymm8, %ymm7
9895 # msg_sched done: 28-29
9896 addq $0x100, %rbp
9897 addq $0x100, %rsi
9898 cmpq L_avx2_rorx_sha512_k_2_end(%rip), %rbp
9899 jne L_sha512_len_avx2_rorx_start
9900 vpaddq (%rbp), %ymm0, %ymm8
9901 vpaddq 32(%rbp), %ymm1, %ymm9
9902 vmovdqu %ymm8, (%rsi)
9903 vmovdqu %ymm9, 32(%rsi)
9904 vpaddq 64(%rbp), %ymm2, %ymm8
9905 vpaddq 96(%rbp), %ymm3, %ymm9
9906 vmovdqu %ymm8, 64(%rsi)
9907 vmovdqu %ymm9, 96(%rsi)
9908 vpaddq 128(%rbp), %ymm4, %ymm8
9909 vpaddq 160(%rbp), %ymm5, %ymm9
9910 vmovdqu %ymm8, 128(%rsi)
9911 vmovdqu %ymm9, 160(%rsi)
9912 vpaddq 192(%rbp), %ymm6, %ymm8
9913 vpaddq 224(%rbp), %ymm7, %ymm9
9914 vmovdqu %ymm8, 192(%rsi)
9915 vmovdqu %ymm9, 224(%rsi)
9916 # rnd_all_2: 0-1
9917 rorxq $14, %r12, %rax
9918 rorxq $18, %r12, %rcx
9919 addq %rdx, %r8
9920 addq (%rsi), %r15
9921 movq %r13, %rdx
9922 xorq %rax, %rcx
9923 xorq %r14, %rdx
9924 rorxq $41, %r12, %rax
9925 xorq %rcx, %rax
9926 andq %r12, %rdx
9927 addq %rax, %r15
9928 rorxq $28, %r8, %rax
9929 rorxq $34, %r8, %rcx
9930 xorq %r14, %rdx
9931 xorq %rax, %rcx
9932 rorxq $39, %r8, %rax
9933 addq %rdx, %r15
9934 xorq %rcx, %rax
9935 movq %r9, %rdx
9936 addq %r15, %r11
9937 xorq %r8, %rdx
9938 andq %rdx, %rbx
9939 addq %rax, %r15
9940 xorq %r9, %rbx
9941 rorxq $14, %r11, %rax
9942 rorxq $18, %r11, %rcx
9943 addq %rbx, %r15
9944 addq 8(%rsi), %r14
9945 movq %r12, %rbx
9946 xorq %rax, %rcx
9947 xorq %r13, %rbx
9948 rorxq $41, %r11, %rax
9949 xorq %rcx, %rax
9950 andq %r11, %rbx
9951 addq %rax, %r14
9952 rorxq $28, %r15, %rax
9953 rorxq $34, %r15, %rcx
9954 xorq %r13, %rbx
9955 xorq %rax, %rcx
9956 rorxq $39, %r15, %rax
9957 addq %rbx, %r14
9958 xorq %rcx, %rax
9959 movq %r8, %rbx
9960 leaq (%r10,%r14,1), %r10
9961 xorq %r15, %rbx
9962 andq %rbx, %rdx
9963 addq %rax, %r14
9964 xorq %r8, %rdx
9965 # rnd_all_2: 4-5
9966 rorxq $14, %r10, %rax
9967 rorxq $18, %r10, %rcx
9968 addq %rdx, %r14
9969 addq 32(%rsi), %r13
9970 movq %r11, %rdx
9971 xorq %rax, %rcx
9972 xorq %r12, %rdx
9973 rorxq $41, %r10, %rax
9974 xorq %rcx, %rax
9975 andq %r10, %rdx
9976 addq %rax, %r13
9977 rorxq $28, %r14, %rax
9978 rorxq $34, %r14, %rcx
9979 xorq %r12, %rdx
9980 xorq %rax, %rcx
9981 rorxq $39, %r14, %rax
9982 addq %rdx, %r13
9983 xorq %rcx, %rax
9984 movq %r15, %rdx
9985 addq %r13, %r9
9986 xorq %r14, %rdx
9987 andq %rdx, %rbx
9988 addq %rax, %r13
9989 xorq %r15, %rbx
9990 rorxq $14, %r9, %rax
9991 rorxq $18, %r9, %rcx
9992 addq %rbx, %r13
9993 addq 40(%rsi), %r12
9994 movq %r10, %rbx
9995 xorq %rax, %rcx
9996 xorq %r11, %rbx
9997 rorxq $41, %r9, %rax
9998 xorq %rcx, %rax
9999 andq %r9, %rbx
10000 addq %rax, %r12
10001 rorxq $28, %r13, %rax
10002 rorxq $34, %r13, %rcx
10003 xorq %r11, %rbx
10004 xorq %rax, %rcx
10005 rorxq $39, %r13, %rax
10006 addq %rbx, %r12
10007 xorq %rcx, %rax
10008 movq %r14, %rbx
10009 leaq (%r8,%r12,1), %r8
10010 xorq %r13, %rbx
10011 andq %rbx, %rdx
10012 addq %rax, %r12
10013 xorq %r14, %rdx
10014 # rnd_all_2: 8-9
10015 rorxq $14, %r8, %rax
10016 rorxq $18, %r8, %rcx
10017 addq %rdx, %r12
10018 addq 64(%rsi), %r11
10019 movq %r9, %rdx
10020 xorq %rax, %rcx
10021 xorq %r10, %rdx
10022 rorxq $41, %r8, %rax
10023 xorq %rcx, %rax
10024 andq %r8, %rdx
10025 addq %rax, %r11
10026 rorxq $28, %r12, %rax
10027 rorxq $34, %r12, %rcx
10028 xorq %r10, %rdx
10029 xorq %rax, %rcx
10030 rorxq $39, %r12, %rax
10031 addq %rdx, %r11
10032 xorq %rcx, %rax
10033 movq %r13, %rdx
10034 addq %r11, %r15
10035 xorq %r12, %rdx
10036 andq %rdx, %rbx
10037 addq %rax, %r11
10038 xorq %r13, %rbx
10039 rorxq $14, %r15, %rax
10040 rorxq $18, %r15, %rcx
10041 addq %rbx, %r11
10042 addq 72(%rsi), %r10
10043 movq %r8, %rbx
10044 xorq %rax, %rcx
10045 xorq %r9, %rbx
10046 rorxq $41, %r15, %rax
10047 xorq %rcx, %rax
10048 andq %r15, %rbx
10049 addq %rax, %r10
10050 rorxq $28, %r11, %rax
10051 rorxq $34, %r11, %rcx
10052 xorq %r9, %rbx
10053 xorq %rax, %rcx
10054 rorxq $39, %r11, %rax
10055 addq %rbx, %r10
10056 xorq %rcx, %rax
10057 movq %r12, %rbx
10058 leaq (%r14,%r10,1), %r14
10059 xorq %r11, %rbx
10060 andq %rbx, %rdx
10061 addq %rax, %r10
10062 xorq %r12, %rdx
10063 # rnd_all_2: 12-13
10064 rorxq $14, %r14, %rax
10065 rorxq $18, %r14, %rcx
10066 addq %rdx, %r10
10067 addq 96(%rsi), %r9
10068 movq %r15, %rdx
10069 xorq %rax, %rcx
10070 xorq %r8, %rdx
10071 rorxq $41, %r14, %rax
10072 xorq %rcx, %rax
10073 andq %r14, %rdx
10074 addq %rax, %r9
10075 rorxq $28, %r10, %rax
10076 rorxq $34, %r10, %rcx
10077 xorq %r8, %rdx
10078 xorq %rax, %rcx
10079 rorxq $39, %r10, %rax
10080 addq %rdx, %r9
10081 xorq %rcx, %rax
10082 movq %r11, %rdx
10083 addq %r9, %r13
10084 xorq %r10, %rdx
10085 andq %rdx, %rbx
10086 addq %rax, %r9
10087 xorq %r11, %rbx
10088 rorxq $14, %r13, %rax
10089 rorxq $18, %r13, %rcx
10090 addq %rbx, %r9
10091 addq 104(%rsi), %r8
10092 movq %r14, %rbx
10093 xorq %rax, %rcx
10094 xorq %r15, %rbx
10095 rorxq $41, %r13, %rax
10096 xorq %rcx, %rax
10097 andq %r13, %rbx
10098 addq %rax, %r8
10099 rorxq $28, %r9, %rax
10100 rorxq $34, %r9, %rcx
10101 xorq %r15, %rbx
10102 xorq %rax, %rcx
10103 rorxq $39, %r9, %rax
10104 addq %rbx, %r8
10105 xorq %rcx, %rax
10106 movq %r10, %rbx
10107 leaq (%r12,%r8,1), %r12
10108 xorq %r9, %rbx
10109 andq %rbx, %rdx
10110 addq %rax, %r8
10111 xorq %r10, %rdx
10112 # rnd_all_2: 16-17
10113 rorxq $14, %r12, %rax
10114 rorxq $18, %r12, %rcx
10115 addq %rdx, %r8
10116 addq 128(%rsi), %r15
10117 movq %r13, %rdx
10118 xorq %rax, %rcx
10119 xorq %r14, %rdx
10120 rorxq $41, %r12, %rax
10121 xorq %rcx, %rax
10122 andq %r12, %rdx
10123 addq %rax, %r15
10124 rorxq $28, %r8, %rax
10125 rorxq $34, %r8, %rcx
10126 xorq %r14, %rdx
10127 xorq %rax, %rcx
10128 rorxq $39, %r8, %rax
10129 addq %rdx, %r15
10130 xorq %rcx, %rax
10131 movq %r9, %rdx
10132 addq %r15, %r11
10133 xorq %r8, %rdx
10134 andq %rdx, %rbx
10135 addq %rax, %r15
10136 xorq %r9, %rbx
10137 rorxq $14, %r11, %rax
10138 rorxq $18, %r11, %rcx
10139 addq %rbx, %r15
10140 addq 136(%rsi), %r14
10141 movq %r12, %rbx
10142 xorq %rax, %rcx
10143 xorq %r13, %rbx
10144 rorxq $41, %r11, %rax
10145 xorq %rcx, %rax
10146 andq %r11, %rbx
10147 addq %rax, %r14
10148 rorxq $28, %r15, %rax
10149 rorxq $34, %r15, %rcx
10150 xorq %r13, %rbx
10151 xorq %rax, %rcx
10152 rorxq $39, %r15, %rax
10153 addq %rbx, %r14
10154 xorq %rcx, %rax
10155 movq %r8, %rbx
10156 leaq (%r10,%r14,1), %r10
10157 xorq %r15, %rbx
10158 andq %rbx, %rdx
10159 addq %rax, %r14
10160 xorq %r8, %rdx
10161 # rnd_all_2: 20-21
10162 rorxq $14, %r10, %rax
10163 rorxq $18, %r10, %rcx
10164 addq %rdx, %r14
10165 addq 160(%rsi), %r13
10166 movq %r11, %rdx
10167 xorq %rax, %rcx
10168 xorq %r12, %rdx
10169 rorxq $41, %r10, %rax
10170 xorq %rcx, %rax
10171 andq %r10, %rdx
10172 addq %rax, %r13
10173 rorxq $28, %r14, %rax
10174 rorxq $34, %r14, %rcx
10175 xorq %r12, %rdx
10176 xorq %rax, %rcx
10177 rorxq $39, %r14, %rax
10178 addq %rdx, %r13
10179 xorq %rcx, %rax
10180 movq %r15, %rdx
10181 addq %r13, %r9
10182 xorq %r14, %rdx
10183 andq %rdx, %rbx
10184 addq %rax, %r13
10185 xorq %r15, %rbx
10186 rorxq $14, %r9, %rax
10187 rorxq $18, %r9, %rcx
10188 addq %rbx, %r13
10189 addq 168(%rsi), %r12
10190 movq %r10, %rbx
10191 xorq %rax, %rcx
10192 xorq %r11, %rbx
10193 rorxq $41, %r9, %rax
10194 xorq %rcx, %rax
10195 andq %r9, %rbx
10196 addq %rax, %r12
10197 rorxq $28, %r13, %rax
10198 rorxq $34, %r13, %rcx
10199 xorq %r11, %rbx
10200 xorq %rax, %rcx
10201 rorxq $39, %r13, %rax
10202 addq %rbx, %r12
10203 xorq %rcx, %rax
10204 movq %r14, %rbx
10205 leaq (%r8,%r12,1), %r8
10206 xorq %r13, %rbx
10207 andq %rbx, %rdx
10208 addq %rax, %r12
10209 xorq %r14, %rdx
10210 # rnd_all_2: 24-25
10211 rorxq $14, %r8, %rax
10212 rorxq $18, %r8, %rcx
10213 addq %rdx, %r12
10214 addq 192(%rsi), %r11
10215 movq %r9, %rdx
10216 xorq %rax, %rcx
10217 xorq %r10, %rdx
10218 rorxq $41, %r8, %rax
10219 xorq %rcx, %rax
10220 andq %r8, %rdx
10221 addq %rax, %r11
10222 rorxq $28, %r12, %rax
10223 rorxq $34, %r12, %rcx
10224 xorq %r10, %rdx
10225 xorq %rax, %rcx
10226 rorxq $39, %r12, %rax
10227 addq %rdx, %r11
10228 xorq %rcx, %rax
10229 movq %r13, %rdx
10230 addq %r11, %r15
10231 xorq %r12, %rdx
10232 andq %rdx, %rbx
10233 addq %rax, %r11
10234 xorq %r13, %rbx
10235 rorxq $14, %r15, %rax
10236 rorxq $18, %r15, %rcx
10237 addq %rbx, %r11
10238 addq 200(%rsi), %r10
10239 movq %r8, %rbx
10240 xorq %rax, %rcx
10241 xorq %r9, %rbx
10242 rorxq $41, %r15, %rax
10243 xorq %rcx, %rax
10244 andq %r15, %rbx
10245 addq %rax, %r10
10246 rorxq $28, %r11, %rax
10247 rorxq $34, %r11, %rcx
10248 xorq %r9, %rbx
10249 xorq %rax, %rcx
10250 rorxq $39, %r11, %rax
10251 addq %rbx, %r10
10252 xorq %rcx, %rax
10253 movq %r12, %rbx
10254 leaq (%r14,%r10,1), %r14
10255 xorq %r11, %rbx
10256 andq %rbx, %rdx
10257 addq %rax, %r10
10258 xorq %r12, %rdx
10259 # rnd_all_2: 28-29
10260 rorxq $14, %r14, %rax
10261 rorxq $18, %r14, %rcx
10262 addq %rdx, %r10
10263 addq 224(%rsi), %r9
10264 movq %r15, %rdx
10265 xorq %rax, %rcx
10266 xorq %r8, %rdx
10267 rorxq $41, %r14, %rax
10268 xorq %rcx, %rax
10269 andq %r14, %rdx
10270 addq %rax, %r9
10271 rorxq $28, %r10, %rax
10272 rorxq $34, %r10, %rcx
10273 xorq %r8, %rdx
10274 xorq %rax, %rcx
10275 rorxq $39, %r10, %rax
10276 addq %rdx, %r9
10277 xorq %rcx, %rax
10278 movq %r11, %rdx
10279 addq %r9, %r13
10280 xorq %r10, %rdx
10281 andq %rdx, %rbx
10282 addq %rax, %r9
10283 xorq %r11, %rbx
10284 rorxq $14, %r13, %rax
10285 rorxq $18, %r13, %rcx
10286 addq %rbx, %r9
10287 addq 232(%rsi), %r8
10288 movq %r14, %rbx
10289 xorq %rax, %rcx
10290 xorq %r15, %rbx
10291 rorxq $41, %r13, %rax
10292 xorq %rcx, %rax
10293 andq %r13, %rbx
10294 addq %rax, %r8
10295 rorxq $28, %r9, %rax
10296 rorxq $34, %r9, %rcx
10297 xorq %r15, %rbx
10298 xorq %rax, %rcx
10299 rorxq $39, %r9, %rax
10300 addq %rbx, %r8
10301 xorq %rcx, %rax
10302 movq %r10, %rbx
10303 leaq (%r12,%r8,1), %r12
10304 xorq %r9, %rbx
10305 andq %rbx, %rdx
10306 addq %rax, %r8
10307 xorq %r10, %rdx
10308 addq %rdx, %r8
10309 subq $0x400, %rsi
10310 addq (%rdi), %r8
10311 addq 8(%rdi), %r9
10312 addq 16(%rdi), %r10
10313 addq 24(%rdi), %r11
10314 addq 32(%rdi), %r12
10315 addq 40(%rdi), %r13
10316 addq 48(%rdi), %r14
10317 addq 56(%rdi), %r15
10318 movq %r8, (%rdi)
10319 movq %r9, 8(%rdi)
10320 movq %r10, 16(%rdi)
10321 movq %r11, 24(%rdi)
10322 movq %r12, 32(%rdi)
10323 movq %r13, 40(%rdi)
10324 movq %r14, 48(%rdi)
10325 movq %r15, 56(%rdi)
10326 movq %r9, %rbx
10327 xorq %rdx, %rdx
10328 xorq %r10, %rbx
10329 movq $5, %rbp
10330L_sha512_len_avx2_rorx_tail:
10331 # rnd_all_2: 2-3
10332 rorxq $14, %r12, %rax
10333 rorxq $18, %r12, %rcx
10334 addq %rdx, %r8
10335 addq 16(%rsi), %r15
10336 movq %r13, %rdx
10337 xorq %rax, %rcx
10338 xorq %r14, %rdx
10339 rorxq $41, %r12, %rax
10340 xorq %rcx, %rax
10341 andq %r12, %rdx
10342 addq %rax, %r15
10343 rorxq $28, %r8, %rax
10344 rorxq $34, %r8, %rcx
10345 xorq %r14, %rdx
10346 xorq %rax, %rcx
10347 rorxq $39, %r8, %rax
10348 addq %rdx, %r15
10349 xorq %rcx, %rax
10350 movq %r9, %rdx
10351 addq %r15, %r11
10352 xorq %r8, %rdx
10353 andq %rdx, %rbx
10354 addq %rax, %r15
10355 xorq %r9, %rbx
10356 rorxq $14, %r11, %rax
10357 rorxq $18, %r11, %rcx
10358 addq %rbx, %r15
10359 addq 24(%rsi), %r14
10360 movq %r12, %rbx
10361 xorq %rax, %rcx
10362 xorq %r13, %rbx
10363 rorxq $41, %r11, %rax
10364 xorq %rcx, %rax
10365 andq %r11, %rbx
10366 addq %rax, %r14
10367 rorxq $28, %r15, %rax
10368 rorxq $34, %r15, %rcx
10369 xorq %r13, %rbx
10370 xorq %rax, %rcx
10371 rorxq $39, %r15, %rax
10372 addq %rbx, %r14
10373 xorq %rcx, %rax
10374 movq %r8, %rbx
10375 leaq (%r10,%r14,1), %r10
10376 xorq %r15, %rbx
10377 andq %rbx, %rdx
10378 addq %rax, %r14
10379 xorq %r8, %rdx
10380 # rnd_all_2: 6-7
10381 rorxq $14, %r10, %rax
10382 rorxq $18, %r10, %rcx
10383 addq %rdx, %r14
10384 addq 48(%rsi), %r13
10385 movq %r11, %rdx
10386 xorq %rax, %rcx
10387 xorq %r12, %rdx
10388 rorxq $41, %r10, %rax
10389 xorq %rcx, %rax
10390 andq %r10, %rdx
10391 addq %rax, %r13
10392 rorxq $28, %r14, %rax
10393 rorxq $34, %r14, %rcx
10394 xorq %r12, %rdx
10395 xorq %rax, %rcx
10396 rorxq $39, %r14, %rax
10397 addq %rdx, %r13
10398 xorq %rcx, %rax
10399 movq %r15, %rdx
10400 addq %r13, %r9
10401 xorq %r14, %rdx
10402 andq %rdx, %rbx
10403 addq %rax, %r13
10404 xorq %r15, %rbx
10405 rorxq $14, %r9, %rax
10406 rorxq $18, %r9, %rcx
10407 addq %rbx, %r13
10408 addq 56(%rsi), %r12
10409 movq %r10, %rbx
10410 xorq %rax, %rcx
10411 xorq %r11, %rbx
10412 rorxq $41, %r9, %rax
10413 xorq %rcx, %rax
10414 andq %r9, %rbx
10415 addq %rax, %r12
10416 rorxq $28, %r13, %rax
10417 rorxq $34, %r13, %rcx
10418 xorq %r11, %rbx
10419 xorq %rax, %rcx
10420 rorxq $39, %r13, %rax
10421 addq %rbx, %r12
10422 xorq %rcx, %rax
10423 movq %r14, %rbx
10424 leaq (%r8,%r12,1), %r8
10425 xorq %r13, %rbx
10426 andq %rbx, %rdx
10427 addq %rax, %r12
10428 xorq %r14, %rdx
10429 # rnd_all_2: 10-11
10430 rorxq $14, %r8, %rax
10431 rorxq $18, %r8, %rcx
10432 addq %rdx, %r12
10433 addq 80(%rsi), %r11
10434 movq %r9, %rdx
10435 xorq %rax, %rcx
10436 xorq %r10, %rdx
10437 rorxq $41, %r8, %rax
10438 xorq %rcx, %rax
10439 andq %r8, %rdx
10440 addq %rax, %r11
10441 rorxq $28, %r12, %rax
10442 rorxq $34, %r12, %rcx
10443 xorq %r10, %rdx
10444 xorq %rax, %rcx
10445 rorxq $39, %r12, %rax
10446 addq %rdx, %r11
10447 xorq %rcx, %rax
10448 movq %r13, %rdx
10449 addq %r11, %r15
10450 xorq %r12, %rdx
10451 andq %rdx, %rbx
10452 addq %rax, %r11
10453 xorq %r13, %rbx
10454 rorxq $14, %r15, %rax
10455 rorxq $18, %r15, %rcx
10456 addq %rbx, %r11
10457 addq 88(%rsi), %r10
10458 movq %r8, %rbx
10459 xorq %rax, %rcx
10460 xorq %r9, %rbx
10461 rorxq $41, %r15, %rax
10462 xorq %rcx, %rax
10463 andq %r15, %rbx
10464 addq %rax, %r10
10465 rorxq $28, %r11, %rax
10466 rorxq $34, %r11, %rcx
10467 xorq %r9, %rbx
10468 xorq %rax, %rcx
10469 rorxq $39, %r11, %rax
10470 addq %rbx, %r10
10471 xorq %rcx, %rax
10472 movq %r12, %rbx
10473 leaq (%r14,%r10,1), %r14
10474 xorq %r11, %rbx
10475 andq %rbx, %rdx
10476 addq %rax, %r10
10477 xorq %r12, %rdx
10478 # rnd_all_2: 14-15
10479 rorxq $14, %r14, %rax
10480 rorxq $18, %r14, %rcx
10481 addq %rdx, %r10
10482 addq 112(%rsi), %r9
10483 movq %r15, %rdx
10484 xorq %rax, %rcx
10485 xorq %r8, %rdx
10486 rorxq $41, %r14, %rax
10487 xorq %rcx, %rax
10488 andq %r14, %rdx
10489 addq %rax, %r9
10490 rorxq $28, %r10, %rax
10491 rorxq $34, %r10, %rcx
10492 xorq %r8, %rdx
10493 xorq %rax, %rcx
10494 rorxq $39, %r10, %rax
10495 addq %rdx, %r9
10496 xorq %rcx, %rax
10497 movq %r11, %rdx
10498 addq %r9, %r13
10499 xorq %r10, %rdx
10500 andq %rdx, %rbx
10501 addq %rax, %r9
10502 xorq %r11, %rbx
10503 rorxq $14, %r13, %rax
10504 rorxq $18, %r13, %rcx
10505 addq %rbx, %r9
10506 addq 120(%rsi), %r8
10507 movq %r14, %rbx
10508 xorq %rax, %rcx
10509 xorq %r15, %rbx
10510 rorxq $41, %r13, %rax
10511 xorq %rcx, %rax
10512 andq %r13, %rbx
10513 addq %rax, %r8
10514 rorxq $28, %r9, %rax
10515 rorxq $34, %r9, %rcx
10516 xorq %r15, %rbx
10517 xorq %rax, %rcx
10518 rorxq $39, %r9, %rax
10519 addq %rbx, %r8
10520 xorq %rcx, %rax
10521 movq %r10, %rbx
10522 leaq (%r12,%r8,1), %r12
10523 xorq %r9, %rbx
10524 andq %rbx, %rdx
10525 addq %rax, %r8
10526 xorq %r10, %rdx
10527 # rnd_all_2: 18-19
10528 rorxq $14, %r12, %rax
10529 rorxq $18, %r12, %rcx
10530 addq %rdx, %r8
10531 addq 144(%rsi), %r15
10532 movq %r13, %rdx
10533 xorq %rax, %rcx
10534 xorq %r14, %rdx
10535 rorxq $41, %r12, %rax
10536 xorq %rcx, %rax
10537 andq %r12, %rdx
10538 addq %rax, %r15
10539 rorxq $28, %r8, %rax
10540 rorxq $34, %r8, %rcx
10541 xorq %r14, %rdx
10542 xorq %rax, %rcx
10543 rorxq $39, %r8, %rax
10544 addq %rdx, %r15
10545 xorq %rcx, %rax
10546 movq %r9, %rdx
10547 addq %r15, %r11
10548 xorq %r8, %rdx
10549 andq %rdx, %rbx
10550 addq %rax, %r15
10551 xorq %r9, %rbx
10552 rorxq $14, %r11, %rax
10553 rorxq $18, %r11, %rcx
10554 addq %rbx, %r15
10555 addq 152(%rsi), %r14
10556 movq %r12, %rbx
10557 xorq %rax, %rcx
10558 xorq %r13, %rbx
10559 rorxq $41, %r11, %rax
10560 xorq %rcx, %rax
10561 andq %r11, %rbx
10562 addq %rax, %r14
10563 rorxq $28, %r15, %rax
10564 rorxq $34, %r15, %rcx
10565 xorq %r13, %rbx
10566 xorq %rax, %rcx
10567 rorxq $39, %r15, %rax
10568 addq %rbx, %r14
10569 xorq %rcx, %rax
10570 movq %r8, %rbx
10571 leaq (%r10,%r14,1), %r10
10572 xorq %r15, %rbx
10573 andq %rbx, %rdx
10574 addq %rax, %r14
10575 xorq %r8, %rdx
10576 # rnd_all_2: 22-23
10577 rorxq $14, %r10, %rax
10578 rorxq $18, %r10, %rcx
10579 addq %rdx, %r14
10580 addq 176(%rsi), %r13
10581 movq %r11, %rdx
10582 xorq %rax, %rcx
10583 xorq %r12, %rdx
10584 rorxq $41, %r10, %rax
10585 xorq %rcx, %rax
10586 andq %r10, %rdx
10587 addq %rax, %r13
10588 rorxq $28, %r14, %rax
10589 rorxq $34, %r14, %rcx
10590 xorq %r12, %rdx
10591 xorq %rax, %rcx
10592 rorxq $39, %r14, %rax
10593 addq %rdx, %r13
10594 xorq %rcx, %rax
10595 movq %r15, %rdx
10596 addq %r13, %r9
10597 xorq %r14, %rdx
10598 andq %rdx, %rbx
10599 addq %rax, %r13
10600 xorq %r15, %rbx
10601 rorxq $14, %r9, %rax
10602 rorxq $18, %r9, %rcx
10603 addq %rbx, %r13
10604 addq 184(%rsi), %r12
10605 movq %r10, %rbx
10606 xorq %rax, %rcx
10607 xorq %r11, %rbx
10608 rorxq $41, %r9, %rax
10609 xorq %rcx, %rax
10610 andq %r9, %rbx
10611 addq %rax, %r12
10612 rorxq $28, %r13, %rax
10613 rorxq $34, %r13, %rcx
10614 xorq %r11, %rbx
10615 xorq %rax, %rcx
10616 rorxq $39, %r13, %rax
10617 addq %rbx, %r12
10618 xorq %rcx, %rax
10619 movq %r14, %rbx
10620 leaq (%r8,%r12,1), %r8
10621 xorq %r13, %rbx
10622 andq %rbx, %rdx
10623 addq %rax, %r12
10624 xorq %r14, %rdx
10625 # rnd_all_2: 26-27
10626 rorxq $14, %r8, %rax
10627 rorxq $18, %r8, %rcx
10628 addq %rdx, %r12
10629 addq 208(%rsi), %r11
10630 movq %r9, %rdx
10631 xorq %rax, %rcx
10632 xorq %r10, %rdx
10633 rorxq $41, %r8, %rax
10634 xorq %rcx, %rax
10635 andq %r8, %rdx
10636 addq %rax, %r11
10637 rorxq $28, %r12, %rax
10638 rorxq $34, %r12, %rcx
10639 xorq %r10, %rdx
10640 xorq %rax, %rcx
10641 rorxq $39, %r12, %rax
10642 addq %rdx, %r11
10643 xorq %rcx, %rax
10644 movq %r13, %rdx
10645 addq %r11, %r15
10646 xorq %r12, %rdx
10647 andq %rdx, %rbx
10648 addq %rax, %r11
10649 xorq %r13, %rbx
10650 rorxq $14, %r15, %rax
10651 rorxq $18, %r15, %rcx
10652 addq %rbx, %r11
10653 addq 216(%rsi), %r10
10654 movq %r8, %rbx
10655 xorq %rax, %rcx
10656 xorq %r9, %rbx
10657 rorxq $41, %r15, %rax
10658 xorq %rcx, %rax
10659 andq %r15, %rbx
10660 addq %rax, %r10
10661 rorxq $28, %r11, %rax
10662 rorxq $34, %r11, %rcx
10663 xorq %r9, %rbx
10664 xorq %rax, %rcx
10665 rorxq $39, %r11, %rax
10666 addq %rbx, %r10
10667 xorq %rcx, %rax
10668 movq %r12, %rbx
10669 leaq (%r14,%r10,1), %r14
10670 xorq %r11, %rbx
10671 andq %rbx, %rdx
10672 addq %rax, %r10
10673 xorq %r12, %rdx
10674 # rnd_all_2: 30-31
10675 rorxq $14, %r14, %rax
10676 rorxq $18, %r14, %rcx
10677 addq %rdx, %r10
10678 addq 240(%rsi), %r9
10679 movq %r15, %rdx
10680 xorq %rax, %rcx
10681 xorq %r8, %rdx
10682 rorxq $41, %r14, %rax
10683 xorq %rcx, %rax
10684 andq %r14, %rdx
10685 addq %rax, %r9
10686 rorxq $28, %r10, %rax
10687 rorxq $34, %r10, %rcx
10688 xorq %r8, %rdx
10689 xorq %rax, %rcx
10690 rorxq $39, %r10, %rax
10691 addq %rdx, %r9
10692 xorq %rcx, %rax
10693 movq %r11, %rdx
10694 addq %r9, %r13
10695 xorq %r10, %rdx
10696 andq %rdx, %rbx
10697 addq %rax, %r9
10698 xorq %r11, %rbx
10699 rorxq $14, %r13, %rax
10700 rorxq $18, %r13, %rcx
10701 addq %rbx, %r9
10702 addq 248(%rsi), %r8
10703 movq %r14, %rbx
10704 xorq %rax, %rcx
10705 xorq %r15, %rbx
10706 rorxq $41, %r13, %rax
10707 xorq %rcx, %rax
10708 andq %r13, %rbx
10709 addq %rax, %r8
10710 rorxq $28, %r9, %rax
10711 rorxq $34, %r9, %rcx
10712 xorq %r15, %rbx
10713 xorq %rax, %rcx
10714 rorxq $39, %r9, %rax
10715 addq %rbx, %r8
10716 xorq %rcx, %rax
10717 movq %r10, %rbx
10718 leaq (%r12,%r8,1), %r12
10719 xorq %r9, %rbx
10720 andq %rbx, %rdx
10721 addq %rax, %r8
10722 xorq %r10, %rdx
10723 addq $0x100, %rsi
10724 subq $0x01, %rbp
10725 jnz L_sha512_len_avx2_rorx_tail
10726 addq %rdx, %r8
10727 addq (%rdi), %r8
10728 addq 8(%rdi), %r9
10729 addq 16(%rdi), %r10
10730 addq 24(%rdi), %r11
10731 addq 32(%rdi), %r12
10732 addq 40(%rdi), %r13
10733 addq 48(%rdi), %r14
10734 addq 56(%rdi), %r15
10735 movq 224(%rdi), %rax
10736 addq $0x100, %rax
10737 subl $0x100, 1344(%rsp)
10738 movq %rax, 224(%rdi)
10739 movq %r8, (%rdi)
10740 movq %r9, 8(%rdi)
10741 movq %r10, 16(%rdi)
10742 movq %r11, 24(%rdi)
10743 movq %r12, 32(%rdi)
10744 movq %r13, 40(%rdi)
10745 movq %r14, 48(%rdi)
10746 movq %r15, 56(%rdi)
10747 jnz L_sha512_len_avx2_rorx_begin
10748 addq $0x548, %rsp
10749L_sha512_len_avx2_rorx_done:
10750 xorq %rax, %rax
10751 vzeroupper
10752 popq %rbp
10753 popq %r15
10754 popq %r14
10755 popq %r13
10756 popq %r12
10757 popq %rbx
10758 repz retq
10759#ifndef __APPLE__
10760.size Transform_Sha512_AVX2_RORX_Len,.-Transform_Sha512_AVX2_RORX_Len
10761#endif /* __APPLE__ */
10762#endif /* HAVE_INTEL_AVX2 */
10763
10764#if defined(__linux__) && defined(__ELF__)
10765.section .note.GNU-stack,"",%progbits
10766#endif