Browse Source

openssl: add assembly for aes and gcm

v0.11.10-release
Fedor Indutny 11 years ago
parent
commit
1903240f2a
  1. 30
      deps/openssl/asm/Makefile
  2. 2570
      deps/openssl/asm/x64-elf-gas/aes/bsaes-x86_64.s
  3. 839
      deps/openssl/asm/x64-elf-gas/aes/vpaes-x86_64.s
  4. 1027
      deps/openssl/asm/x64-elf-gas/modes/ghash-x86_64.s
  5. 2569
      deps/openssl/asm/x64-macosx-gas/aes/bsaes-x86_64.s
  6. 838
      deps/openssl/asm/x64-macosx-gas/aes/vpaes-x86_64.s
  7. 1027
      deps/openssl/asm/x64-macosx-gas/modes/ghash-x86_64.s
  8. 2811
      deps/openssl/asm/x64-win32-masm/aes/bsaes-x86_64.asm
  9. 1161
      deps/openssl/asm/x64-win32-masm/aes/vpaes-x86_64.asm
  10. 0
      deps/openssl/asm/x64-win32-masm/aes/vpaesni-x86_64.asm
  11. 1202
      deps/openssl/asm/x64-win32-masm/modes/ghash-x86_64.asm
  12. 661
      deps/openssl/asm/x86-elf-gas/aes/vpaes-x86.s
  13. 728
      deps/openssl/asm/x86-elf-gas/modes/ghash-x86.s
  14. 635
      deps/openssl/asm/x86-macosx-gas/aes/vpaes-x86.s
  15. 718
      deps/openssl/asm/x86-macosx-gas/modes/ghash-x86.s
  16. 662
      deps/openssl/asm/x86-win32-masm/aes/vpaes-x86.asm
  17. 738
      deps/openssl/asm/x86-win32-masm/modes/ghash-x86.asm
  18. 23
      deps/openssl/openssl.gyp

30
deps/openssl/asm/Makefile

@ -5,6 +5,7 @@ PERL += -I../openssl/crypto/perlasm -I../openssl/crypto/bn/asm
OUTPUTS = \ OUTPUTS = \
x86-elf-gas/aes/aes-586.s \ x86-elf-gas/aes/aes-586.s \
x86-elf-gas/aes/aesni-x86.s \ x86-elf-gas/aes/aesni-x86.s \
x86-elf-gas/aes/vpaes-x86.s \
x86-elf-gas/bf/bf-686.s \ x86-elf-gas/bf/bf-686.s \
x86-elf-gas/bn/x86-mont.s \ x86-elf-gas/bn/x86-mont.s \
x86-elf-gas/bn/x86.s \ x86-elf-gas/bn/x86.s \
@ -20,9 +21,12 @@ OUTPUTS = \
x86-elf-gas/sha/sha256-586.s \ x86-elf-gas/sha/sha256-586.s \
x86-elf-gas/sha/sha512-586.s \ x86-elf-gas/sha/sha512-586.s \
x86-elf-gas/whrlpool/wp-mmx.s \ x86-elf-gas/whrlpool/wp-mmx.s \
x86-elf-gas/modes/ghash-x86.s \
x86-elf-gas/x86cpuid.s \ x86-elf-gas/x86cpuid.s \
x64-elf-gas/aes/aes-x86_64.s \ x64-elf-gas/aes/aes-x86_64.s \
x64-elf-gas/aes/aesni-x86_64.s \ x64-elf-gas/aes/aesni-x86_64.s \
x64-elf-gas/aes/vpaes-x86_64.s \
x64-elf-gas/aes/bsaes-x86_64.s \
x64-elf-gas/aes/aesni-sha1-x86_64.s \ x64-elf-gas/aes/aesni-sha1-x86_64.s \
x64-elf-gas/bn/modexp512-x86_64.s \ x64-elf-gas/bn/modexp512-x86_64.s \
x64-elf-gas/bn/x86_64-mont.s \ x64-elf-gas/bn/x86_64-mont.s \
@ -36,9 +40,11 @@ OUTPUTS = \
x64-elf-gas/sha/sha256-x86_64.s \ x64-elf-gas/sha/sha256-x86_64.s \
x64-elf-gas/sha/sha512-x86_64.s \ x64-elf-gas/sha/sha512-x86_64.s \
x64-elf-gas/whrlpool/wp-x86_64.s \ x64-elf-gas/whrlpool/wp-x86_64.s \
x64-elf-gas/modes/ghash-x86_64.s \
x64-elf-gas/x86_64cpuid.s \ x64-elf-gas/x86_64cpuid.s \
x86-macosx-gas/aes/aes-586.s \ x86-macosx-gas/aes/aes-586.s \
x86-macosx-gas/aes/aesni-x86.s \ x86-macosx-gas/aes/aesni-x86.s \
x86-macosx-gas/aes/vpaes-x86.s \
x86-macosx-gas/bf/bf-686.s \ x86-macosx-gas/bf/bf-686.s \
x86-macosx-gas/bn/x86-mont.s \ x86-macosx-gas/bn/x86-mont.s \
x86-macosx-gas/bn/x86.s \ x86-macosx-gas/bn/x86.s \
@ -54,9 +60,12 @@ OUTPUTS = \
x86-macosx-gas/sha/sha256-586.s \ x86-macosx-gas/sha/sha256-586.s \
x86-macosx-gas/sha/sha512-586.s \ x86-macosx-gas/sha/sha512-586.s \
x86-macosx-gas/whrlpool/wp-mmx.s \ x86-macosx-gas/whrlpool/wp-mmx.s \
x86-macosx-gas/modes/ghash-x86.s \
x86-macosx-gas/x86cpuid.s \ x86-macosx-gas/x86cpuid.s \
x64-macosx-gas/aes/aes-x86_64.s \ x64-macosx-gas/aes/aes-x86_64.s \
x64-macosx-gas/aes/aesni-x86_64.s \ x64-macosx-gas/aes/aesni-x86_64.s \
x64-macosx-gas/aes/vpaes-x86_64.s \
x64-macosx-gas/aes/bsaes-x86_64.s \
x64-macosx-gas/aes/aesni-sha1-x86_64.s \ x64-macosx-gas/aes/aesni-sha1-x86_64.s \
x64-macosx-gas/bn/modexp512-x86_64.s \ x64-macosx-gas/bn/modexp512-x86_64.s \
x64-macosx-gas/bn/x86_64-mont.s \ x64-macosx-gas/bn/x86_64-mont.s \
@ -70,9 +79,11 @@ OUTPUTS = \
x64-macosx-gas/sha/sha256-x86_64.s \ x64-macosx-gas/sha/sha256-x86_64.s \
x64-macosx-gas/sha/sha512-x86_64.s \ x64-macosx-gas/sha/sha512-x86_64.s \
x64-macosx-gas/whrlpool/wp-x86_64.s \ x64-macosx-gas/whrlpool/wp-x86_64.s \
x64-macosx-gas/modes/ghash-x86_64.s \
x64-macosx-gas/x86_64cpuid.s \ x64-macosx-gas/x86_64cpuid.s \
x86-win32-masm/aes/aes-586.asm \ x86-win32-masm/aes/aes-586.asm \
x86-win32-masm/aes/aesni-x86.asm \ x86-win32-masm/aes/aesni-x86.asm \
x86-win32-masm/aes/vpaes-x86.asm \
x86-win32-masm/bf/bf-686.asm \ x86-win32-masm/bf/bf-686.asm \
x86-win32-masm/bn/x86-mont.asm \ x86-win32-masm/bn/x86-mont.asm \
x86-win32-masm/bn/x86.asm \ x86-win32-masm/bn/x86.asm \
@ -88,9 +99,12 @@ OUTPUTS = \
x86-win32-masm/sha/sha256-586.asm \ x86-win32-masm/sha/sha256-586.asm \
x86-win32-masm/sha/sha512-586.asm \ x86-win32-masm/sha/sha512-586.asm \
x86-win32-masm/whrlpool/wp-mmx.asm \ x86-win32-masm/whrlpool/wp-mmx.asm \
x86-win32-masm/modes/ghash-x86.asm \
x86-win32-masm/x86cpuid.asm \ x86-win32-masm/x86cpuid.asm \
x64-win32-masm/aes/aes-x86_64.asm \ x64-win32-masm/aes/aes-x86_64.asm \
x64-win32-masm/aes/aesni-x86_64.asm \ x64-win32-masm/aes/aesni-x86_64.asm \
x64-win32-masm/aes/vpaes-x86_64.asm \
x64-win32-masm/aes/bsaes-x86_64.asm \
x64-win32-masm/aes/aesni-sha1-x86_64.asm \ x64-win32-masm/aes/aesni-sha1-x86_64.asm \
x64-win32-masm/bn/modexp512-x86_64.asm \ x64-win32-masm/bn/modexp512-x86_64.asm \
x64-win32-masm/bn/x86_64-mont.asm \ x64-win32-masm/bn/x86_64-mont.asm \
@ -104,6 +118,7 @@ OUTPUTS = \
x64-win32-masm/sha/sha256-x86_64.asm \ x64-win32-masm/sha/sha256-x86_64.asm \
x64-win32-masm/sha/sha512-x86_64.asm \ x64-win32-masm/sha/sha512-x86_64.asm \
x64-win32-masm/whrlpool/wp-x86_64.asm \ x64-win32-masm/whrlpool/wp-x86_64.asm \
x64-win32-masm/modes/ghash-x86_64.asm \
x64-win32-masm/x86_64cpuid.asm \ x64-win32-masm/x86_64cpuid.asm \
x64-elf-gas/%.s x86-elf-gas/%.s: x64-elf-gas/%.s x86-elf-gas/%.s:
@ -132,6 +147,8 @@ clean:
x64-elf-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl x64-elf-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl
x64-elf-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl x64-elf-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl
x64-elf-gas/aes/vpaes-x86_64.s: ../openssl/crypto/aes/asm/vpaes-x86_64.pl
x64-elf-gas/aes/bsaes-x86_64.s: ../openssl/crypto/aes/asm/bsaes-x86_64.pl
x64-elf-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl x64-elf-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
x64-elf-gas/bn/modexp512-x86_64.s: ../openssl/crypto/bn/asm/modexp512-x86_64.pl x64-elf-gas/bn/modexp512-x86_64.s: ../openssl/crypto/bn/asm/modexp512-x86_64.pl
x64-elf-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl x64-elf-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl
@ -145,9 +162,12 @@ x64-elf-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl
x64-elf-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl x64-elf-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl
x64-elf-gas/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha256-x86_64.pl x64-elf-gas/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha256-x86_64.pl
x64-elf-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl x64-elf-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
x64-elf-gas/modes/ghash-x86_64.s: ../openssl/crypto/modes/asm/ghash-x86_64.pl
x64-elf-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl x64-elf-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl
x64-macosx-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl x64-macosx-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl
x64-macosx-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl x64-macosx-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl
x64-macosx-gas/aes/vpaes-x86_64.s: ../openssl/crypto/aes/asm/vpaes-x86_64.pl
x64-macosx-gas/aes/bsaes-x86_64.s: ../openssl/crypto/aes/asm/bsaes-x86_64.pl
x64-macosx-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl x64-macosx-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
x64-macosx-gas/bn/modexp512-x86_64.s: ../openssl/crypto/bn/asm/modexp512-x86_64.pl x64-macosx-gas/bn/modexp512-x86_64.s: ../openssl/crypto/bn/asm/modexp512-x86_64.pl
x64-macosx-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl x64-macosx-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl
@ -161,9 +181,12 @@ x64-macosx-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl
x64-macosx-gas/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha256-x86_64.pl x64-macosx-gas/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha256-x86_64.pl
x64-macosx-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl x64-macosx-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl
x64-macosx-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl x64-macosx-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
x64-macosx-gas/modes/ghash-x86_64.s: ../openssl/crypto/modes/asm/ghash-x86_64.pl
x64-macosx-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl x64-macosx-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl
x64-win32-masm/aes/aes-x86_64.asm: ../openssl/crypto/aes/asm/aes-x86_64.pl x64-win32-masm/aes/aes-x86_64.asm: ../openssl/crypto/aes/asm/aes-x86_64.pl
x64-win32-masm/aes/aesni-x86_64.asm: ../openssl/crypto/aes/asm/aesni-x86_64.pl x64-win32-masm/aes/aesni-x86_64.asm: ../openssl/crypto/aes/asm/aesni-x86_64.pl
x64-win32-masm/aes/vpaes-x86_64.asm: ../openssl/crypto/aes/asm/vpaes-x86_64.pl
x64-win32-masm/aes/bsaes-x86_64.asm: ../openssl/crypto/aes/asm/bsaes-x86_64.pl
x64-win32-masm/aes/aesni-sha1-x86_64.asm: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl x64-win32-masm/aes/aesni-sha1-x86_64.asm: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
x64-win32-masm/bn/modexp512-x86_64.asm: ../openssl/crypto/bn/asm/modexp512-x86_64.pl x64-win32-masm/bn/modexp512-x86_64.asm: ../openssl/crypto/bn/asm/modexp512-x86_64.pl
x64-win32-masm/bn/x86_64-mont.asm: ../openssl/crypto/bn/asm/x86_64-mont.pl x64-win32-masm/bn/x86_64-mont.asm: ../openssl/crypto/bn/asm/x86_64-mont.pl
@ -177,9 +200,11 @@ x64-win32-masm/sha/sha1-x86_64.asm: ../openssl/crypto/sha/asm/sha1-x86_64.pl
x64-win32-masm/sha/sha256-x86_64.asm: ../openssl/crypto/sha/asm/sha256-x86_64.pl x64-win32-masm/sha/sha256-x86_64.asm: ../openssl/crypto/sha/asm/sha256-x86_64.pl
x64-win32-masm/sha/sha512-x86_64.asm: ../openssl/crypto/sha/asm/sha512-x86_64.pl x64-win32-masm/sha/sha512-x86_64.asm: ../openssl/crypto/sha/asm/sha512-x86_64.pl
x64-win32-masm/whrlpool/wp-x86_64.asm: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl x64-win32-masm/whrlpool/wp-x86_64.asm: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
x64-win32-masm/modes/ghash-x86_64.asm: ../openssl/crypto/modes/asm/ghash-x86_64.pl
x64-win32-masm/x86_64cpuid.asm: ../openssl/crypto/x86_64cpuid.pl x64-win32-masm/x86_64cpuid.asm: ../openssl/crypto/x86_64cpuid.pl
x86-elf-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl x86-elf-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl
x86-elf-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl x86-elf-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl
x86-elf-gas/aes/vpaes-x86.s: ../openssl/crypto/aes/asm/vpaes-x86.pl
x86-elf-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl x86-elf-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl
x86-elf-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl x86-elf-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl
x86-elf-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl x86-elf-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl
@ -195,9 +220,11 @@ x86-elf-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl
x86-elf-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl x86-elf-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl
x86-elf-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl x86-elf-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl
x86-elf-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl x86-elf-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl
x86-elf-gas/modes/ghash-x86.s: ../openssl/crypto/modes/asm/ghash-x86.pl
x86-elf-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl x86-elf-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl
x86-macosx-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl x86-macosx-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl
x86-macosx-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl x86-macosx-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl
x86-macosx-gas/aes/vpaes-x86.s: ../openssl/crypto/aes/asm/vpaes-x86.pl
x86-macosx-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl x86-macosx-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl
x86-macosx-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl x86-macosx-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl
x86-macosx-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl x86-macosx-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl
@ -213,9 +240,11 @@ x86-macosx-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl
x86-macosx-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl x86-macosx-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl
x86-macosx-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl x86-macosx-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl
x86-macosx-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl x86-macosx-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl
x86-macosx-gas/modes/ghash-x86.s: ../openssl/crypto/modes/asm/ghash-x86.pl
x86-macosx-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl x86-macosx-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl
x86-win32-masm/aes/aes-586.asm: ../openssl/crypto/aes/asm/aes-586.pl x86-win32-masm/aes/aes-586.asm: ../openssl/crypto/aes/asm/aes-586.pl
x86-win32-masm/aes/aesni-x86.asm: ../openssl/crypto/aes/asm/aesni-x86.pl x86-win32-masm/aes/aesni-x86.asm: ../openssl/crypto/aes/asm/aesni-x86.pl
x86-win32-masm/aes/vpaes-x86.asm: ../openssl/crypto/aes/asm/vpaes-x86.pl
x86-win32-masm/bf/bf-686.asm: ../openssl/crypto/bf/asm/bf-686.pl x86-win32-masm/bf/bf-686.asm: ../openssl/crypto/bf/asm/bf-686.pl
x86-win32-masm/bn/x86.asm: ../openssl/crypto/bn/asm/x86.pl x86-win32-masm/bn/x86.asm: ../openssl/crypto/bn/asm/x86.pl
x86-win32-masm/bn/x86-mont.asm: ../openssl/crypto/bn/asm/x86-mont.pl x86-win32-masm/bn/x86-mont.asm: ../openssl/crypto/bn/asm/x86-mont.pl
@ -231,4 +260,5 @@ x86-win32-masm/sha/sha1-586.asm: ../openssl/crypto/sha/asm/sha1-586.pl
x86-win32-masm/sha/sha256-586.asm: ../openssl/crypto/sha/asm/sha256-586.pl x86-win32-masm/sha/sha256-586.asm: ../openssl/crypto/sha/asm/sha256-586.pl
x86-win32-masm/sha/sha512-586.asm: ../openssl/crypto/sha/asm/sha512-586.pl x86-win32-masm/sha/sha512-586.asm: ../openssl/crypto/sha/asm/sha512-586.pl
x86-win32-masm/whrlpool/wp-mmx.asm: ../openssl/crypto/whrlpool/asm/wp-mmx.pl x86-win32-masm/whrlpool/wp-mmx.asm: ../openssl/crypto/whrlpool/asm/wp-mmx.pl
x86-win32-masm/modes/ghash-x86.asm: ../openssl/crypto/modes/asm/ghash-x86.pl
x86-win32-masm/x86cpuid.asm: ../openssl/crypto/x86cpuid.pl x86-win32-masm/x86cpuid.asm: ../openssl/crypto/x86cpuid.pl

2570
deps/openssl/asm/x64-elf-gas/aes/bsaes-x86_64.s

File diff suppressed because it is too large

839
deps/openssl/asm/x64-elf-gas/aes/vpaes-x86_64.s

@ -0,0 +1,839 @@
.text
.type _vpaes_encrypt_core,@function
.align 16
_vpaes_encrypt_core:
movq %rdx,%r9
movq $16,%r11
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
movdqa .Lk_ipt(%rip),%xmm2
pandn %xmm0,%xmm1
movdqu (%r9),%xmm5
psrld $4,%xmm1
pand %xmm9,%xmm0
.byte 102,15,56,0,208
movdqa .Lk_ipt+16(%rip),%xmm0
.byte 102,15,56,0,193
pxor %xmm5,%xmm2
pxor %xmm2,%xmm0
addq $16,%r9
leaq .Lk_mc_backward(%rip),%r10
jmp .Lenc_entry
.align 16
.Lenc_loop:
movdqa %xmm13,%xmm4
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
movdqa %xmm12,%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
movdqa %xmm15,%xmm5
.byte 102,15,56,0,234
movdqa -64(%r11,%r10,1),%xmm1
movdqa %xmm14,%xmm2
.byte 102,15,56,0,211
pxor %xmm5,%xmm2
movdqa (%r11,%r10,1),%xmm4
movdqa %xmm0,%xmm3
.byte 102,15,56,0,193
addq $16,%r9
pxor %xmm2,%xmm0
.byte 102,15,56,0,220
addq $16,%r11
pxor %xmm0,%xmm3
.byte 102,15,56,0,193
andq $48,%r11
pxor %xmm3,%xmm0
subq $1,%rax
.Lenc_entry:
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa %xmm11,%xmm5
.byte 102,15,56,0,232
pxor %xmm1,%xmm0
movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
pxor %xmm5,%xmm3
movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
pxor %xmm5,%xmm4
movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm10,%xmm3
movdqu (%r9),%xmm5
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
jnz .Lenc_loop
movdqa -96(%r10),%xmm4
movdqa -80(%r10),%xmm0
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
.byte 102,15,56,0,195
movdqa 64(%r11,%r10,1),%xmm1
pxor %xmm4,%xmm0
.byte 102,15,56,0,193
.byte 0xf3,0xc3
.size _vpaes_encrypt_core,.-_vpaes_encrypt_core
.type _vpaes_decrypt_core,@function
.align 16
_vpaes_decrypt_core:
movq %rdx,%r9
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
movdqa .Lk_dipt(%rip),%xmm2
pandn %xmm0,%xmm1
movq %rax,%r11
psrld $4,%xmm1
movdqu (%r9),%xmm5
shlq $4,%r11
pand %xmm9,%xmm0
.byte 102,15,56,0,208
movdqa .Lk_dipt+16(%rip),%xmm0
xorq $48,%r11
leaq .Lk_dsbd(%rip),%r10
.byte 102,15,56,0,193
andq $48,%r11
pxor %xmm5,%xmm2
movdqa .Lk_mc_forward+48(%rip),%xmm5
pxor %xmm2,%xmm0
addq $16,%r9
addq %r10,%r11
jmp .Ldec_entry
.align 16
.Ldec_loop:
movdqa -32(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa -16(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
addq $16,%r9
.byte 102,15,56,0,197
movdqa 0(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 16(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
subq $1,%rax
.byte 102,15,56,0,197
movdqa 32(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 48(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,197
movdqa 64(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 80(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,58,15,237,12
.Ldec_entry:
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa %xmm11,%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm10,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqu (%r9),%xmm0
jnz .Ldec_loop
movdqa 96(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 112(%r10),%xmm0
movdqa -352(%r11),%xmm2
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,194
.byte 0xf3,0xc3
.size _vpaes_decrypt_core,.-_vpaes_decrypt_core
.type _vpaes_schedule_core,@function
.align 16
_vpaes_schedule_core:
call _vpaes_preheat
movdqa .Lk_rcon(%rip),%xmm8
movdqu (%rdi),%xmm0
movdqa %xmm0,%xmm3
leaq .Lk_ipt(%rip),%r11
call _vpaes_schedule_transform
movdqa %xmm0,%xmm7
leaq .Lk_sr(%rip),%r10
testq %rcx,%rcx
jnz .Lschedule_am_decrypting
movdqu %xmm0,(%rdx)
jmp .Lschedule_go
.Lschedule_am_decrypting:
movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,217
movdqu %xmm3,(%rdx)
xorq $48,%r8
.Lschedule_go:
cmpl $192,%esi
ja .Lschedule_256
je .Lschedule_192
.Lschedule_128:
movl $10,%esi
.Loop_schedule_128:
call _vpaes_schedule_round
decq %rsi
jz .Lschedule_mangle_last
call _vpaes_schedule_mangle
jmp .Loop_schedule_128
.align 16
.Lschedule_192:
movdqu 8(%rdi),%xmm0
call _vpaes_schedule_transform
movdqa %xmm0,%xmm6
pxor %xmm4,%xmm4
movhlps %xmm4,%xmm6
movl $4,%esi
.Loop_schedule_192:
call _vpaes_schedule_round
.byte 102,15,58,15,198,8
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
call _vpaes_schedule_mangle
call _vpaes_schedule_round
decq %rsi
jz .Lschedule_mangle_last
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
jmp .Loop_schedule_192
.align 16
.Lschedule_256:
movdqu 16(%rdi),%xmm0
call _vpaes_schedule_transform
movl $7,%esi
.Loop_schedule_256:
call _vpaes_schedule_mangle
movdqa %xmm0,%xmm6
call _vpaes_schedule_round
decq %rsi
jz .Lschedule_mangle_last
call _vpaes_schedule_mangle
pshufd $255,%xmm0,%xmm0
movdqa %xmm7,%xmm5
movdqa %xmm6,%xmm7
call _vpaes_schedule_low_round
movdqa %xmm5,%xmm7
jmp .Loop_schedule_256
.align 16
.Lschedule_mangle_last:
leaq .Lk_deskew(%rip),%r11
testq %rcx,%rcx
jnz .Lschedule_mangle_last_dec
movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,193
leaq .Lk_opt(%rip),%r11
addq $32,%rdx
.Lschedule_mangle_last_dec:
addq $-16,%rdx
pxor .Lk_s63(%rip),%xmm0
call _vpaes_schedule_transform
movdqu %xmm0,(%rdx)
pxor %xmm0,%xmm0
pxor %xmm1,%xmm1
pxor %xmm2,%xmm2
pxor %xmm3,%xmm3
pxor %xmm4,%xmm4
pxor %xmm5,%xmm5
pxor %xmm6,%xmm6
pxor %xmm7,%xmm7
.byte 0xf3,0xc3
.size _vpaes_schedule_core,.-_vpaes_schedule_core
.type _vpaes_schedule_192_smear,@function
.align 16
_vpaes_schedule_192_smear:
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
pxor %xmm0,%xmm6
movdqa %xmm6,%xmm0
pxor %xmm1,%xmm1
movhlps %xmm1,%xmm6
.byte 0xf3,0xc3
.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
.type _vpaes_schedule_round,@function
.align 16
_vpaes_schedule_round:
pxor %xmm1,%xmm1
.byte 102,65,15,58,15,200,15
.byte 102,69,15,58,15,192,15
pxor %xmm1,%xmm7
pshufd $255,%xmm0,%xmm0
.byte 102,15,58,15,192,1
_vpaes_schedule_low_round:
movdqa %xmm7,%xmm1
pslldq $4,%xmm7
pxor %xmm1,%xmm7
movdqa %xmm7,%xmm1
pslldq $8,%xmm7
pxor %xmm1,%xmm7
pxor .Lk_s63(%rip),%xmm7
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa %xmm11,%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm10,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqa %xmm13,%xmm4
.byte 102,15,56,0,226
movdqa %xmm12,%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
pxor %xmm7,%xmm0
movdqa %xmm0,%xmm7
.byte 0xf3,0xc3
.size _vpaes_schedule_round,.-_vpaes_schedule_round
.type _vpaes_schedule_transform,@function
.align 16
_vpaes_schedule_transform:
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa (%r11),%xmm2
.byte 102,15,56,0,208
movdqa 16(%r11),%xmm0
.byte 102,15,56,0,193
pxor %xmm2,%xmm0
.byte 0xf3,0xc3
.size _vpaes_schedule_transform,.-_vpaes_schedule_transform
.type _vpaes_schedule_mangle,@function
.align 16
_vpaes_schedule_mangle:
movdqa %xmm0,%xmm4
movdqa .Lk_mc_forward(%rip),%xmm5
testq %rcx,%rcx
jnz .Lschedule_mangle_dec
addq $16,%rdx
pxor .Lk_s63(%rip),%xmm4
.byte 102,15,56,0,229
movdqa %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
jmp .Lschedule_mangle_both
.align 16
.Lschedule_mangle_dec:
leaq .Lk_dksd(%rip),%r11
movdqa %xmm9,%xmm1
pandn %xmm4,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm4
movdqa 0(%r11),%xmm2
.byte 102,15,56,0,212
movdqa 16(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 32(%r11),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 48(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 64(%r11),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 80(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 96(%r11),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 112(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
addq $-16,%rdx
.Lschedule_mangle_both:
movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,217
addq $-16,%r8
andq $48,%r8
movdqu %xmm3,(%rdx)
.byte 0xf3,0xc3
.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
.globl vpaes_set_encrypt_key
.type vpaes_set_encrypt_key,@function
.align 16
vpaes_set_encrypt_key:
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
movl %eax,240(%rdx)
movl $0,%ecx
movl $48,%r8d
call _vpaes_schedule_core
xorl %eax,%eax
.byte 0xf3,0xc3
.size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
.globl vpaes_set_decrypt_key
.type vpaes_set_decrypt_key,@function
.align 16
vpaes_set_decrypt_key:
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
movl %eax,240(%rdx)
shll $4,%eax
leaq 16(%rdx,%rax,1),%rdx
movl $1,%ecx
movl %esi,%r8d
shrl $1,%r8d
andl $32,%r8d
xorl $32,%r8d
call _vpaes_schedule_core
xorl %eax,%eax
.byte 0xf3,0xc3
.size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
.globl vpaes_encrypt
.type vpaes_encrypt,@function
.align 16
vpaes_encrypt:
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_encrypt_core
movdqu %xmm0,(%rsi)
.byte 0xf3,0xc3
.size vpaes_encrypt,.-vpaes_encrypt
.globl vpaes_decrypt
.type vpaes_decrypt,@function
.align 16
vpaes_decrypt:
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_decrypt_core
movdqu %xmm0,(%rsi)
.byte 0xf3,0xc3
.size vpaes_decrypt,.-vpaes_decrypt
.globl vpaes_cbc_encrypt
.type vpaes_cbc_encrypt,@function
.align 16
vpaes_cbc_encrypt:
xchgq %rcx,%rdx
subq $16,%rcx
jc .Lcbc_abort
movdqu (%r8),%xmm6
subq %rdi,%rsi
call _vpaes_preheat
cmpl $0,%r9d
je .Lcbc_dec_loop
jmp .Lcbc_enc_loop
.align 16
.Lcbc_enc_loop:
movdqu (%rdi),%xmm0
pxor %xmm6,%xmm0
call _vpaes_encrypt_core
movdqa %xmm0,%xmm6
movdqu %xmm0,(%rsi,%rdi,1)
leaq 16(%rdi),%rdi
subq $16,%rcx
jnc .Lcbc_enc_loop
jmp .Lcbc_done
.align 16
.Lcbc_dec_loop:
movdqu (%rdi),%xmm0
movdqa %xmm0,%xmm7
call _vpaes_decrypt_core
pxor %xmm6,%xmm0
movdqa %xmm7,%xmm6
movdqu %xmm0,(%rsi,%rdi,1)
leaq 16(%rdi),%rdi
subq $16,%rcx
jnc .Lcbc_dec_loop
.Lcbc_done:
movdqu %xmm6,(%r8)
.Lcbc_abort:
.byte 0xf3,0xc3
.size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
.type _vpaes_preheat,@function
.align 16
_vpaes_preheat:
leaq .Lk_s0F(%rip),%r10
movdqa -32(%r10),%xmm10
movdqa -16(%r10),%xmm11
movdqa 0(%r10),%xmm9
movdqa 48(%r10),%xmm13
movdqa 64(%r10),%xmm12
movdqa 80(%r10),%xmm15
movdqa 96(%r10),%xmm14
.byte 0xf3,0xc3
.size _vpaes_preheat,.-_vpaes_preheat
.type _vpaes_consts,@object
.align 64
_vpaes_consts:
.Lk_inv:
.quad 0x0E05060F0D080180, 0x040703090A0B0C02
.quad 0x01040A060F0B0780, 0x030D0E0C02050809
.Lk_s0F:
.quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
.Lk_ipt:
.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
.Lk_sb1:
.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
.Lk_sb2:
.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
.Lk_sbo:
.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
.Lk_mc_forward:
.quad 0x0407060500030201, 0x0C0F0E0D080B0A09
.quad 0x080B0A0904070605, 0x000302010C0F0E0D
.quad 0x0C0F0E0D080B0A09, 0x0407060500030201
.quad 0x000302010C0F0E0D, 0x080B0A0904070605
.Lk_mc_backward:
.quad 0x0605040702010003, 0x0E0D0C0F0A09080B
.quad 0x020100030E0D0C0F, 0x0A09080B06050407
.quad 0x0E0D0C0F0A09080B, 0x0605040702010003
.quad 0x0A09080B06050407, 0x020100030E0D0C0F
.Lk_sr:
.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
.quad 0x030E09040F0A0500, 0x0B06010C07020D08
.quad 0x0F060D040B020900, 0x070E050C030A0108
.quad 0x0B0E0104070A0D00, 0x0306090C0F020508
.Lk_rcon:
.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
.Lk_s63:
.quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
.Lk_opt:
.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
.Lk_deskew:
.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
.Lk_dksd:
.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
.Lk_dksb:
.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
.Lk_dkse:
.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
.Lk_dks9:
.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
.Lk_dipt:
.quad 0x0F505B040B545F00, 0x154A411E114E451A
.quad 0x86E383E660056500, 0x12771772F491F194
.Lk_dsb9:
.quad 0x851C03539A86D600, 0xCAD51F504F994CC9
.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
.Lk_dsbd:
.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
.Lk_dsbb:
.quad 0xD022649296B44200, 0x602646F6B0F2D404
.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
.Lk_dsbe:
.quad 0x46F2929626D4D000, 0x2242600464B4F6B0
.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
.Lk_dsbo:
.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
.align 64
.size _vpaes_consts,.-_vpaes_consts

1027
deps/openssl/asm/x64-elf-gas/modes/ghash-x86_64.s

File diff suppressed because it is too large

2569
deps/openssl/asm/x64-macosx-gas/aes/bsaes-x86_64.s

File diff suppressed because it is too large

838
deps/openssl/asm/x64-macosx-gas/aes/vpaes-x86_64.s

@ -0,0 +1,838 @@
.text
.p2align 4
_vpaes_encrypt_core:
movq %rdx,%r9
movq $16,%r11
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
movdqa L$k_ipt(%rip),%xmm2
pandn %xmm0,%xmm1
movdqu (%r9),%xmm5
psrld $4,%xmm1
pand %xmm9,%xmm0
.byte 102,15,56,0,208
movdqa L$k_ipt+16(%rip),%xmm0
.byte 102,15,56,0,193
pxor %xmm5,%xmm2
pxor %xmm2,%xmm0
addq $16,%r9
leaq L$k_mc_backward(%rip),%r10
jmp L$enc_entry
.p2align 4
L$enc_loop:
movdqa %xmm13,%xmm4
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
movdqa %xmm12,%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
movdqa %xmm15,%xmm5
.byte 102,15,56,0,234
movdqa -64(%r11,%r10,1),%xmm1
movdqa %xmm14,%xmm2
.byte 102,15,56,0,211
pxor %xmm5,%xmm2
movdqa (%r11,%r10,1),%xmm4
movdqa %xmm0,%xmm3
.byte 102,15,56,0,193
addq $16,%r9
pxor %xmm2,%xmm0
.byte 102,15,56,0,220
addq $16,%r11
pxor %xmm0,%xmm3
.byte 102,15,56,0,193
andq $48,%r11
pxor %xmm3,%xmm0
subq $1,%rax
L$enc_entry:
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa %xmm11,%xmm5
.byte 102,15,56,0,232
pxor %xmm1,%xmm0
movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
pxor %xmm5,%xmm3
movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
pxor %xmm5,%xmm4
movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm10,%xmm3
movdqu (%r9),%xmm5
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
jnz L$enc_loop
movdqa -96(%r10),%xmm4
movdqa -80(%r10),%xmm0
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
.byte 102,15,56,0,195
movdqa 64(%r11,%r10,1),%xmm1
pxor %xmm4,%xmm0
.byte 102,15,56,0,193
.byte 0xf3,0xc3
.p2align 4
_vpaes_decrypt_core:
movq %rdx,%r9
movl 240(%rdx),%eax
movdqa %xmm9,%xmm1
movdqa L$k_dipt(%rip),%xmm2
pandn %xmm0,%xmm1
movq %rax,%r11
psrld $4,%xmm1
movdqu (%r9),%xmm5
shlq $4,%r11
pand %xmm9,%xmm0
.byte 102,15,56,0,208
movdqa L$k_dipt+16(%rip),%xmm0
xorq $48,%r11
leaq L$k_dsbd(%rip),%r10
.byte 102,15,56,0,193
andq $48,%r11
pxor %xmm5,%xmm2
movdqa L$k_mc_forward+48(%rip),%xmm5
pxor %xmm2,%xmm0
addq $16,%r9
addq %r10,%r11
jmp L$dec_entry
.p2align 4
L$dec_loop:
movdqa -32(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa -16(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
addq $16,%r9
.byte 102,15,56,0,197
movdqa 0(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 16(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
subq $1,%rax
.byte 102,15,56,0,197
movdqa 32(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 48(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,197
movdqa 64(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 80(%r10),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,58,15,237,12
L$dec_entry:
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa %xmm11,%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm10,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqu (%r9),%xmm0
jnz L$dec_loop
movdqa 96(%r10),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 112(%r10),%xmm0
movdqa -352(%r11),%xmm2
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,194
.byte 0xf3,0xc3
.p2align 4
_vpaes_schedule_core:
call _vpaes_preheat
movdqa L$k_rcon(%rip),%xmm8
movdqu (%rdi),%xmm0
movdqa %xmm0,%xmm3
leaq L$k_ipt(%rip),%r11
call _vpaes_schedule_transform
movdqa %xmm0,%xmm7
leaq L$k_sr(%rip),%r10
testq %rcx,%rcx
jnz L$schedule_am_decrypting
movdqu %xmm0,(%rdx)
jmp L$schedule_go
L$schedule_am_decrypting:
movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,217
movdqu %xmm3,(%rdx)
xorq $48,%r8
L$schedule_go:
cmpl $192,%esi
ja L$schedule_256
je L$schedule_192
L$schedule_128:
movl $10,%esi
L$oop_schedule_128:
call _vpaes_schedule_round
decq %rsi
jz L$schedule_mangle_last
call _vpaes_schedule_mangle
jmp L$oop_schedule_128
.p2align 4
L$schedule_192:
movdqu 8(%rdi),%xmm0
call _vpaes_schedule_transform
movdqa %xmm0,%xmm6
pxor %xmm4,%xmm4
movhlps %xmm4,%xmm6
movl $4,%esi
L$oop_schedule_192:
call _vpaes_schedule_round
.byte 102,15,58,15,198,8
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
call _vpaes_schedule_mangle
call _vpaes_schedule_round
decq %rsi
jz L$schedule_mangle_last
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
jmp L$oop_schedule_192
.p2align 4
L$schedule_256:
movdqu 16(%rdi),%xmm0
call _vpaes_schedule_transform
movl $7,%esi
L$oop_schedule_256:
call _vpaes_schedule_mangle
movdqa %xmm0,%xmm6
call _vpaes_schedule_round
decq %rsi
jz L$schedule_mangle_last
call _vpaes_schedule_mangle
pshufd $255,%xmm0,%xmm0
movdqa %xmm7,%xmm5
movdqa %xmm6,%xmm7
call _vpaes_schedule_low_round
movdqa %xmm5,%xmm7
jmp L$oop_schedule_256
.p2align 4
L$schedule_mangle_last:
leaq L$k_deskew(%rip),%r11
testq %rcx,%rcx
jnz L$schedule_mangle_last_dec
movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,193
leaq L$k_opt(%rip),%r11
addq $32,%rdx
L$schedule_mangle_last_dec:
addq $-16,%rdx
pxor L$k_s63(%rip),%xmm0
call _vpaes_schedule_transform
movdqu %xmm0,(%rdx)
pxor %xmm0,%xmm0
pxor %xmm1,%xmm1
pxor %xmm2,%xmm2
pxor %xmm3,%xmm3
pxor %xmm4,%xmm4
pxor %xmm5,%xmm5
pxor %xmm6,%xmm6
pxor %xmm7,%xmm7
.byte 0xf3,0xc3
.p2align 4
_vpaes_schedule_192_smear:
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
pxor %xmm0,%xmm6
movdqa %xmm6,%xmm0
pxor %xmm1,%xmm1
movhlps %xmm1,%xmm6
.byte 0xf3,0xc3
.p2align 4
_vpaes_schedule_round:
pxor %xmm1,%xmm1
.byte 102,65,15,58,15,200,15
.byte 102,69,15,58,15,192,15
pxor %xmm1,%xmm7
pshufd $255,%xmm0,%xmm0
.byte 102,15,58,15,192,1
_vpaes_schedule_low_round:
movdqa %xmm7,%xmm1
pslldq $4,%xmm7
pxor %xmm1,%xmm7
movdqa %xmm7,%xmm1
pslldq $8,%xmm7
pxor %xmm1,%xmm7
pxor L$k_s63(%rip),%xmm7
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa %xmm11,%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm10,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqa %xmm13,%xmm4
.byte 102,15,56,0,226
movdqa %xmm12,%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
pxor %xmm7,%xmm0
movdqa %xmm0,%xmm7
.byte 0xf3,0xc3
.p2align 4
_vpaes_schedule_transform:
movdqa %xmm9,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm0
movdqa (%r11),%xmm2
.byte 102,15,56,0,208
movdqa 16(%r11),%xmm0
.byte 102,15,56,0,193
pxor %xmm2,%xmm0
.byte 0xf3,0xc3
.p2align 4
_vpaes_schedule_mangle:
movdqa %xmm0,%xmm4
movdqa L$k_mc_forward(%rip),%xmm5
testq %rcx,%rcx
jnz L$schedule_mangle_dec
addq $16,%rdx
pxor L$k_s63(%rip),%xmm4
.byte 102,15,56,0,229
movdqa %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
jmp L$schedule_mangle_both
.p2align 4
L$schedule_mangle_dec:
leaq L$k_dksd(%rip),%r11
movdqa %xmm9,%xmm1
pandn %xmm4,%xmm1
psrld $4,%xmm1
pand %xmm9,%xmm4
movdqa 0(%r11),%xmm2
.byte 102,15,56,0,212
movdqa 16(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 32(%r11),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 48(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 64(%r11),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 80(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 96(%r11),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 112(%r11),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
addq $-16,%rdx
L$schedule_mangle_both:
movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,217
addq $-16,%r8
andq $48,%r8
movdqu %xmm3,(%rdx)
.byte 0xf3,0xc3
.globl _vpaes_set_encrypt_key
.p2align 4
_vpaes_set_encrypt_key:
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
movl %eax,240(%rdx)
movl $0,%ecx
movl $48,%r8d
call _vpaes_schedule_core
xorl %eax,%eax
.byte 0xf3,0xc3
.globl _vpaes_set_decrypt_key
.p2align 4
_vpaes_set_decrypt_key:
movl %esi,%eax
shrl $5,%eax
addl $5,%eax
movl %eax,240(%rdx)
shll $4,%eax
leaq 16(%rdx,%rax,1),%rdx
movl $1,%ecx
movl %esi,%r8d
shrl $1,%r8d
andl $32,%r8d
xorl $32,%r8d
call _vpaes_schedule_core
xorl %eax,%eax
.byte 0xf3,0xc3
.globl _vpaes_encrypt
.p2align 4
_vpaes_encrypt:
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_encrypt_core
movdqu %xmm0,(%rsi)
.byte 0xf3,0xc3
.globl _vpaes_decrypt
.p2align 4
_vpaes_decrypt:
movdqu (%rdi),%xmm0
call _vpaes_preheat
call _vpaes_decrypt_core
movdqu %xmm0,(%rsi)
.byte 0xf3,0xc3
.globl _vpaes_cbc_encrypt
.p2align 4
_vpaes_cbc_encrypt:
xchgq %rcx,%rdx
subq $16,%rcx
jc L$cbc_abort
movdqu (%r8),%xmm6
subq %rdi,%rsi
call _vpaes_preheat
cmpl $0,%r9d
je L$cbc_dec_loop
jmp L$cbc_enc_loop
.p2align 4
L$cbc_enc_loop:
movdqu (%rdi),%xmm0
pxor %xmm6,%xmm0
call _vpaes_encrypt_core
movdqa %xmm0,%xmm6
movdqu %xmm0,(%rsi,%rdi,1)
leaq 16(%rdi),%rdi
subq $16,%rcx
jnc L$cbc_enc_loop
jmp L$cbc_done
.p2align 4
L$cbc_dec_loop:
movdqu (%rdi),%xmm0
movdqa %xmm0,%xmm7
call _vpaes_decrypt_core
pxor %xmm6,%xmm0
movdqa %xmm7,%xmm6
movdqu %xmm0,(%rsi,%rdi,1)
leaq 16(%rdi),%rdi
subq $16,%rcx
jnc L$cbc_dec_loop
L$cbc_done:
movdqu %xmm6,(%r8)
L$cbc_abort:
.byte 0xf3,0xc3
.p2align 4
_vpaes_preheat:
leaq L$k_s0F(%rip),%r10
movdqa -32(%r10),%xmm10
movdqa -16(%r10),%xmm11
movdqa 0(%r10),%xmm9
movdqa 48(%r10),%xmm13
movdqa 64(%r10),%xmm12
movdqa 80(%r10),%xmm15
movdqa 96(%r10),%xmm14
.byte 0xf3,0xc3
.p2align 6
_vpaes_consts:
L$k_inv:
.quad 0x0E05060F0D080180, 0x040703090A0B0C02
.quad 0x01040A060F0B0780, 0x030D0E0C02050809
L$k_s0F:
.quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
L$k_ipt:
.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
L$k_sb1:
.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
L$k_sb2:
.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
L$k_sbo:
.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
L$k_mc_forward:
.quad 0x0407060500030201, 0x0C0F0E0D080B0A09
.quad 0x080B0A0904070605, 0x000302010C0F0E0D
.quad 0x0C0F0E0D080B0A09, 0x0407060500030201
.quad 0x000302010C0F0E0D, 0x080B0A0904070605
L$k_mc_backward:
.quad 0x0605040702010003, 0x0E0D0C0F0A09080B
.quad 0x020100030E0D0C0F, 0x0A09080B06050407
.quad 0x0E0D0C0F0A09080B, 0x0605040702010003
.quad 0x0A09080B06050407, 0x020100030E0D0C0F
L$k_sr:
.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
.quad 0x030E09040F0A0500, 0x0B06010C07020D08
.quad 0x0F060D040B020900, 0x070E050C030A0108
.quad 0x0B0E0104070A0D00, 0x0306090C0F020508
L$k_rcon:
.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
L$k_s63:
.quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
L$k_opt:
.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
L$k_deskew:
.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
L$k_dksd:
.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
L$k_dksb:
.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
L$k_dkse:
.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
L$k_dks9:
.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
L$k_dipt:
.quad 0x0F505B040B545F00, 0x154A411E114E451A
.quad 0x86E383E660056500, 0x12771772F491F194
L$k_dsb9:
.quad 0x851C03539A86D600, 0xCAD51F504F994CC9
.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
L$k_dsbd:
.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
L$k_dsbb:
.quad 0xD022649296B44200, 0x602646F6B0F2D404
.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
L$k_dsbe:
.quad 0x46F2929626D4D000, 0x2242600464B4F6B0
.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
L$k_dsbo:
.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
.p2align 6

1027
deps/openssl/asm/x64-macosx-gas/modes/ghash-x86_64.s

File diff suppressed because it is too large

2811
deps/openssl/asm/x64-win32-masm/aes/bsaes-x86_64.asm

File diff suppressed because it is too large

1161
deps/openssl/asm/x64-win32-masm/aes/vpaes-x86_64.asm

File diff suppressed because it is too large

0
deps/openssl/asm/x64-win32-masm/aes/vpaesni-x86_64.asm

1202
deps/openssl/asm/x64-win32-masm/modes/ghash-x86_64.asm

File diff suppressed because it is too large

661
deps/openssl/asm/x86-elf-gas/aes/vpaes-x86.s

@ -0,0 +1,661 @@
.file "vpaes-x86.s"
.text
.align 64
.L_vpaes_consts:
.long 218628480,235210255,168496130,67568393
.long 252381056,17041926,33884169,51187212
.long 252645135,252645135,252645135,252645135
.long 1512730624,3266504856,1377990664,3401244816
.long 830229760,1275146365,2969422977,3447763452
.long 3411033600,2979783055,338359620,2782886510
.long 4209124096,907596821,221174255,1006095553
.long 191964160,3799684038,3164090317,1589111125
.long 182528256,1777043520,2877432650,3265356744
.long 1874708224,3503451415,3305285752,363511674
.long 1606117888,3487855781,1093350906,2384367825
.long 197121,67569157,134941193,202313229
.long 67569157,134941193,202313229,197121
.long 134941193,202313229,197121,67569157
.long 202313229,197121,67569157,134941193
.long 33619971,100992007,168364043,235736079
.long 235736079,33619971,100992007,168364043
.long 168364043,235736079,33619971,100992007
.long 100992007,168364043,235736079,33619971
.long 50462976,117835012,185207048,252579084
.long 252314880,51251460,117574920,184942860
.long 184682752,252054788,50987272,118359308
.long 118099200,185467140,251790600,50727180
.long 2946363062,528716217,1300004225,1881839624
.long 1532713819,1532713819,1532713819,1532713819
.long 3602276352,4288629033,3737020424,4153884961
.long 1354558464,32357713,2958822624,3775749553
.long 1201988352,132424512,1572796698,503232858
.long 2213177600,1597421020,4103937655,675398315
.long 2749646592,4273543773,1511898873,121693092
.long 3040248576,1103263732,2871565598,1608280554
.long 2236667136,2588920351,482954393,64377734
.long 3069987328,291237287,2117370568,3650299247
.long 533321216,3573750986,2572112006,1401264716
.long 1339849704,2721158661,548607111,3445553514
.long 2128193280,3054596040,2183486460,1257083700
.long 655635200,1165381986,3923443150,2344132524
.long 190078720,256924420,290342170,357187870
.long 1610966272,2263057382,4103205268,309794674
.long 2592527872,2233205587,1335446729,3402964816
.long 3973531904,3225098121,3002836325,1918774430
.long 3870401024,2102906079,2284471353,4117666579
.long 617007872,1021508343,366931923,691083277
.long 2528395776,3491914898,2968704004,1613121270
.long 3445188352,3247741094,844474987,4093578302
.long 651481088,1190302358,1689581232,574775300
.long 4289380608,206939853,2555985458,2489840491
.long 2130264064,327674451,3566485037,3349835193
.long 2470714624,316102159,3636825756,3393945945
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
.byte 118,101,114,115,105,116,121,41,0
.align 64
.type _vpaes_preheat,@function
.align 16
_vpaes_preheat:
addl (%esp),%ebp
movdqa -48(%ebp),%xmm7
movdqa -16(%ebp),%xmm6
ret
.size _vpaes_preheat,.-_vpaes_preheat
.type _vpaes_encrypt_core,@function
.align 16
_vpaes_encrypt_core:
movl $16,%ecx
movl 240(%edx),%eax
movdqa %xmm6,%xmm1
movdqa (%ebp),%xmm2
pandn %xmm0,%xmm1
movdqu (%edx),%xmm5
psrld $4,%xmm1
pand %xmm6,%xmm0
.byte 102,15,56,0,208
movdqa 16(%ebp),%xmm0
.byte 102,15,56,0,193
pxor %xmm5,%xmm2
pxor %xmm2,%xmm0
addl $16,%edx
leal 192(%ebp),%ebx
jmp .L000enc_entry
.align 16
.L001enc_loop:
movdqa 32(%ebp),%xmm4
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
movdqa 48(%ebp),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
movdqa 64(%ebp),%xmm5
.byte 102,15,56,0,234
movdqa -64(%ebx,%ecx,1),%xmm1
movdqa 80(%ebp),%xmm2
.byte 102,15,56,0,211
pxor %xmm5,%xmm2
movdqa (%ebx,%ecx,1),%xmm4
movdqa %xmm0,%xmm3
.byte 102,15,56,0,193
addl $16,%edx
pxor %xmm2,%xmm0
.byte 102,15,56,0,220
addl $16,%ecx
pxor %xmm0,%xmm3
.byte 102,15,56,0,193
andl $48,%ecx
pxor %xmm3,%xmm0
subl $1,%eax
.L000enc_entry:
movdqa %xmm6,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm6,%xmm0
movdqa -32(%ebp),%xmm5
.byte 102,15,56,0,232
pxor %xmm1,%xmm0
movdqa %xmm7,%xmm3
.byte 102,15,56,0,217
pxor %xmm5,%xmm3
movdqa %xmm7,%xmm4
.byte 102,15,56,0,224
pxor %xmm5,%xmm4
movdqa %xmm7,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm7,%xmm3
movdqu (%edx),%xmm5
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
jnz .L001enc_loop
movdqa 96(%ebp),%xmm4
movdqa 112(%ebp),%xmm0
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
.byte 102,15,56,0,195
movdqa 64(%ebx,%ecx,1),%xmm1
pxor %xmm4,%xmm0
.byte 102,15,56,0,193
ret
.size _vpaes_encrypt_core,.-_vpaes_encrypt_core
.type _vpaes_decrypt_core,@function
.align 16
_vpaes_decrypt_core:
movl 240(%edx),%eax
leal 608(%ebp),%ebx
movdqa %xmm6,%xmm1
movdqa -64(%ebx),%xmm2
pandn %xmm0,%xmm1
movl %eax,%ecx
psrld $4,%xmm1
movdqu (%edx),%xmm5
shll $4,%ecx
pand %xmm6,%xmm0
.byte 102,15,56,0,208
movdqa -48(%ebx),%xmm0
xorl $48,%ecx
.byte 102,15,56,0,193
andl $48,%ecx
pxor %xmm5,%xmm2
movdqa 176(%ebp),%xmm5
pxor %xmm2,%xmm0
addl $16,%edx
leal -352(%ebx,%ecx,1),%ecx
jmp .L002dec_entry
.align 16
.L003dec_loop:
movdqa -32(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa -16(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
addl $16,%edx
.byte 102,15,56,0,197
movdqa (%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 16(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
subl $1,%eax
.byte 102,15,56,0,197
movdqa 32(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 48(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,197
movdqa 64(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 80(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,58,15,237,12
.L002dec_entry:
movdqa %xmm6,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm6,%xmm0
movdqa -32(%ebp),%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm7,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm7,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm7,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm7,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqu (%edx),%xmm0
jnz .L003dec_loop
movdqa 96(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 112(%ebx),%xmm0
movdqa (%ecx),%xmm2
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,194
ret
.size _vpaes_decrypt_core,.-_vpaes_decrypt_core
.type _vpaes_schedule_core,@function
.align 16
_vpaes_schedule_core:
addl (%esp),%ebp
movdqu (%esi),%xmm0
movdqa 320(%ebp),%xmm2
movdqa %xmm0,%xmm3
leal (%ebp),%ebx
movdqa %xmm2,4(%esp)
call _vpaes_schedule_transform
movdqa %xmm0,%xmm7
testl %edi,%edi
jnz .L004schedule_am_decrypting
movdqu %xmm0,(%edx)
jmp .L005schedule_go
.L004schedule_am_decrypting:
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,217
movdqu %xmm3,(%edx)
xorl $48,%ecx
.L005schedule_go:
cmpl $192,%eax
ja .L006schedule_256
je .L007schedule_192
.L008schedule_128:
movl $10,%eax
.L009loop_schedule_128:
call _vpaes_schedule_round
decl %eax
jz .L010schedule_mangle_last
call _vpaes_schedule_mangle
jmp .L009loop_schedule_128
.align 16
.L007schedule_192:
movdqu 8(%esi),%xmm0
call _vpaes_schedule_transform
movdqa %xmm0,%xmm6
pxor %xmm4,%xmm4
movhlps %xmm4,%xmm6
movl $4,%eax
.L011loop_schedule_192:
call _vpaes_schedule_round
.byte 102,15,58,15,198,8
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
call _vpaes_schedule_mangle
call _vpaes_schedule_round
decl %eax
jz .L010schedule_mangle_last
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
jmp .L011loop_schedule_192
.align 16
.L006schedule_256:
movdqu 16(%esi),%xmm0
call _vpaes_schedule_transform
movl $7,%eax
.L012loop_schedule_256:
call _vpaes_schedule_mangle
movdqa %xmm0,%xmm6
call _vpaes_schedule_round
decl %eax
jz .L010schedule_mangle_last
call _vpaes_schedule_mangle
pshufd $255,%xmm0,%xmm0
movdqa %xmm7,20(%esp)
movdqa %xmm6,%xmm7
call .L_vpaes_schedule_low_round
movdqa 20(%esp),%xmm7
jmp .L012loop_schedule_256
.align 16
.L010schedule_mangle_last:
leal 384(%ebp),%ebx
testl %edi,%edi
jnz .L013schedule_mangle_last_dec
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,193
leal 352(%ebp),%ebx
addl $32,%edx
.L013schedule_mangle_last_dec:
addl $-16,%edx
pxor 336(%ebp),%xmm0
call _vpaes_schedule_transform
movdqu %xmm0,(%edx)
pxor %xmm0,%xmm0
pxor %xmm1,%xmm1
pxor %xmm2,%xmm2
pxor %xmm3,%xmm3
pxor %xmm4,%xmm4
pxor %xmm5,%xmm5
pxor %xmm6,%xmm6
pxor %xmm7,%xmm7
ret
.size _vpaes_schedule_core,.-_vpaes_schedule_core
.type _vpaes_schedule_192_smear,@function
.align 16
_vpaes_schedule_192_smear:
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
pxor %xmm0,%xmm6
movdqa %xmm6,%xmm0
pxor %xmm1,%xmm1
movhlps %xmm1,%xmm6
ret
.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
.type _vpaes_schedule_round,@function
.align 16
_vpaes_schedule_round:
movdqa 8(%esp),%xmm2
pxor %xmm1,%xmm1
.byte 102,15,58,15,202,15
.byte 102,15,58,15,210,15
pxor %xmm1,%xmm7
pshufd $255,%xmm0,%xmm0
.byte 102,15,58,15,192,1
movdqa %xmm2,8(%esp)
.L_vpaes_schedule_low_round:
movdqa %xmm7,%xmm1
pslldq $4,%xmm7
pxor %xmm1,%xmm7
movdqa %xmm7,%xmm1
pslldq $8,%xmm7
pxor %xmm1,%xmm7
pxor 336(%ebp),%xmm7
movdqa -16(%ebp),%xmm4
movdqa -48(%ebp),%xmm5
movdqa %xmm4,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm4,%xmm0
movdqa -32(%ebp),%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm5,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm5,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm5,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm5,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqa 32(%ebp),%xmm4
.byte 102,15,56,0,226
movdqa 48(%ebp),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
pxor %xmm7,%xmm0
movdqa %xmm0,%xmm7
ret
.size _vpaes_schedule_round,.-_vpaes_schedule_round
.type _vpaes_schedule_transform,@function
.align 16
_vpaes_schedule_transform:
movdqa -16(%ebp),%xmm2
movdqa %xmm2,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm2,%xmm0
movdqa (%ebx),%xmm2
.byte 102,15,56,0,208
movdqa 16(%ebx),%xmm0
.byte 102,15,56,0,193
pxor %xmm2,%xmm0
ret
.size _vpaes_schedule_transform,.-_vpaes_schedule_transform
.type _vpaes_schedule_mangle,@function
.align 16
_vpaes_schedule_mangle:
movdqa %xmm0,%xmm4
movdqa 128(%ebp),%xmm5
testl %edi,%edi
jnz .L014schedule_mangle_dec
addl $16,%edx
pxor 336(%ebp),%xmm4
.byte 102,15,56,0,229
movdqa %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
jmp .L015schedule_mangle_both
.align 16
.L014schedule_mangle_dec:
movdqa -16(%ebp),%xmm2
leal 416(%ebp),%esi
movdqa %xmm2,%xmm1
pandn %xmm4,%xmm1
psrld $4,%xmm1
pand %xmm2,%xmm4
movdqa (%esi),%xmm2
.byte 102,15,56,0,212
movdqa 16(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 32(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 48(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 64(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 80(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 96(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 112(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
addl $-16,%edx
.L015schedule_mangle_both:
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,217
addl $-16,%ecx
andl $48,%ecx
movdqu %xmm3,(%edx)
ret
.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
.globl vpaes_set_encrypt_key
.type vpaes_set_encrypt_key,@function
.align 16
vpaes_set_encrypt_key:
.L_vpaes_set_encrypt_key_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%eax
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movl %eax,%ebx
shrl $5,%ebx
addl $5,%ebx
movl %ebx,240(%edx)
movl $48,%ecx
movl $0,%edi
leal .L_vpaes_consts+0x30-.L016pic_point,%ebp
call _vpaes_schedule_core
.L016pic_point:
movl 48(%esp),%esp
xorl %eax,%eax
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
.globl vpaes_set_decrypt_key
.type vpaes_set_decrypt_key,@function
.align 16
vpaes_set_decrypt_key:
.L_vpaes_set_decrypt_key_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%eax
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movl %eax,%ebx
shrl $5,%ebx
addl $5,%ebx
movl %ebx,240(%edx)
shll $4,%ebx
leal 16(%edx,%ebx,1),%edx
movl $1,%edi
movl %eax,%ecx
shrl $1,%ecx
andl $32,%ecx
xorl $32,%ecx
leal .L_vpaes_consts+0x30-.L017pic_point,%ebp
call _vpaes_schedule_core
.L017pic_point:
movl 48(%esp),%esp
xorl %eax,%eax
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
.globl vpaes_encrypt
.type vpaes_encrypt,@function
.align 16
vpaes_encrypt:
.L_vpaes_encrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
leal .L_vpaes_consts+0x30-.L018pic_point,%ebp
call _vpaes_preheat
.L018pic_point:
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%edi
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movdqu (%esi),%xmm0
call _vpaes_encrypt_core
movdqu %xmm0,(%edi)
movl 48(%esp),%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size vpaes_encrypt,.-.L_vpaes_encrypt_begin
.globl vpaes_decrypt
.type vpaes_decrypt,@function
.align 16
vpaes_decrypt:
.L_vpaes_decrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
leal .L_vpaes_consts+0x30-.L019pic_point,%ebp
call _vpaes_preheat
.L019pic_point:
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%edi
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movdqu (%esi),%xmm0
call _vpaes_decrypt_core
movdqu %xmm0,(%edi)
movl 48(%esp),%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size vpaes_decrypt,.-.L_vpaes_decrypt_begin
.globl vpaes_cbc_encrypt
.type vpaes_cbc_encrypt,@function
.align 16
vpaes_cbc_encrypt:
.L_vpaes_cbc_encrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
movl 24(%esp),%edi
movl 28(%esp),%eax
movl 32(%esp),%edx
subl $16,%eax
jc .L020cbc_abort
leal -56(%esp),%ebx
movl 36(%esp),%ebp
andl $-16,%ebx
movl 40(%esp),%ecx
xchgl %esp,%ebx
movdqu (%ebp),%xmm1
subl %esi,%edi
movl %ebx,48(%esp)
movl %edi,(%esp)
movl %edx,4(%esp)
movl %ebp,8(%esp)
movl %eax,%edi
leal .L_vpaes_consts+0x30-.L021pic_point,%ebp
call _vpaes_preheat
.L021pic_point:
cmpl $0,%ecx
je .L022cbc_dec_loop
jmp .L023cbc_enc_loop
.align 16
.L023cbc_enc_loop:
movdqu (%esi),%xmm0
pxor %xmm1,%xmm0
call _vpaes_encrypt_core
movl (%esp),%ebx
movl 4(%esp),%edx
movdqa %xmm0,%xmm1
movdqu %xmm0,(%ebx,%esi,1)
leal 16(%esi),%esi
subl $16,%edi
jnc .L023cbc_enc_loop
jmp .L024cbc_done
.align 16
.L022cbc_dec_loop:
movdqu (%esi),%xmm0
movdqa %xmm1,16(%esp)
movdqa %xmm0,32(%esp)
call _vpaes_decrypt_core
movl (%esp),%ebx
movl 4(%esp),%edx
pxor 16(%esp),%xmm0
movdqa 32(%esp),%xmm1
movdqu %xmm0,(%ebx,%esi,1)
leal 16(%esi),%esi
subl $16,%edi
jnc .L022cbc_dec_loop
.L024cbc_done:
movl 8(%esp),%ebx
movl 48(%esp),%esp
movdqu %xmm1,(%ebx)
.L020cbc_abort:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin

728
deps/openssl/asm/x86-elf-gas/modes/ghash-x86.s

@ -0,0 +1,728 @@
.file "ghash-x86.s"
.text
.globl gcm_gmult_4bit_x86
.type gcm_gmult_4bit_x86,@function
.align 16
gcm_gmult_4bit_x86:
.L_gcm_gmult_4bit_x86_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
subl $84,%esp
movl 104(%esp),%edi
movl 108(%esp),%esi
movl (%edi),%ebp
movl 4(%edi),%edx
movl 8(%edi),%ecx
movl 12(%edi),%ebx
movl $0,16(%esp)
movl $471859200,20(%esp)
movl $943718400,24(%esp)
movl $610271232,28(%esp)
movl $1887436800,32(%esp)
movl $1822425088,36(%esp)
movl $1220542464,40(%esp)
movl $1423966208,44(%esp)
movl $3774873600,48(%esp)
movl $4246732800,52(%esp)
movl $3644850176,56(%esp)
movl $3311403008,60(%esp)
movl $2441084928,64(%esp)
movl $2376073216,68(%esp)
movl $2847932416,72(%esp)
movl $3051356160,76(%esp)
movl %ebp,(%esp)
movl %edx,4(%esp)
movl %ecx,8(%esp)
movl %ebx,12(%esp)
shrl $20,%ebx
andl $240,%ebx
movl 4(%esi,%ebx,1),%ebp
movl (%esi,%ebx,1),%edx
movl 12(%esi,%ebx,1),%ecx
movl 8(%esi,%ebx,1),%ebx
xorl %eax,%eax
movl $15,%edi
jmp .L000x86_loop
.align 16
.L000x86_loop:
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
andb $240,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
decl %edi
js .L001x86_break
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
shlb $4,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
jmp .L000x86_loop
.align 16
.L001x86_break:
bswap %ebx
bswap %ecx
bswap %edx
bswap %ebp
movl 104(%esp),%edi
movl %ebx,12(%edi)
movl %ecx,8(%edi)
movl %edx,4(%edi)
movl %ebp,(%edi)
addl $84,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
.globl gcm_ghash_4bit_x86
.type gcm_ghash_4bit_x86,@function
.align 16
gcm_ghash_4bit_x86:
.L_gcm_ghash_4bit_x86_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
subl $84,%esp
movl 104(%esp),%ebx
movl 108(%esp),%esi
movl 112(%esp),%edi
movl 116(%esp),%ecx
addl %edi,%ecx
movl %ecx,116(%esp)
movl (%ebx),%ebp
movl 4(%ebx),%edx
movl 8(%ebx),%ecx
movl 12(%ebx),%ebx
movl $0,16(%esp)
movl $471859200,20(%esp)
movl $943718400,24(%esp)
movl $610271232,28(%esp)
movl $1887436800,32(%esp)
movl $1822425088,36(%esp)
movl $1220542464,40(%esp)
movl $1423966208,44(%esp)
movl $3774873600,48(%esp)
movl $4246732800,52(%esp)
movl $3644850176,56(%esp)
movl $3311403008,60(%esp)
movl $2441084928,64(%esp)
movl $2376073216,68(%esp)
movl $2847932416,72(%esp)
movl $3051356160,76(%esp)
.align 16
.L002x86_outer_loop:
xorl 12(%edi),%ebx
xorl 8(%edi),%ecx
xorl 4(%edi),%edx
xorl (%edi),%ebp
movl %ebx,12(%esp)
movl %ecx,8(%esp)
movl %edx,4(%esp)
movl %ebp,(%esp)
shrl $20,%ebx
andl $240,%ebx
movl 4(%esi,%ebx,1),%ebp
movl (%esi,%ebx,1),%edx
movl 12(%esi,%ebx,1),%ecx
movl 8(%esi,%ebx,1),%ebx
xorl %eax,%eax
movl $15,%edi
jmp .L003x86_loop
.align 16
.L003x86_loop:
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
andb $240,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
decl %edi
js .L004x86_break
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
shlb $4,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
jmp .L003x86_loop
.align 16
.L004x86_break:
bswap %ebx
bswap %ecx
bswap %edx
bswap %ebp
movl 112(%esp),%edi
leal 16(%edi),%edi
cmpl 116(%esp),%edi
movl %edi,112(%esp)
jb .L002x86_outer_loop
movl 104(%esp),%edi
movl %ebx,12(%edi)
movl %ecx,8(%edi)
movl %edx,4(%edi)
movl %ebp,(%edi)
addl $84,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
.type _mmx_gmult_4bit_inner,@function
.align 16
_mmx_gmult_4bit_inner:
xorl %ecx,%ecx
movl %ebx,%edx
movb %dl,%cl
shlb $4,%cl
andl $240,%edx
movq 8(%esi,%ecx,1),%mm0
movq (%esi,%ecx,1),%mm1
movd %mm0,%ebp
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 14(%edi),%cl
psllq $60,%mm2
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 13(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 12(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 11(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 10(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 9(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 8(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 7(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 6(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 5(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 4(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 3(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 2(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 1(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb (%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movd %mm0,%ebx
pxor %mm2,%mm0
movl 4(%eax,%ebp,8),%edi
psrlq $32,%mm0
movd %mm1,%edx
psrlq $32,%mm1
movd %mm0,%ecx
movd %mm1,%ebp
shll $4,%edi
bswap %ebx
bswap %edx
bswap %ecx
xorl %edi,%ebp
bswap %ebp
ret
.size _mmx_gmult_4bit_inner,.-_mmx_gmult_4bit_inner
.globl gcm_gmult_4bit_mmx
.type gcm_gmult_4bit_mmx,@function
.align 16
gcm_gmult_4bit_mmx:
.L_gcm_gmult_4bit_mmx_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%edi
movl 24(%esp),%esi
call .L005pic_point
.L005pic_point:
popl %eax
leal .Lrem_4bit-.L005pic_point(%eax),%eax
movzbl 15(%edi),%ebx
call _mmx_gmult_4bit_inner
movl 20(%esp),%edi
emms
movl %ebx,12(%edi)
movl %edx,4(%edi)
movl %ecx,8(%edi)
movl %ebp,(%edi)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
.globl gcm_ghash_4bit_mmx
.type gcm_ghash_4bit_mmx,@function
.align 16
gcm_ghash_4bit_mmx:
.L_gcm_ghash_4bit_mmx_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%ebp
movl 24(%esp),%esi
movl 28(%esp),%edi
movl 32(%esp),%ecx
call .L006pic_point
.L006pic_point:
popl %eax
leal .Lrem_4bit-.L006pic_point(%eax),%eax
addl %edi,%ecx
movl %ecx,32(%esp)
subl $20,%esp
movl 12(%ebp),%ebx
movl 4(%ebp),%edx
movl 8(%ebp),%ecx
movl (%ebp),%ebp
jmp .L007mmx_outer_loop
.align 16
.L007mmx_outer_loop:
xorl 12(%edi),%ebx
xorl 4(%edi),%edx
xorl 8(%edi),%ecx
xorl (%edi),%ebp
movl %edi,48(%esp)
movl %ebx,12(%esp)
movl %edx,4(%esp)
movl %ecx,8(%esp)
movl %ebp,(%esp)
movl %esp,%edi
shrl $24,%ebx
call _mmx_gmult_4bit_inner
movl 48(%esp),%edi
leal 16(%edi),%edi
cmpl 52(%esp),%edi
jb .L007mmx_outer_loop
movl 40(%esp),%edi
emms
movl %ebx,12(%edi)
movl %edx,4(%edi)
movl %ecx,8(%edi)
movl %ebp,(%edi)
addl $20,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
.align 64
.Lrem_4bit:
.long 0,0,0,29491200,0,58982400,0,38141952
.long 0,117964800,0,113901568,0,76283904,0,88997888
.long 0,235929600,0,265420800,0,227803136,0,206962688
.long 0,152567808,0,148504576,0,177995776,0,190709760
.align 64
.L008rem_8bit:
.value 0,450,900,582,1800,1738,1164,1358
.value 3600,4050,3476,3158,2328,2266,2716,2910
.value 7200,7650,8100,7782,6952,6890,6316,6510
.value 4656,5106,4532,4214,5432,5370,5820,6014
.value 14400,14722,15300,14854,16200,16010,15564,15630
.value 13904,14226,13780,13334,12632,12442,13020,13086
.value 9312,9634,10212,9766,9064,8874,8428,8494
.value 10864,11186,10740,10294,11640,11450,12028,12094
.value 28800,28994,29444,29382,30600,30282,29708,30158
.value 32400,32594,32020,31958,31128,30810,31260,31710
.value 27808,28002,28452,28390,27560,27242,26668,27118
.value 25264,25458,24884,24822,26040,25722,26172,26622
.value 18624,18690,19268,19078,20424,19978,19532,19854
.value 18128,18194,17748,17558,16856,16410,16988,17310
.value 21728,21794,22372,22182,21480,21034,20588,20910
.value 23280,23346,22900,22710,24056,23610,24188,24510
.value 57600,57538,57988,58182,58888,59338,58764,58446
.value 61200,61138,60564,60758,59416,59866,60316,59998
.value 64800,64738,65188,65382,64040,64490,63916,63598
.value 62256,62194,61620,61814,62520,62970,63420,63102
.value 55616,55426,56004,56070,56904,57226,56780,56334
.value 55120,54930,54484,54550,53336,53658,54236,53790
.value 50528,50338,50916,50982,49768,50090,49644,49198
.value 52080,51890,51444,51510,52344,52666,53244,52798
.value 37248,36930,37380,37830,38536,38730,38156,38094
.value 40848,40530,39956,40406,39064,39258,39708,39646
.value 36256,35938,36388,36838,35496,35690,35116,35054
.value 33712,33394,32820,33270,33976,34170,34620,34558
.value 43456,43010,43588,43910,44744,44810,44364,44174
.value 42960,42514,42068,42390,41176,41242,41820,41630
.value 46560,46114,46692,47014,45800,45866,45420,45230
.value 48112,47666,47220,47542,48376,48442,49020,48830
.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
.byte 0

635
deps/openssl/asm/x86-macosx-gas/aes/vpaes-x86.s

@ -0,0 +1,635 @@
.file "vpaes-x86.s"
.text
.align 6,0x90
L_vpaes_consts:
.long 218628480,235210255,168496130,67568393
.long 252381056,17041926,33884169,51187212
.long 252645135,252645135,252645135,252645135
.long 1512730624,3266504856,1377990664,3401244816
.long 830229760,1275146365,2969422977,3447763452
.long 3411033600,2979783055,338359620,2782886510
.long 4209124096,907596821,221174255,1006095553
.long 191964160,3799684038,3164090317,1589111125
.long 182528256,1777043520,2877432650,3265356744
.long 1874708224,3503451415,3305285752,363511674
.long 1606117888,3487855781,1093350906,2384367825
.long 197121,67569157,134941193,202313229
.long 67569157,134941193,202313229,197121
.long 134941193,202313229,197121,67569157
.long 202313229,197121,67569157,134941193
.long 33619971,100992007,168364043,235736079
.long 235736079,33619971,100992007,168364043
.long 168364043,235736079,33619971,100992007
.long 100992007,168364043,235736079,33619971
.long 50462976,117835012,185207048,252579084
.long 252314880,51251460,117574920,184942860
.long 184682752,252054788,50987272,118359308
.long 118099200,185467140,251790600,50727180
.long 2946363062,528716217,1300004225,1881839624
.long 1532713819,1532713819,1532713819,1532713819
.long 3602276352,4288629033,3737020424,4153884961
.long 1354558464,32357713,2958822624,3775749553
.long 1201988352,132424512,1572796698,503232858
.long 2213177600,1597421020,4103937655,675398315
.long 2749646592,4273543773,1511898873,121693092
.long 3040248576,1103263732,2871565598,1608280554
.long 2236667136,2588920351,482954393,64377734
.long 3069987328,291237287,2117370568,3650299247
.long 533321216,3573750986,2572112006,1401264716
.long 1339849704,2721158661,548607111,3445553514
.long 2128193280,3054596040,2183486460,1257083700
.long 655635200,1165381986,3923443150,2344132524
.long 190078720,256924420,290342170,357187870
.long 1610966272,2263057382,4103205268,309794674
.long 2592527872,2233205587,1335446729,3402964816
.long 3973531904,3225098121,3002836325,1918774430
.long 3870401024,2102906079,2284471353,4117666579
.long 617007872,1021508343,366931923,691083277
.long 2528395776,3491914898,2968704004,1613121270
.long 3445188352,3247741094,844474987,4093578302
.long 651481088,1190302358,1689581232,574775300
.long 4289380608,206939853,2555985458,2489840491
.long 2130264064,327674451,3566485037,3349835193
.long 2470714624,316102159,3636825756,3393945945
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
.byte 118,101,114,115,105,116,121,41,0
.align 6,0x90
.align 4
__vpaes_preheat:
addl (%esp),%ebp
movdqa -48(%ebp),%xmm7
movdqa -16(%ebp),%xmm6
ret
.align 4
__vpaes_encrypt_core:
movl $16,%ecx
movl 240(%edx),%eax
movdqa %xmm6,%xmm1
movdqa (%ebp),%xmm2
pandn %xmm0,%xmm1
movdqu (%edx),%xmm5
psrld $4,%xmm1
pand %xmm6,%xmm0
.byte 102,15,56,0,208
movdqa 16(%ebp),%xmm0
.byte 102,15,56,0,193
pxor %xmm5,%xmm2
pxor %xmm2,%xmm0
addl $16,%edx
leal 192(%ebp),%ebx
jmp L000enc_entry
.align 4,0x90
L001enc_loop:
movdqa 32(%ebp),%xmm4
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
movdqa 48(%ebp),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
movdqa 64(%ebp),%xmm5
.byte 102,15,56,0,234
movdqa -64(%ebx,%ecx,1),%xmm1
movdqa 80(%ebp),%xmm2
.byte 102,15,56,0,211
pxor %xmm5,%xmm2
movdqa (%ebx,%ecx,1),%xmm4
movdqa %xmm0,%xmm3
.byte 102,15,56,0,193
addl $16,%edx
pxor %xmm2,%xmm0
.byte 102,15,56,0,220
addl $16,%ecx
pxor %xmm0,%xmm3
.byte 102,15,56,0,193
andl $48,%ecx
pxor %xmm3,%xmm0
subl $1,%eax
L000enc_entry:
movdqa %xmm6,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm6,%xmm0
movdqa -32(%ebp),%xmm5
.byte 102,15,56,0,232
pxor %xmm1,%xmm0
movdqa %xmm7,%xmm3
.byte 102,15,56,0,217
pxor %xmm5,%xmm3
movdqa %xmm7,%xmm4
.byte 102,15,56,0,224
pxor %xmm5,%xmm4
movdqa %xmm7,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm7,%xmm3
movdqu (%edx),%xmm5
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
jnz L001enc_loop
movdqa 96(%ebp),%xmm4
movdqa 112(%ebp),%xmm0
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
.byte 102,15,56,0,195
movdqa 64(%ebx,%ecx,1),%xmm1
pxor %xmm4,%xmm0
.byte 102,15,56,0,193
ret
.align 4
__vpaes_decrypt_core:
movl 240(%edx),%eax
leal 608(%ebp),%ebx
movdqa %xmm6,%xmm1
movdqa -64(%ebx),%xmm2
pandn %xmm0,%xmm1
movl %eax,%ecx
psrld $4,%xmm1
movdqu (%edx),%xmm5
shll $4,%ecx
pand %xmm6,%xmm0
.byte 102,15,56,0,208
movdqa -48(%ebx),%xmm0
xorl $48,%ecx
.byte 102,15,56,0,193
andl $48,%ecx
pxor %xmm5,%xmm2
movdqa 176(%ebp),%xmm5
pxor %xmm2,%xmm0
addl $16,%edx
leal -352(%ebx,%ecx,1),%ecx
jmp L002dec_entry
.align 4,0x90
L003dec_loop:
movdqa -32(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa -16(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
addl $16,%edx
.byte 102,15,56,0,197
movdqa (%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 16(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
subl $1,%eax
.byte 102,15,56,0,197
movdqa 32(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 48(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,197
movdqa 64(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 80(%ebx),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,58,15,237,12
L002dec_entry:
movdqa %xmm6,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm6,%xmm0
movdqa -32(%ebp),%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm7,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm7,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm7,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm7,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqu (%edx),%xmm0
jnz L003dec_loop
movdqa 96(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 112(%ebx),%xmm0
movdqa (%ecx),%xmm2
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,194
ret
.align 4
__vpaes_schedule_core:
addl (%esp),%ebp
movdqu (%esi),%xmm0
movdqa 320(%ebp),%xmm2
movdqa %xmm0,%xmm3
leal (%ebp),%ebx
movdqa %xmm2,4(%esp)
call __vpaes_schedule_transform
movdqa %xmm0,%xmm7
testl %edi,%edi
jnz L004schedule_am_decrypting
movdqu %xmm0,(%edx)
jmp L005schedule_go
L004schedule_am_decrypting:
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,217
movdqu %xmm3,(%edx)
xorl $48,%ecx
L005schedule_go:
cmpl $192,%eax
ja L006schedule_256
je L007schedule_192
L008schedule_128:
movl $10,%eax
L009loop_schedule_128:
call __vpaes_schedule_round
decl %eax
jz L010schedule_mangle_last
call __vpaes_schedule_mangle
jmp L009loop_schedule_128
.align 4,0x90
L007schedule_192:
movdqu 8(%esi),%xmm0
call __vpaes_schedule_transform
movdqa %xmm0,%xmm6
pxor %xmm4,%xmm4
movhlps %xmm4,%xmm6
movl $4,%eax
L011loop_schedule_192:
call __vpaes_schedule_round
.byte 102,15,58,15,198,8
call __vpaes_schedule_mangle
call __vpaes_schedule_192_smear
call __vpaes_schedule_mangle
call __vpaes_schedule_round
decl %eax
jz L010schedule_mangle_last
call __vpaes_schedule_mangle
call __vpaes_schedule_192_smear
jmp L011loop_schedule_192
.align 4,0x90
L006schedule_256:
movdqu 16(%esi),%xmm0
call __vpaes_schedule_transform
movl $7,%eax
L012loop_schedule_256:
call __vpaes_schedule_mangle
movdqa %xmm0,%xmm6
call __vpaes_schedule_round
decl %eax
jz L010schedule_mangle_last
call __vpaes_schedule_mangle
pshufd $255,%xmm0,%xmm0
movdqa %xmm7,20(%esp)
movdqa %xmm6,%xmm7
call L_vpaes_schedule_low_round
movdqa 20(%esp),%xmm7
jmp L012loop_schedule_256
.align 4,0x90
L010schedule_mangle_last:
leal 384(%ebp),%ebx
testl %edi,%edi
jnz L013schedule_mangle_last_dec
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,193
leal 352(%ebp),%ebx
addl $32,%edx
L013schedule_mangle_last_dec:
addl $-16,%edx
pxor 336(%ebp),%xmm0
call __vpaes_schedule_transform
movdqu %xmm0,(%edx)
pxor %xmm0,%xmm0
pxor %xmm1,%xmm1
pxor %xmm2,%xmm2
pxor %xmm3,%xmm3
pxor %xmm4,%xmm4
pxor %xmm5,%xmm5
pxor %xmm6,%xmm6
pxor %xmm7,%xmm7
ret
.align 4
__vpaes_schedule_192_smear:
pshufd $128,%xmm6,%xmm0
pxor %xmm0,%xmm6
pshufd $254,%xmm7,%xmm0
pxor %xmm0,%xmm6
movdqa %xmm6,%xmm0
pxor %xmm1,%xmm1
movhlps %xmm1,%xmm6
ret
.align 4
__vpaes_schedule_round:
movdqa 8(%esp),%xmm2
pxor %xmm1,%xmm1
.byte 102,15,58,15,202,15
.byte 102,15,58,15,210,15
pxor %xmm1,%xmm7
pshufd $255,%xmm0,%xmm0
.byte 102,15,58,15,192,1
movdqa %xmm2,8(%esp)
L_vpaes_schedule_low_round:
movdqa %xmm7,%xmm1
pslldq $4,%xmm7
pxor %xmm1,%xmm7
movdqa %xmm7,%xmm1
pslldq $8,%xmm7
pxor %xmm1,%xmm7
pxor 336(%ebp),%xmm7
movdqa -16(%ebp),%xmm4
movdqa -48(%ebp),%xmm5
movdqa %xmm4,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm4,%xmm0
movdqa -32(%ebp),%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm5,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm5,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm5,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm5,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqa 32(%ebp),%xmm4
.byte 102,15,56,0,226
movdqa 48(%ebp),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
pxor %xmm7,%xmm0
movdqa %xmm0,%xmm7
ret
.align 4
__vpaes_schedule_transform:
movdqa -16(%ebp),%xmm2
movdqa %xmm2,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm2,%xmm0
movdqa (%ebx),%xmm2
.byte 102,15,56,0,208
movdqa 16(%ebx),%xmm0
.byte 102,15,56,0,193
pxor %xmm2,%xmm0
ret
.align 4
__vpaes_schedule_mangle:
movdqa %xmm0,%xmm4
movdqa 128(%ebp),%xmm5
testl %edi,%edi
jnz L014schedule_mangle_dec
addl $16,%edx
pxor 336(%ebp),%xmm4
.byte 102,15,56,0,229
movdqa %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
jmp L015schedule_mangle_both
.align 4,0x90
L014schedule_mangle_dec:
movdqa -16(%ebp),%xmm2
leal 416(%ebp),%esi
movdqa %xmm2,%xmm1
pandn %xmm4,%xmm1
psrld $4,%xmm1
pand %xmm2,%xmm4
movdqa (%esi),%xmm2
.byte 102,15,56,0,212
movdqa 16(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 32(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 48(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 64(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 80(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 96(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 112(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
addl $-16,%edx
L015schedule_mangle_both:
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,217
addl $-16,%ecx
andl $48,%ecx
movdqu %xmm3,(%edx)
ret
.globl _vpaes_set_encrypt_key
.align 4
_vpaes_set_encrypt_key:
L_vpaes_set_encrypt_key_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%eax
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movl %eax,%ebx
shrl $5,%ebx
addl $5,%ebx
movl %ebx,240(%edx)
movl $48,%ecx
movl $0,%edi
leal L_vpaes_consts+0x30-L016pic_point,%ebp
call __vpaes_schedule_core
L016pic_point:
movl 48(%esp),%esp
xorl %eax,%eax
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_set_decrypt_key
.align 4
_vpaes_set_decrypt_key:
L_vpaes_set_decrypt_key_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%eax
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movl %eax,%ebx
shrl $5,%ebx
addl $5,%ebx
movl %ebx,240(%edx)
shll $4,%ebx
leal 16(%edx,%ebx,1),%edx
movl $1,%edi
movl %eax,%ecx
shrl $1,%ecx
andl $32,%ecx
xorl $32,%ecx
leal L_vpaes_consts+0x30-L017pic_point,%ebp
call __vpaes_schedule_core
L017pic_point:
movl 48(%esp),%esp
xorl %eax,%eax
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_encrypt
.align 4
_vpaes_encrypt:
L_vpaes_encrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
leal L_vpaes_consts+0x30-L018pic_point,%ebp
call __vpaes_preheat
L018pic_point:
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%edi
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movdqu (%esi),%xmm0
call __vpaes_encrypt_core
movdqu %xmm0,(%edi)
movl 48(%esp),%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_decrypt
.align 4
_vpaes_decrypt:
L_vpaes_decrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
leal L_vpaes_consts+0x30-L019pic_point,%ebp
call __vpaes_preheat
L019pic_point:
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%edi
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movdqu (%esi),%xmm0
call __vpaes_decrypt_core
movdqu %xmm0,(%edi)
movl 48(%esp),%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_cbc_encrypt
.align 4
_vpaes_cbc_encrypt:
L_vpaes_cbc_encrypt_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
movl 24(%esp),%edi
movl 28(%esp),%eax
movl 32(%esp),%edx
subl $16,%eax
jc L020cbc_abort
leal -56(%esp),%ebx
movl 36(%esp),%ebp
andl $-16,%ebx
movl 40(%esp),%ecx
xchgl %esp,%ebx
movdqu (%ebp),%xmm1
subl %esi,%edi
movl %ebx,48(%esp)
movl %edi,(%esp)
movl %edx,4(%esp)
movl %ebp,8(%esp)
movl %eax,%edi
leal L_vpaes_consts+0x30-L021pic_point,%ebp
call __vpaes_preheat
L021pic_point:
cmpl $0,%ecx
je L022cbc_dec_loop
jmp L023cbc_enc_loop
.align 4,0x90
L023cbc_enc_loop:
movdqu (%esi),%xmm0
pxor %xmm1,%xmm0
call __vpaes_encrypt_core
movl (%esp),%ebx
movl 4(%esp),%edx
movdqa %xmm0,%xmm1
movdqu %xmm0,(%ebx,%esi,1)
leal 16(%esi),%esi
subl $16,%edi
jnc L023cbc_enc_loop
jmp L024cbc_done
.align 4,0x90
L022cbc_dec_loop:
movdqu (%esi),%xmm0
movdqa %xmm1,16(%esp)
movdqa %xmm0,32(%esp)
call __vpaes_decrypt_core
movl (%esp),%ebx
movl 4(%esp),%edx
pxor 16(%esp),%xmm0
movdqa 32(%esp),%xmm1
movdqu %xmm0,(%ebx,%esi,1)
leal 16(%esi),%esi
subl $16,%edi
jnc L022cbc_dec_loop
L024cbc_done:
movl 8(%esp),%ebx
movl 48(%esp),%esp
movdqu %xmm1,(%ebx)
L020cbc_abort:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret

718
deps/openssl/asm/x86-macosx-gas/modes/ghash-x86.s

@ -0,0 +1,718 @@
.file "ghash-x86.s"
.text
.globl _gcm_gmult_4bit_x86
.align 4
_gcm_gmult_4bit_x86:
L_gcm_gmult_4bit_x86_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
subl $84,%esp
movl 104(%esp),%edi
movl 108(%esp),%esi
movl (%edi),%ebp
movl 4(%edi),%edx
movl 8(%edi),%ecx
movl 12(%edi),%ebx
movl $0,16(%esp)
movl $471859200,20(%esp)
movl $943718400,24(%esp)
movl $610271232,28(%esp)
movl $1887436800,32(%esp)
movl $1822425088,36(%esp)
movl $1220542464,40(%esp)
movl $1423966208,44(%esp)
movl $3774873600,48(%esp)
movl $4246732800,52(%esp)
movl $3644850176,56(%esp)
movl $3311403008,60(%esp)
movl $2441084928,64(%esp)
movl $2376073216,68(%esp)
movl $2847932416,72(%esp)
movl $3051356160,76(%esp)
movl %ebp,(%esp)
movl %edx,4(%esp)
movl %ecx,8(%esp)
movl %ebx,12(%esp)
shrl $20,%ebx
andl $240,%ebx
movl 4(%esi,%ebx,1),%ebp
movl (%esi,%ebx,1),%edx
movl 12(%esi,%ebx,1),%ecx
movl 8(%esi,%ebx,1),%ebx
xorl %eax,%eax
movl $15,%edi
jmp L000x86_loop
.align 4,0x90
L000x86_loop:
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
andb $240,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
decl %edi
js L001x86_break
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
shlb $4,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
jmp L000x86_loop
.align 4,0x90
L001x86_break:
bswap %ebx
bswap %ecx
bswap %edx
bswap %ebp
movl 104(%esp),%edi
movl %ebx,12(%edi)
movl %ecx,8(%edi)
movl %edx,4(%edi)
movl %ebp,(%edi)
addl $84,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _gcm_ghash_4bit_x86
.align 4
_gcm_ghash_4bit_x86:
L_gcm_ghash_4bit_x86_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
subl $84,%esp
movl 104(%esp),%ebx
movl 108(%esp),%esi
movl 112(%esp),%edi
movl 116(%esp),%ecx
addl %edi,%ecx
movl %ecx,116(%esp)
movl (%ebx),%ebp
movl 4(%ebx),%edx
movl 8(%ebx),%ecx
movl 12(%ebx),%ebx
movl $0,16(%esp)
movl $471859200,20(%esp)
movl $943718400,24(%esp)
movl $610271232,28(%esp)
movl $1887436800,32(%esp)
movl $1822425088,36(%esp)
movl $1220542464,40(%esp)
movl $1423966208,44(%esp)
movl $3774873600,48(%esp)
movl $4246732800,52(%esp)
movl $3644850176,56(%esp)
movl $3311403008,60(%esp)
movl $2441084928,64(%esp)
movl $2376073216,68(%esp)
movl $2847932416,72(%esp)
movl $3051356160,76(%esp)
.align 4,0x90
L002x86_outer_loop:
xorl 12(%edi),%ebx
xorl 8(%edi),%ecx
xorl 4(%edi),%edx
xorl (%edi),%ebp
movl %ebx,12(%esp)
movl %ecx,8(%esp)
movl %edx,4(%esp)
movl %ebp,(%esp)
shrl $20,%ebx
andl $240,%ebx
movl 4(%esi,%ebx,1),%ebp
movl (%esi,%ebx,1),%edx
movl 12(%esi,%ebx,1),%ecx
movl 8(%esi,%ebx,1),%ebx
xorl %eax,%eax
movl $15,%edi
jmp L003x86_loop
.align 4,0x90
L003x86_loop:
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
andb $240,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
decl %edi
js L004x86_break
movb %bl,%al
shrdl $4,%ecx,%ebx
andb $15,%al
shrdl $4,%edx,%ecx
shrdl $4,%ebp,%edx
shrl $4,%ebp
xorl 16(%esp,%eax,4),%ebp
movb (%esp,%edi,1),%al
shlb $4,%al
xorl 8(%esi,%eax,1),%ebx
xorl 12(%esi,%eax,1),%ecx
xorl (%esi,%eax,1),%edx
xorl 4(%esi,%eax,1),%ebp
jmp L003x86_loop
.align 4,0x90
L004x86_break:
bswap %ebx
bswap %ecx
bswap %edx
bswap %ebp
movl 112(%esp),%edi
leal 16(%edi),%edi
cmpl 116(%esp),%edi
movl %edi,112(%esp)
jb L002x86_outer_loop
movl 104(%esp),%edi
movl %ebx,12(%edi)
movl %ecx,8(%edi)
movl %edx,4(%edi)
movl %ebp,(%edi)
addl $84,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.align 4
__mmx_gmult_4bit_inner:
xorl %ecx,%ecx
movl %ebx,%edx
movb %dl,%cl
shlb $4,%cl
andl $240,%edx
movq 8(%esi,%ecx,1),%mm0
movq (%esi,%ecx,1),%mm1
movd %mm0,%ebp
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 14(%edi),%cl
psllq $60,%mm2
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 13(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 12(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 11(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 10(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 9(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 8(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 7(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 6(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 5(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 4(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 3(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 2(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb 1(%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
movb (%edi),%cl
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movl %ecx,%edx
movd %mm0,%ebx
pxor %mm2,%mm0
shlb $4,%cl
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%ecx,1),%mm0
psllq $60,%mm2
andl $240,%edx
pxor (%eax,%ebp,8),%mm1
andl $15,%ebx
pxor (%esi,%ecx,1),%mm1
movd %mm0,%ebp
pxor %mm2,%mm0
psrlq $4,%mm0
movq %mm1,%mm2
psrlq $4,%mm1
pxor 8(%esi,%edx,1),%mm0
psllq $60,%mm2
pxor (%eax,%ebx,8),%mm1
andl $15,%ebp
pxor (%esi,%edx,1),%mm1
movd %mm0,%ebx
pxor %mm2,%mm0
movl 4(%eax,%ebp,8),%edi
psrlq $32,%mm0
movd %mm1,%edx
psrlq $32,%mm1
movd %mm0,%ecx
movd %mm1,%ebp
shll $4,%edi
bswap %ebx
bswap %edx
bswap %ecx
xorl %edi,%ebp
bswap %ebp
ret
.globl _gcm_gmult_4bit_mmx
.align 4
_gcm_gmult_4bit_mmx:
L_gcm_gmult_4bit_mmx_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%edi
movl 24(%esp),%esi
call L005pic_point
L005pic_point:
popl %eax
leal Lrem_4bit-L005pic_point(%eax),%eax
movzbl 15(%edi),%ebx
call __mmx_gmult_4bit_inner
movl 20(%esp),%edi
emms
movl %ebx,12(%edi)
movl %edx,4(%edi)
movl %ecx,8(%edi)
movl %ebp,(%edi)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _gcm_ghash_4bit_mmx
.align 4
_gcm_ghash_4bit_mmx:
L_gcm_ghash_4bit_mmx_begin:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%ebp
movl 24(%esp),%esi
movl 28(%esp),%edi
movl 32(%esp),%ecx
call L006pic_point
L006pic_point:
popl %eax
leal Lrem_4bit-L006pic_point(%eax),%eax
addl %edi,%ecx
movl %ecx,32(%esp)
subl $20,%esp
movl 12(%ebp),%ebx
movl 4(%ebp),%edx
movl 8(%ebp),%ecx
movl (%ebp),%ebp
jmp L007mmx_outer_loop
.align 4,0x90
L007mmx_outer_loop:
xorl 12(%edi),%ebx
xorl 4(%edi),%edx
xorl 8(%edi),%ecx
xorl (%edi),%ebp
movl %edi,48(%esp)
movl %ebx,12(%esp)
movl %edx,4(%esp)
movl %ecx,8(%esp)
movl %ebp,(%esp)
movl %esp,%edi
shrl $24,%ebx
call __mmx_gmult_4bit_inner
movl 48(%esp),%edi
leal 16(%edi),%edi
cmpl 52(%esp),%edi
jb L007mmx_outer_loop
movl 40(%esp),%edi
emms
movl %ebx,12(%edi)
movl %edx,4(%edi)
movl %ecx,8(%edi)
movl %ebp,(%edi)
addl $20,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.align 6,0x90
Lrem_4bit:
.long 0,0,0,29491200,0,58982400,0,38141952
.long 0,117964800,0,113901568,0,76283904,0,88997888
.long 0,235929600,0,265420800,0,227803136,0,206962688
.long 0,152567808,0,148504576,0,177995776,0,190709760
.align 6,0x90
L008rem_8bit:
.value 0,450,900,582,1800,1738,1164,1358
.value 3600,4050,3476,3158,2328,2266,2716,2910
.value 7200,7650,8100,7782,6952,6890,6316,6510
.value 4656,5106,4532,4214,5432,5370,5820,6014
.value 14400,14722,15300,14854,16200,16010,15564,15630
.value 13904,14226,13780,13334,12632,12442,13020,13086
.value 9312,9634,10212,9766,9064,8874,8428,8494
.value 10864,11186,10740,10294,11640,11450,12028,12094
.value 28800,28994,29444,29382,30600,30282,29708,30158
.value 32400,32594,32020,31958,31128,30810,31260,31710
.value 27808,28002,28452,28390,27560,27242,26668,27118
.value 25264,25458,24884,24822,26040,25722,26172,26622
.value 18624,18690,19268,19078,20424,19978,19532,19854
.value 18128,18194,17748,17558,16856,16410,16988,17310
.value 21728,21794,22372,22182,21480,21034,20588,20910
.value 23280,23346,22900,22710,24056,23610,24188,24510
.value 57600,57538,57988,58182,58888,59338,58764,58446
.value 61200,61138,60564,60758,59416,59866,60316,59998
.value 64800,64738,65188,65382,64040,64490,63916,63598
.value 62256,62194,61620,61814,62520,62970,63420,63102
.value 55616,55426,56004,56070,56904,57226,56780,56334
.value 55120,54930,54484,54550,53336,53658,54236,53790
.value 50528,50338,50916,50982,49768,50090,49644,49198
.value 52080,51890,51444,51510,52344,52666,53244,52798
.value 37248,36930,37380,37830,38536,38730,38156,38094
.value 40848,40530,39956,40406,39064,39258,39708,39646
.value 36256,35938,36388,36838,35496,35690,35116,35054
.value 33712,33394,32820,33270,33976,34170,34620,34558
.value 43456,43010,43588,43910,44744,44810,44364,44174
.value 42960,42514,42068,42390,41176,41242,41820,41630
.value 46560,46114,46692,47014,45800,45866,45420,45230
.value 48112,47666,47220,47542,48376,48442,49020,48830
.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
.byte 0

662
deps/openssl/asm/x86-win32-masm/aes/vpaes-x86.asm

@ -0,0 +1,662 @@
TITLE vpaes-x86.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.686
.XMM
IF @Version LT 800
XMMWORD STRUCT 16
DQ 2 dup (?)
XMMWORD ENDS
ENDIF
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
.text$ SEGMENT PAGE 'CODE'
ELSE
.text$ SEGMENT ALIGN(64) 'CODE'
ENDIF
ALIGN 64
$L_vpaes_consts::
DD 218628480,235210255,168496130,67568393
DD 252381056,17041926,33884169,51187212
DD 252645135,252645135,252645135,252645135
DD 1512730624,3266504856,1377990664,3401244816
DD 830229760,1275146365,2969422977,3447763452
DD 3411033600,2979783055,338359620,2782886510
DD 4209124096,907596821,221174255,1006095553
DD 191964160,3799684038,3164090317,1589111125
DD 182528256,1777043520,2877432650,3265356744
DD 1874708224,3503451415,3305285752,363511674
DD 1606117888,3487855781,1093350906,2384367825
DD 197121,67569157,134941193,202313229
DD 67569157,134941193,202313229,197121
DD 134941193,202313229,197121,67569157
DD 202313229,197121,67569157,134941193
DD 33619971,100992007,168364043,235736079
DD 235736079,33619971,100992007,168364043
DD 168364043,235736079,33619971,100992007
DD 100992007,168364043,235736079,33619971
DD 50462976,117835012,185207048,252579084
DD 252314880,51251460,117574920,184942860
DD 184682752,252054788,50987272,118359308
DD 118099200,185467140,251790600,50727180
DD 2946363062,528716217,1300004225,1881839624
DD 1532713819,1532713819,1532713819,1532713819
DD 3602276352,4288629033,3737020424,4153884961
DD 1354558464,32357713,2958822624,3775749553
DD 1201988352,132424512,1572796698,503232858
DD 2213177600,1597421020,4103937655,675398315
DD 2749646592,4273543773,1511898873,121693092
DD 3040248576,1103263732,2871565598,1608280554
DD 2236667136,2588920351,482954393,64377734
DD 3069987328,291237287,2117370568,3650299247
DD 533321216,3573750986,2572112006,1401264716
DD 1339849704,2721158661,548607111,3445553514
DD 2128193280,3054596040,2183486460,1257083700
DD 655635200,1165381986,3923443150,2344132524
DD 190078720,256924420,290342170,357187870
DD 1610966272,2263057382,4103205268,309794674
DD 2592527872,2233205587,1335446729,3402964816
DD 3973531904,3225098121,3002836325,1918774430
DD 3870401024,2102906079,2284471353,4117666579
DD 617007872,1021508343,366931923,691083277
DD 2528395776,3491914898,2968704004,1613121270
DD 3445188352,3247741094,844474987,4093578302
DD 651481088,1190302358,1689581232,574775300
DD 4289380608,206939853,2555985458,2489840491
DD 2130264064,327674451,3566485037,3349835193
DD 2470714624,316102159,3636825756,3393945945
DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
DB 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
DB 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
DB 118,101,114,115,105,116,121,41,0
ALIGN 64
ALIGN 16
__vpaes_preheat PROC PRIVATE
add ebp,DWORD PTR [esp]
movdqa xmm7,XMMWORD PTR [ebp-48]
movdqa xmm6,XMMWORD PTR [ebp-16]
ret
__vpaes_preheat ENDP
ALIGN 16
__vpaes_encrypt_core PROC PRIVATE
mov ecx,16
mov eax,DWORD PTR 240[edx]
movdqa xmm1,xmm6
movdqa xmm2,XMMWORD PTR [ebp]
pandn xmm1,xmm0
movdqu xmm5,XMMWORD PTR [edx]
psrld xmm1,4
pand xmm0,xmm6
DB 102,15,56,0,208
movdqa xmm0,XMMWORD PTR 16[ebp]
DB 102,15,56,0,193
pxor xmm2,xmm5
pxor xmm0,xmm2
add edx,16
lea ebx,DWORD PTR 192[ebp]
jmp $L000enc_entry
ALIGN 16
$L001enc_loop:
movdqa xmm4,XMMWORD PTR 32[ebp]
DB 102,15,56,0,226
pxor xmm4,xmm5
movdqa xmm0,XMMWORD PTR 48[ebp]
DB 102,15,56,0,195
pxor xmm0,xmm4
movdqa xmm5,XMMWORD PTR 64[ebp]
DB 102,15,56,0,234
movdqa xmm1,XMMWORD PTR [ecx*1+ebx-64]
movdqa xmm2,XMMWORD PTR 80[ebp]
DB 102,15,56,0,211
pxor xmm2,xmm5
movdqa xmm4,XMMWORD PTR [ecx*1+ebx]
movdqa xmm3,xmm0
DB 102,15,56,0,193
add edx,16
pxor xmm0,xmm2
DB 102,15,56,0,220
add ecx,16
pxor xmm3,xmm0
DB 102,15,56,0,193
and ecx,48
pxor xmm0,xmm3
sub eax,1
$L000enc_entry:
movdqa xmm1,xmm6
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm6
movdqa xmm5,XMMWORD PTR [ebp-32]
DB 102,15,56,0,232
pxor xmm0,xmm1
movdqa xmm3,xmm7
DB 102,15,56,0,217
pxor xmm3,xmm5
movdqa xmm4,xmm7
DB 102,15,56,0,224
pxor xmm4,xmm5
movdqa xmm2,xmm7
DB 102,15,56,0,211
pxor xmm2,xmm0
movdqa xmm3,xmm7
movdqu xmm5,XMMWORD PTR [edx]
DB 102,15,56,0,220
pxor xmm3,xmm1
jnz $L001enc_loop
movdqa xmm4,XMMWORD PTR 96[ebp]
movdqa xmm0,XMMWORD PTR 112[ebp]
DB 102,15,56,0,226
pxor xmm4,xmm5
DB 102,15,56,0,195
movdqa xmm1,XMMWORD PTR 64[ecx*1+ebx]
pxor xmm0,xmm4
DB 102,15,56,0,193
ret
__vpaes_encrypt_core ENDP
ALIGN 16
__vpaes_decrypt_core PROC PRIVATE
mov eax,DWORD PTR 240[edx]
lea ebx,DWORD PTR 608[ebp]
movdqa xmm1,xmm6
movdqa xmm2,XMMWORD PTR [ebx-64]
pandn xmm1,xmm0
mov ecx,eax
psrld xmm1,4
movdqu xmm5,XMMWORD PTR [edx]
shl ecx,4
pand xmm0,xmm6
DB 102,15,56,0,208
movdqa xmm0,XMMWORD PTR [ebx-48]
xor ecx,48
DB 102,15,56,0,193
and ecx,48
pxor xmm2,xmm5
movdqa xmm5,XMMWORD PTR 176[ebp]
pxor xmm0,xmm2
add edx,16
lea ecx,DWORD PTR [ecx*1+ebx-352]
jmp $L002dec_entry
ALIGN 16
$L003dec_loop:
movdqa xmm4,XMMWORD PTR [ebx-32]
DB 102,15,56,0,226
pxor xmm4,xmm0
movdqa xmm0,XMMWORD PTR [ebx-16]
DB 102,15,56,0,195
pxor xmm0,xmm4
add edx,16
DB 102,15,56,0,197
movdqa xmm4,XMMWORD PTR [ebx]
DB 102,15,56,0,226
pxor xmm4,xmm0
movdqa xmm0,XMMWORD PTR 16[ebx]
DB 102,15,56,0,195
pxor xmm0,xmm4
sub eax,1
DB 102,15,56,0,197
movdqa xmm4,XMMWORD PTR 32[ebx]
DB 102,15,56,0,226
pxor xmm4,xmm0
movdqa xmm0,XMMWORD PTR 48[ebx]
DB 102,15,56,0,195
pxor xmm0,xmm4
DB 102,15,56,0,197
movdqa xmm4,XMMWORD PTR 64[ebx]
DB 102,15,56,0,226
pxor xmm4,xmm0
movdqa xmm0,XMMWORD PTR 80[ebx]
DB 102,15,56,0,195
pxor xmm0,xmm4
DB 102,15,58,15,237,12
$L002dec_entry:
movdqa xmm1,xmm6
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm6
movdqa xmm2,XMMWORD PTR [ebp-32]
DB 102,15,56,0,208
pxor xmm0,xmm1
movdqa xmm3,xmm7
DB 102,15,56,0,217
pxor xmm3,xmm2
movdqa xmm4,xmm7
DB 102,15,56,0,224
pxor xmm4,xmm2
movdqa xmm2,xmm7
DB 102,15,56,0,211
pxor xmm2,xmm0
movdqa xmm3,xmm7
DB 102,15,56,0,220
pxor xmm3,xmm1
movdqu xmm0,XMMWORD PTR [edx]
jnz $L003dec_loop
movdqa xmm4,XMMWORD PTR 96[ebx]
DB 102,15,56,0,226
pxor xmm4,xmm0
movdqa xmm0,XMMWORD PTR 112[ebx]
movdqa xmm2,XMMWORD PTR [ecx]
DB 102,15,56,0,195
pxor xmm0,xmm4
DB 102,15,56,0,194
ret
__vpaes_decrypt_core ENDP
ALIGN 16
__vpaes_schedule_core PROC PRIVATE
add ebp,DWORD PTR [esp]
movdqu xmm0,XMMWORD PTR [esi]
movdqa xmm2,XMMWORD PTR 320[ebp]
movdqa xmm3,xmm0
lea ebx,DWORD PTR [ebp]
movdqa XMMWORD PTR 4[esp],xmm2
call __vpaes_schedule_transform
movdqa xmm7,xmm0
test edi,edi
jnz $L004schedule_am_decrypting
movdqu XMMWORD PTR [edx],xmm0
jmp $L005schedule_go
$L004schedule_am_decrypting:
movdqa xmm1,XMMWORD PTR 256[ecx*1+ebp]
DB 102,15,56,0,217
movdqu XMMWORD PTR [edx],xmm3
xor ecx,48
$L005schedule_go:
cmp eax,192
ja $L006schedule_256
je $L007schedule_192
$L008schedule_128:
mov eax,10
$L009loop_schedule_128:
call __vpaes_schedule_round
dec eax
jz $L010schedule_mangle_last
call __vpaes_schedule_mangle
jmp $L009loop_schedule_128
ALIGN 16
$L007schedule_192:
movdqu xmm0,XMMWORD PTR 8[esi]
call __vpaes_schedule_transform
movdqa xmm6,xmm0
pxor xmm4,xmm4
movhlps xmm6,xmm4
mov eax,4
$L011loop_schedule_192:
call __vpaes_schedule_round
DB 102,15,58,15,198,8
call __vpaes_schedule_mangle
call __vpaes_schedule_192_smear
call __vpaes_schedule_mangle
call __vpaes_schedule_round
dec eax
jz $L010schedule_mangle_last
call __vpaes_schedule_mangle
call __vpaes_schedule_192_smear
jmp $L011loop_schedule_192
ALIGN 16
$L006schedule_256:
movdqu xmm0,XMMWORD PTR 16[esi]
call __vpaes_schedule_transform
mov eax,7
$L012loop_schedule_256:
call __vpaes_schedule_mangle
movdqa xmm6,xmm0
call __vpaes_schedule_round
dec eax
jz $L010schedule_mangle_last
call __vpaes_schedule_mangle
pshufd xmm0,xmm0,255
movdqa XMMWORD PTR 20[esp],xmm7
movdqa xmm7,xmm6
call $L_vpaes_schedule_low_round
movdqa xmm7,XMMWORD PTR 20[esp]
jmp $L012loop_schedule_256
ALIGN 16
$L010schedule_mangle_last:
lea ebx,DWORD PTR 384[ebp]
test edi,edi
jnz $L013schedule_mangle_last_dec
movdqa xmm1,XMMWORD PTR 256[ecx*1+ebp]
DB 102,15,56,0,193
lea ebx,DWORD PTR 352[ebp]
add edx,32
$L013schedule_mangle_last_dec:
add edx,-16
pxor xmm0,XMMWORD PTR 336[ebp]
call __vpaes_schedule_transform
movdqu XMMWORD PTR [edx],xmm0
pxor xmm0,xmm0
pxor xmm1,xmm1
pxor xmm2,xmm2
pxor xmm3,xmm3
pxor xmm4,xmm4
pxor xmm5,xmm5
pxor xmm6,xmm6
pxor xmm7,xmm7
ret
__vpaes_schedule_core ENDP
ALIGN 16
__vpaes_schedule_192_smear PROC PRIVATE
pshufd xmm0,xmm6,128
pxor xmm6,xmm0
pshufd xmm0,xmm7,254
pxor xmm6,xmm0
movdqa xmm0,xmm6
pxor xmm1,xmm1
movhlps xmm6,xmm1
ret
__vpaes_schedule_192_smear ENDP
ALIGN 16
__vpaes_schedule_round PROC PRIVATE
movdqa xmm2,XMMWORD PTR 8[esp]
pxor xmm1,xmm1
DB 102,15,58,15,202,15
DB 102,15,58,15,210,15
pxor xmm7,xmm1
pshufd xmm0,xmm0,255
DB 102,15,58,15,192,1
movdqa XMMWORD PTR 8[esp],xmm2
$L_vpaes_schedule_low_round::
movdqa xmm1,xmm7
pslldq xmm7,4
pxor xmm7,xmm1
movdqa xmm1,xmm7
pslldq xmm7,8
pxor xmm7,xmm1
pxor xmm7,XMMWORD PTR 336[ebp]
movdqa xmm4,XMMWORD PTR [ebp-16]
movdqa xmm5,XMMWORD PTR [ebp-48]
movdqa xmm1,xmm4
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm4
movdqa xmm2,XMMWORD PTR [ebp-32]
DB 102,15,56,0,208
pxor xmm0,xmm1
movdqa xmm3,xmm5
DB 102,15,56,0,217
pxor xmm3,xmm2
movdqa xmm4,xmm5
DB 102,15,56,0,224
pxor xmm4,xmm2
movdqa xmm2,xmm5
DB 102,15,56,0,211
pxor xmm2,xmm0
movdqa xmm3,xmm5
DB 102,15,56,0,220
pxor xmm3,xmm1
movdqa xmm4,XMMWORD PTR 32[ebp]
DB 102,15,56,0,226
movdqa xmm0,XMMWORD PTR 48[ebp]
DB 102,15,56,0,195
pxor xmm0,xmm4
pxor xmm0,xmm7
movdqa xmm7,xmm0
ret
__vpaes_schedule_round ENDP
ALIGN 16
__vpaes_schedule_transform PROC PRIVATE
movdqa xmm2,XMMWORD PTR [ebp-16]
movdqa xmm1,xmm2
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm2
movdqa xmm2,XMMWORD PTR [ebx]
DB 102,15,56,0,208
movdqa xmm0,XMMWORD PTR 16[ebx]
DB 102,15,56,0,193
pxor xmm0,xmm2
ret
__vpaes_schedule_transform ENDP
ALIGN 16
__vpaes_schedule_mangle PROC PRIVATE
movdqa xmm4,xmm0
movdqa xmm5,XMMWORD PTR 128[ebp]
test edi,edi
jnz $L014schedule_mangle_dec
add edx,16
pxor xmm4,XMMWORD PTR 336[ebp]
DB 102,15,56,0,229
movdqa xmm3,xmm4
DB 102,15,56,0,229
pxor xmm3,xmm4
DB 102,15,56,0,229
pxor xmm3,xmm4
jmp $L015schedule_mangle_both
ALIGN 16
$L014schedule_mangle_dec:
movdqa xmm2,XMMWORD PTR [ebp-16]
lea esi,DWORD PTR 416[ebp]
movdqa xmm1,xmm2
pandn xmm1,xmm4
psrld xmm1,4
pand xmm4,xmm2
movdqa xmm2,XMMWORD PTR [esi]
DB 102,15,56,0,212
movdqa xmm3,XMMWORD PTR 16[esi]
DB 102,15,56,0,217
pxor xmm3,xmm2
DB 102,15,56,0,221
movdqa xmm2,XMMWORD PTR 32[esi]
DB 102,15,56,0,212
pxor xmm2,xmm3
movdqa xmm3,XMMWORD PTR 48[esi]
DB 102,15,56,0,217
pxor xmm3,xmm2
DB 102,15,56,0,221
movdqa xmm2,XMMWORD PTR 64[esi]
DB 102,15,56,0,212
pxor xmm2,xmm3
movdqa xmm3,XMMWORD PTR 80[esi]
DB 102,15,56,0,217
pxor xmm3,xmm2
DB 102,15,56,0,221
movdqa xmm2,XMMWORD PTR 96[esi]
DB 102,15,56,0,212
pxor xmm2,xmm3
movdqa xmm3,XMMWORD PTR 112[esi]
DB 102,15,56,0,217
pxor xmm3,xmm2
add edx,-16
$L015schedule_mangle_both:
movdqa xmm1,XMMWORD PTR 256[ecx*1+ebp]
DB 102,15,56,0,217
add ecx,-16
and ecx,48
movdqu XMMWORD PTR [edx],xmm3
ret
__vpaes_schedule_mangle ENDP
ALIGN 16
_vpaes_set_encrypt_key PROC PUBLIC
$L_vpaes_set_encrypt_key_begin::
push ebp
push ebx
push esi
push edi
mov esi,DWORD PTR 20[esp]
lea ebx,DWORD PTR [esp-56]
mov eax,DWORD PTR 24[esp]
and ebx,-16
mov edx,DWORD PTR 28[esp]
xchg ebx,esp
mov DWORD PTR 48[esp],ebx
mov ebx,eax
shr ebx,5
add ebx,5
mov DWORD PTR 240[edx],ebx
mov ecx,48
mov edi,0
mov ebp,OFFSET ($L_vpaes_consts+030h-$L016pic_point)
call __vpaes_schedule_core
$L016pic_point:
mov esp,DWORD PTR 48[esp]
xor eax,eax
pop edi
pop esi
pop ebx
pop ebp
ret
_vpaes_set_encrypt_key ENDP
ALIGN 16
_vpaes_set_decrypt_key PROC PUBLIC
$L_vpaes_set_decrypt_key_begin::
push ebp
push ebx
push esi
push edi
mov esi,DWORD PTR 20[esp]
lea ebx,DWORD PTR [esp-56]
mov eax,DWORD PTR 24[esp]
and ebx,-16
mov edx,DWORD PTR 28[esp]
xchg ebx,esp
mov DWORD PTR 48[esp],ebx
mov ebx,eax
shr ebx,5
add ebx,5
mov DWORD PTR 240[edx],ebx
shl ebx,4
lea edx,DWORD PTR 16[ebx*1+edx]
mov edi,1
mov ecx,eax
shr ecx,1
and ecx,32
xor ecx,32
mov ebp,OFFSET ($L_vpaes_consts+030h-$L017pic_point)
call __vpaes_schedule_core
$L017pic_point:
mov esp,DWORD PTR 48[esp]
xor eax,eax
pop edi
pop esi
pop ebx
pop ebp
ret
_vpaes_set_decrypt_key ENDP
ALIGN 16
_vpaes_encrypt PROC PUBLIC
$L_vpaes_encrypt_begin::
push ebp
push ebx
push esi
push edi
mov ebp,OFFSET ($L_vpaes_consts+030h-$L018pic_point)
call __vpaes_preheat
$L018pic_point:
mov esi,DWORD PTR 20[esp]
lea ebx,DWORD PTR [esp-56]
mov edi,DWORD PTR 24[esp]
and ebx,-16
mov edx,DWORD PTR 28[esp]
xchg ebx,esp
mov DWORD PTR 48[esp],ebx
movdqu xmm0,XMMWORD PTR [esi]
call __vpaes_encrypt_core
movdqu XMMWORD PTR [edi],xmm0
mov esp,DWORD PTR 48[esp]
pop edi
pop esi
pop ebx
pop ebp
ret
_vpaes_encrypt ENDP
ALIGN 16
_vpaes_decrypt PROC PUBLIC
$L_vpaes_decrypt_begin::
push ebp
push ebx
push esi
push edi
mov ebp,OFFSET ($L_vpaes_consts+030h-$L019pic_point)
call __vpaes_preheat
$L019pic_point:
mov esi,DWORD PTR 20[esp]
lea ebx,DWORD PTR [esp-56]
mov edi,DWORD PTR 24[esp]
and ebx,-16
mov edx,DWORD PTR 28[esp]
xchg ebx,esp
mov DWORD PTR 48[esp],ebx
movdqu xmm0,XMMWORD PTR [esi]
call __vpaes_decrypt_core
movdqu XMMWORD PTR [edi],xmm0
mov esp,DWORD PTR 48[esp]
pop edi
pop esi
pop ebx
pop ebp
ret
_vpaes_decrypt ENDP
ALIGN 16
_vpaes_cbc_encrypt PROC PUBLIC
$L_vpaes_cbc_encrypt_begin::
push ebp
push ebx
push esi
push edi
mov esi,DWORD PTR 20[esp]
mov edi,DWORD PTR 24[esp]
mov eax,DWORD PTR 28[esp]
mov edx,DWORD PTR 32[esp]
sub eax,16
jc $L020cbc_abort
lea ebx,DWORD PTR [esp-56]
mov ebp,DWORD PTR 36[esp]
and ebx,-16
mov ecx,DWORD PTR 40[esp]
xchg ebx,esp
movdqu xmm1,XMMWORD PTR [ebp]
sub edi,esi
mov DWORD PTR 48[esp],ebx
mov DWORD PTR [esp],edi
mov DWORD PTR 4[esp],edx
mov DWORD PTR 8[esp],ebp
mov edi,eax
mov ebp,OFFSET ($L_vpaes_consts+030h-$L021pic_point)
call __vpaes_preheat
$L021pic_point:
cmp ecx,0
je $L022cbc_dec_loop
jmp $L023cbc_enc_loop
ALIGN 16
$L023cbc_enc_loop:
movdqu xmm0,XMMWORD PTR [esi]
pxor xmm0,xmm1
call __vpaes_encrypt_core
mov ebx,DWORD PTR [esp]
mov edx,DWORD PTR 4[esp]
movdqa xmm1,xmm0
movdqu XMMWORD PTR [esi*1+ebx],xmm0
lea esi,DWORD PTR 16[esi]
sub edi,16
jnc $L023cbc_enc_loop
jmp $L024cbc_done
ALIGN 16
$L022cbc_dec_loop:
movdqu xmm0,XMMWORD PTR [esi]
movdqa XMMWORD PTR 16[esp],xmm1
movdqa XMMWORD PTR 32[esp],xmm0
call __vpaes_decrypt_core
mov ebx,DWORD PTR [esp]
mov edx,DWORD PTR 4[esp]
pxor xmm0,XMMWORD PTR 16[esp]
movdqa xmm1,XMMWORD PTR 32[esp]
movdqu XMMWORD PTR [esi*1+ebx],xmm0
lea esi,DWORD PTR 16[esi]
sub edi,16
jnc $L022cbc_dec_loop
$L024cbc_done:
mov ebx,DWORD PTR 8[esp]
mov esp,DWORD PTR 48[esp]
movdqu XMMWORD PTR [ebx],xmm1
$L020cbc_abort:
pop edi
pop esi
pop ebx
pop ebp
ret
_vpaes_cbc_encrypt ENDP
.text$ ENDS
END

738
deps/openssl/asm/x86-win32-masm/modes/ghash-x86.asm

@ -0,0 +1,738 @@
TITLE ghash-x86.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.686
.XMM
IF @Version LT 800
XMMWORD STRUCT 16
DQ 2 dup (?)
XMMWORD ENDS
ENDIF
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
.text$ SEGMENT PAGE 'CODE'
ELSE
.text$ SEGMENT ALIGN(64) 'CODE'
ENDIF
ALIGN 16
_gcm_gmult_4bit_x86 PROC PUBLIC
$L_gcm_gmult_4bit_x86_begin::
push ebp
push ebx
push esi
push edi
sub esp,84
mov edi,DWORD PTR 104[esp]
mov esi,DWORD PTR 108[esp]
mov ebp,DWORD PTR [edi]
mov edx,DWORD PTR 4[edi]
mov ecx,DWORD PTR 8[edi]
mov ebx,DWORD PTR 12[edi]
mov DWORD PTR 16[esp],0
mov DWORD PTR 20[esp],471859200
mov DWORD PTR 24[esp],943718400
mov DWORD PTR 28[esp],610271232
mov DWORD PTR 32[esp],1887436800
mov DWORD PTR 36[esp],1822425088
mov DWORD PTR 40[esp],1220542464
mov DWORD PTR 44[esp],1423966208
mov DWORD PTR 48[esp],3774873600
mov DWORD PTR 52[esp],4246732800
mov DWORD PTR 56[esp],3644850176
mov DWORD PTR 60[esp],3311403008
mov DWORD PTR 64[esp],2441084928
mov DWORD PTR 68[esp],2376073216
mov DWORD PTR 72[esp],2847932416
mov DWORD PTR 76[esp],3051356160
mov DWORD PTR [esp],ebp
mov DWORD PTR 4[esp],edx
mov DWORD PTR 8[esp],ecx
mov DWORD PTR 12[esp],ebx
shr ebx,20
and ebx,240
mov ebp,DWORD PTR 4[ebx*1+esi]
mov edx,DWORD PTR [ebx*1+esi]
mov ecx,DWORD PTR 12[ebx*1+esi]
mov ebx,DWORD PTR 8[ebx*1+esi]
xor eax,eax
mov edi,15
jmp $L000x86_loop
ALIGN 16
$L000x86_loop:
mov al,bl
shrd ebx,ecx,4
and al,15
shrd ecx,edx,4
shrd edx,ebp,4
shr ebp,4
xor ebp,DWORD PTR 16[eax*4+esp]
mov al,BYTE PTR [edi*1+esp]
and al,240
xor ebx,DWORD PTR 8[eax*1+esi]
xor ecx,DWORD PTR 12[eax*1+esi]
xor edx,DWORD PTR [eax*1+esi]
xor ebp,DWORD PTR 4[eax*1+esi]
dec edi
js $L001x86_break
mov al,bl
shrd ebx,ecx,4
and al,15
shrd ecx,edx,4
shrd edx,ebp,4
shr ebp,4
xor ebp,DWORD PTR 16[eax*4+esp]
mov al,BYTE PTR [edi*1+esp]
shl al,4
xor ebx,DWORD PTR 8[eax*1+esi]
xor ecx,DWORD PTR 12[eax*1+esi]
xor edx,DWORD PTR [eax*1+esi]
xor ebp,DWORD PTR 4[eax*1+esi]
jmp $L000x86_loop
ALIGN 16
$L001x86_break:
bswap ebx
bswap ecx
bswap edx
bswap ebp
mov edi,DWORD PTR 104[esp]
mov DWORD PTR 12[edi],ebx
mov DWORD PTR 8[edi],ecx
mov DWORD PTR 4[edi],edx
mov DWORD PTR [edi],ebp
add esp,84
pop edi
pop esi
pop ebx
pop ebp
ret
_gcm_gmult_4bit_x86 ENDP
ALIGN 16
_gcm_ghash_4bit_x86 PROC PUBLIC
$L_gcm_ghash_4bit_x86_begin::
push ebp
push ebx
push esi
push edi
sub esp,84
mov ebx,DWORD PTR 104[esp]
mov esi,DWORD PTR 108[esp]
mov edi,DWORD PTR 112[esp]
mov ecx,DWORD PTR 116[esp]
add ecx,edi
mov DWORD PTR 116[esp],ecx
mov ebp,DWORD PTR [ebx]
mov edx,DWORD PTR 4[ebx]
mov ecx,DWORD PTR 8[ebx]
mov ebx,DWORD PTR 12[ebx]
mov DWORD PTR 16[esp],0
mov DWORD PTR 20[esp],471859200
mov DWORD PTR 24[esp],943718400
mov DWORD PTR 28[esp],610271232
mov DWORD PTR 32[esp],1887436800
mov DWORD PTR 36[esp],1822425088
mov DWORD PTR 40[esp],1220542464
mov DWORD PTR 44[esp],1423966208
mov DWORD PTR 48[esp],3774873600
mov DWORD PTR 52[esp],4246732800
mov DWORD PTR 56[esp],3644850176
mov DWORD PTR 60[esp],3311403008
mov DWORD PTR 64[esp],2441084928
mov DWORD PTR 68[esp],2376073216
mov DWORD PTR 72[esp],2847932416
mov DWORD PTR 76[esp],3051356160
ALIGN 16
$L002x86_outer_loop:
xor ebx,DWORD PTR 12[edi]
xor ecx,DWORD PTR 8[edi]
xor edx,DWORD PTR 4[edi]
xor ebp,DWORD PTR [edi]
mov DWORD PTR 12[esp],ebx
mov DWORD PTR 8[esp],ecx
mov DWORD PTR 4[esp],edx
mov DWORD PTR [esp],ebp
shr ebx,20
and ebx,240
mov ebp,DWORD PTR 4[ebx*1+esi]
mov edx,DWORD PTR [ebx*1+esi]
mov ecx,DWORD PTR 12[ebx*1+esi]
mov ebx,DWORD PTR 8[ebx*1+esi]
xor eax,eax
mov edi,15
jmp $L003x86_loop
ALIGN 16
$L003x86_loop:
mov al,bl
shrd ebx,ecx,4
and al,15
shrd ecx,edx,4
shrd edx,ebp,4
shr ebp,4
xor ebp,DWORD PTR 16[eax*4+esp]
mov al,BYTE PTR [edi*1+esp]
and al,240
xor ebx,DWORD PTR 8[eax*1+esi]
xor ecx,DWORD PTR 12[eax*1+esi]
xor edx,DWORD PTR [eax*1+esi]
xor ebp,DWORD PTR 4[eax*1+esi]
dec edi
js $L004x86_break
mov al,bl
shrd ebx,ecx,4
and al,15
shrd ecx,edx,4
shrd edx,ebp,4
shr ebp,4
xor ebp,DWORD PTR 16[eax*4+esp]
mov al,BYTE PTR [edi*1+esp]
shl al,4
xor ebx,DWORD PTR 8[eax*1+esi]
xor ecx,DWORD PTR 12[eax*1+esi]
xor edx,DWORD PTR [eax*1+esi]
xor ebp,DWORD PTR 4[eax*1+esi]
jmp $L003x86_loop
ALIGN 16
$L004x86_break:
bswap ebx
bswap ecx
bswap edx
bswap ebp
mov edi,DWORD PTR 112[esp]
lea edi,DWORD PTR 16[edi]
cmp edi,DWORD PTR 116[esp]
mov DWORD PTR 112[esp],edi
jb $L002x86_outer_loop
mov edi,DWORD PTR 104[esp]
mov DWORD PTR 12[edi],ebx
mov DWORD PTR 8[edi],ecx
mov DWORD PTR 4[edi],edx
mov DWORD PTR [edi],ebp
add esp,84
pop edi
pop esi
pop ebx
pop ebp
ret
_gcm_ghash_4bit_x86 ENDP
ALIGN 16
__mmx_gmult_4bit_inner PROC PRIVATE
xor ecx,ecx
mov edx,ebx
mov cl,dl
shl cl,4
and edx,240
movq mm0,QWORD PTR 8[ecx*1+esi]
movq mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 14[edi]
psllq mm2,60
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 13[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 12[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 11[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 10[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 9[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 8[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 7[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 6[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 5[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 4[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 3[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 2[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR 1[edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
mov cl,BYTE PTR [edi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
mov edx,ecx
movd ebx,mm0
pxor mm0,mm2
shl cl,4
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[ecx*1+esi]
psllq mm2,60
and edx,240
pxor mm1,QWORD PTR [ebp*8+eax]
and ebx,15
pxor mm1,QWORD PTR [ecx*1+esi]
movd ebp,mm0
pxor mm0,mm2
psrlq mm0,4
movq mm2,mm1
psrlq mm1,4
pxor mm0,QWORD PTR 8[edx*1+esi]
psllq mm2,60
pxor mm1,QWORD PTR [ebx*8+eax]
and ebp,15
pxor mm1,QWORD PTR [edx*1+esi]
movd ebx,mm0
pxor mm0,mm2
mov edi,DWORD PTR 4[ebp*8+eax]
psrlq mm0,32
movd edx,mm1
psrlq mm1,32
movd ecx,mm0
movd ebp,mm1
shl edi,4
bswap ebx
bswap edx
bswap ecx
xor ebp,edi
bswap ebp
ret
__mmx_gmult_4bit_inner ENDP
ALIGN 16
_gcm_gmult_4bit_mmx PROC PUBLIC
$L_gcm_gmult_4bit_mmx_begin::
push ebp
push ebx
push esi
push edi
mov edi,DWORD PTR 20[esp]
mov esi,DWORD PTR 24[esp]
call $L005pic_point
$L005pic_point:
pop eax
lea eax,DWORD PTR ($Lrem_4bit-$L005pic_point)[eax]
movzx ebx,BYTE PTR 15[edi]
call __mmx_gmult_4bit_inner
mov edi,DWORD PTR 20[esp]
emms
mov DWORD PTR 12[edi],ebx
mov DWORD PTR 4[edi],edx
mov DWORD PTR 8[edi],ecx
mov DWORD PTR [edi],ebp
pop edi
pop esi
pop ebx
pop ebp
ret
_gcm_gmult_4bit_mmx ENDP
ALIGN 16
_gcm_ghash_4bit_mmx PROC PUBLIC
$L_gcm_ghash_4bit_mmx_begin::
push ebp
push ebx
push esi
push edi
mov ebp,DWORD PTR 20[esp]
mov esi,DWORD PTR 24[esp]
mov edi,DWORD PTR 28[esp]
mov ecx,DWORD PTR 32[esp]
call $L006pic_point
$L006pic_point:
pop eax
lea eax,DWORD PTR ($Lrem_4bit-$L006pic_point)[eax]
add ecx,edi
mov DWORD PTR 32[esp],ecx
sub esp,20
mov ebx,DWORD PTR 12[ebp]
mov edx,DWORD PTR 4[ebp]
mov ecx,DWORD PTR 8[ebp]
mov ebp,DWORD PTR [ebp]
jmp $L007mmx_outer_loop
ALIGN 16
$L007mmx_outer_loop:
xor ebx,DWORD PTR 12[edi]
xor edx,DWORD PTR 4[edi]
xor ecx,DWORD PTR 8[edi]
xor ebp,DWORD PTR [edi]
mov DWORD PTR 48[esp],edi
mov DWORD PTR 12[esp],ebx
mov DWORD PTR 4[esp],edx
mov DWORD PTR 8[esp],ecx
mov DWORD PTR [esp],ebp
mov edi,esp
shr ebx,24
call __mmx_gmult_4bit_inner
mov edi,DWORD PTR 48[esp]
lea edi,DWORD PTR 16[edi]
cmp edi,DWORD PTR 52[esp]
jb $L007mmx_outer_loop
mov edi,DWORD PTR 40[esp]
emms
mov DWORD PTR 12[edi],ebx
mov DWORD PTR 4[edi],edx
mov DWORD PTR 8[edi],ecx
mov DWORD PTR [edi],ebp
add esp,20
pop edi
pop esi
pop ebx
pop ebp
ret
_gcm_ghash_4bit_mmx ENDP
ALIGN 64
$Lrem_4bit::
DD 0,0,0,29491200,0,58982400,0,38141952
DD 0,117964800,0,113901568,0,76283904,0,88997888
DD 0,235929600,0,265420800,0,227803136,0,206962688
DD 0,152567808,0,148504576,0,177995776,0,190709760
ALIGN 64
$L008rem_8bit:
DW 0,450,900,582,1800,1738,1164,1358
DW 3600,4050,3476,3158,2328,2266,2716,2910
DW 7200,7650,8100,7782,6952,6890,6316,6510
DW 4656,5106,4532,4214,5432,5370,5820,6014
DW 14400,14722,15300,14854,16200,16010,15564,15630
DW 13904,14226,13780,13334,12632,12442,13020,13086
DW 9312,9634,10212,9766,9064,8874,8428,8494
DW 10864,11186,10740,10294,11640,11450,12028,12094
DW 28800,28994,29444,29382,30600,30282,29708,30158
DW 32400,32594,32020,31958,31128,30810,31260,31710
DW 27808,28002,28452,28390,27560,27242,26668,27118
DW 25264,25458,24884,24822,26040,25722,26172,26622
DW 18624,18690,19268,19078,20424,19978,19532,19854
DW 18128,18194,17748,17558,16856,16410,16988,17310
DW 21728,21794,22372,22182,21480,21034,20588,20910
DW 23280,23346,22900,22710,24056,23610,24188,24510
DW 57600,57538,57988,58182,58888,59338,58764,58446
DW 61200,61138,60564,60758,59416,59866,60316,59998
DW 64800,64738,65188,65382,64040,64490,63916,63598
DW 62256,62194,61620,61814,62520,62970,63420,63102
DW 55616,55426,56004,56070,56904,57226,56780,56334
DW 55120,54930,54484,54550,53336,53658,54236,53790
DW 50528,50338,50916,50982,49768,50090,49644,49198
DW 52080,51890,51444,51510,52344,52666,53244,52798
DW 37248,36930,37380,37830,38536,38730,38156,38094
DW 40848,40530,39956,40406,39064,39258,39708,39646
DW 36256,35938,36388,36838,35496,35690,35116,35054
DW 33712,33394,32820,33270,33976,34170,34620,34558
DW 43456,43010,43588,43910,44744,44810,44364,44174
DW 42960,42514,42068,42390,41176,41242,41820,41630
DW 46560,46114,46692,47014,45800,45866,45420,45230
DW 48112,47666,47220,47542,48376,48442,49020,48830
DB 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
DB 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
DB 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
DB 0
.text$ ENDS
END

23
deps/openssl/openssl.gyp

@ -688,6 +688,7 @@
# Enable asm # Enable asm
'defines': [ 'defines': [
'AES_ASM', 'AES_ASM',
'VPAES_ASM',
'BF_ASM', 'BF_ASM',
'BNCO_ASM', 'BNCO_ASM',
'BN_ASM', 'BN_ASM',
@ -703,6 +704,7 @@
'SHA1_ASM', 'SHA1_ASM',
'SHA256_ASM', 'SHA256_ASM',
'SHA512_ASM', 'SHA512_ASM',
'GHASH_ASM',
'WHIRLPOOL_ASM', 'WHIRLPOOL_ASM',
'WP_ASM' 'WP_ASM'
], ],
@ -711,6 +713,7 @@
'sources': [ 'sources': [
'asm/x86-elf-gas/aes/aes-586.s', 'asm/x86-elf-gas/aes/aes-586.s',
'asm/x86-elf-gas/aes/aesni-x86.s', 'asm/x86-elf-gas/aes/aesni-x86.s',
'asm/x86-elf-gas/aes/vpaes-x86.s',
'asm/x86-elf-gas/bf/bf-686.s', 'asm/x86-elf-gas/bf/bf-686.s',
'asm/x86-elf-gas/bn/x86-mont.s', 'asm/x86-elf-gas/bn/x86-mont.s',
'asm/x86-elf-gas/bn/x86.s', 'asm/x86-elf-gas/bn/x86.s',
@ -726,6 +729,7 @@
'asm/x86-elf-gas/sha/sha256-586.s', 'asm/x86-elf-gas/sha/sha256-586.s',
'asm/x86-elf-gas/sha/sha512-586.s', 'asm/x86-elf-gas/sha/sha512-586.s',
'asm/x86-elf-gas/whrlpool/wp-mmx.s', 'asm/x86-elf-gas/whrlpool/wp-mmx.s',
'asm/x86-elf-gas/modes/ghash-x86.s',
'asm/x86-elf-gas/x86cpuid.s', 'asm/x86-elf-gas/x86cpuid.s',
'openssl/crypto/whrlpool/wp_block.c' 'openssl/crypto/whrlpool/wp_block.c'
] ]
@ -734,10 +738,14 @@
'defines': [ 'defines': [
'OPENSSL_BN_ASM_MONT5', 'OPENSSL_BN_ASM_MONT5',
'OPENSSL_BN_ASM_GF2m', 'OPENSSL_BN_ASM_GF2m',
'OPENSSL_IA32_SSE2',
'BSAES_ASM',
], ],
'sources': [ 'sources': [
'asm/x64-elf-gas/aes/aes-x86_64.s', 'asm/x64-elf-gas/aes/aes-x86_64.s',
'asm/x64-elf-gas/aes/aesni-x86_64.s', 'asm/x64-elf-gas/aes/aesni-x86_64.s',
'asm/x64-elf-gas/aes/vpaes-x86_64.s',
'asm/x64-elf-gas/aes/bsaes-x86_64.s',
'asm/x64-elf-gas/aes/aesni-sha1-x86_64.s', 'asm/x64-elf-gas/aes/aesni-sha1-x86_64.s',
'asm/x64-elf-gas/bn/modexp512-x86_64.s', 'asm/x64-elf-gas/bn/modexp512-x86_64.s',
'asm/x64-elf-gas/bn/x86_64-mont.s', 'asm/x64-elf-gas/bn/x86_64-mont.s',
@ -751,6 +759,7 @@
'asm/x64-elf-gas/sha/sha256-x86_64.s', 'asm/x64-elf-gas/sha/sha256-x86_64.s',
'asm/x64-elf-gas/sha/sha512-x86_64.s', 'asm/x64-elf-gas/sha/sha512-x86_64.s',
'asm/x64-elf-gas/whrlpool/wp-x86_64.s', 'asm/x64-elf-gas/whrlpool/wp-x86_64.s',
'asm/x64-elf-gas/modes/ghash-x86_64.s',
'asm/x64-elf-gas/x86_64cpuid.s', 'asm/x64-elf-gas/x86_64cpuid.s',
# Non-generated asm # Non-generated asm
'openssl/crypto/bn/asm/x86_64-gcc.c', 'openssl/crypto/bn/asm/x86_64-gcc.c',
@ -766,6 +775,7 @@
'sources': [ 'sources': [
'asm/x86-macosx-gas/aes/aes-586.s', 'asm/x86-macosx-gas/aes/aes-586.s',
'asm/x86-macosx-gas/aes/aesni-x86.s', 'asm/x86-macosx-gas/aes/aesni-x86.s',
'asm/x86-macosx-gas/aes/vpaes-x86.s',
'asm/x86-macosx-gas/bf/bf-686.s', 'asm/x86-macosx-gas/bf/bf-686.s',
'asm/x86-macosx-gas/bn/x86-mont.s', 'asm/x86-macosx-gas/bn/x86-mont.s',
'asm/x86-macosx-gas/bn/x86.s', 'asm/x86-macosx-gas/bn/x86.s',
@ -781,6 +791,7 @@
'asm/x86-macosx-gas/sha/sha256-586.s', 'asm/x86-macosx-gas/sha/sha256-586.s',
'asm/x86-macosx-gas/sha/sha512-586.s', 'asm/x86-macosx-gas/sha/sha512-586.s',
'asm/x86-macosx-gas/whrlpool/wp-mmx.s', 'asm/x86-macosx-gas/whrlpool/wp-mmx.s',
'asm/x86-macosx-gas/modes/ghash-x86.s',
'asm/x86-macosx-gas/x86cpuid.s', 'asm/x86-macosx-gas/x86cpuid.s',
'openssl/crypto/whrlpool/wp_block.c' 'openssl/crypto/whrlpool/wp_block.c'
] ]
@ -789,10 +800,14 @@
'defines': [ 'defines': [
'OPENSSL_BN_ASM_MONT5', 'OPENSSL_BN_ASM_MONT5',
'OPENSSL_BN_ASM_GF2m', 'OPENSSL_BN_ASM_GF2m',
'OPENSSL_IA32_SSE2',
'BSAES_ASM',
], ],
'sources': [ 'sources': [
'asm/x64-macosx-gas/aes/aes-x86_64.s', 'asm/x64-macosx-gas/aes/aes-x86_64.s',
'asm/x64-macosx-gas/aes/aesni-x86_64.s', 'asm/x64-macosx-gas/aes/aesni-x86_64.s',
'asm/x64-macosx-gas/aes/vpaes-x86_64.s',
'asm/x64-macosx-gas/aes/bsaes-x86_64.s',
'asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s', 'asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s',
'asm/x64-macosx-gas/bn/modexp512-x86_64.s', 'asm/x64-macosx-gas/bn/modexp512-x86_64.s',
'asm/x64-macosx-gas/bn/x86_64-mont.s', 'asm/x64-macosx-gas/bn/x86_64-mont.s',
@ -806,6 +821,7 @@
'asm/x64-macosx-gas/sha/sha256-x86_64.s', 'asm/x64-macosx-gas/sha/sha256-x86_64.s',
'asm/x64-macosx-gas/sha/sha512-x86_64.s', 'asm/x64-macosx-gas/sha/sha512-x86_64.s',
'asm/x64-macosx-gas/whrlpool/wp-x86_64.s', 'asm/x64-macosx-gas/whrlpool/wp-x86_64.s',
'asm/x64-macosx-gas/modes/ghash-x86_64.s',
'asm/x64-macosx-gas/x86_64cpuid.s', 'asm/x64-macosx-gas/x86_64cpuid.s',
# Non-generated asm # Non-generated asm
'openssl/crypto/bn/asm/x86_64-gcc.c', 'openssl/crypto/bn/asm/x86_64-gcc.c',
@ -821,6 +837,7 @@
'sources': [ 'sources': [
'asm/x86-win32-masm/aes/aes-586.asm', 'asm/x86-win32-masm/aes/aes-586.asm',
'asm/x86-win32-masm/aes/aesni-x86.asm', 'asm/x86-win32-masm/aes/aesni-x86.asm',
'asm/x86-win32-masm/aes/vpaes-x86.asm',
'asm/x86-win32-masm/bf/bf-686.asm', 'asm/x86-win32-masm/bf/bf-686.asm',
'asm/x86-win32-masm/bn/x86-mont.asm', 'asm/x86-win32-masm/bn/x86-mont.asm',
'asm/x86-win32-masm/bn/x86.asm', 'asm/x86-win32-masm/bn/x86.asm',
@ -836,6 +853,7 @@
'asm/x86-win32-masm/sha/sha256-586.asm', 'asm/x86-win32-masm/sha/sha256-586.asm',
'asm/x86-win32-masm/sha/sha512-586.asm', 'asm/x86-win32-masm/sha/sha512-586.asm',
'asm/x86-win32-masm/whrlpool/wp-mmx.asm', 'asm/x86-win32-masm/whrlpool/wp-mmx.asm',
'asm/x86-win32-masm/modes/ghash-x86.asm',
'asm/x86-win32-masm/x86cpuid.asm', 'asm/x86-win32-masm/x86cpuid.asm',
'openssl/crypto/whrlpool/wp_block.c' 'openssl/crypto/whrlpool/wp_block.c'
], ],
@ -863,10 +881,14 @@
'defines': [ 'defines': [
'OPENSSL_BN_ASM_MONT5', 'OPENSSL_BN_ASM_MONT5',
'OPENSSL_BN_ASM_GF2m', 'OPENSSL_BN_ASM_GF2m',
'OPENSSL_IA32_SSE2',
'BSAES_ASM',
], ],
'sources': [ 'sources': [
'asm/x64-win32-masm/aes/aes-x86_64.asm', 'asm/x64-win32-masm/aes/aes-x86_64.asm',
'asm/x64-win32-masm/aes/aesni-x86_64.asm', 'asm/x64-win32-masm/aes/aesni-x86_64.asm',
'asm/x64-win32-masm/aes/vpaes-x86_64.asm',
'asm/x64-win32-masm/aes/bsaes-x86_64.asm',
'asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm', 'asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm',
'asm/x64-win32-masm/bn/modexp512-x86_64.asm', 'asm/x64-win32-masm/bn/modexp512-x86_64.asm',
'asm/x64-win32-masm/bn/x86_64-mont.asm', 'asm/x64-win32-masm/bn/x86_64-mont.asm',
@ -880,6 +902,7 @@
'asm/x64-win32-masm/sha/sha256-x86_64.asm', 'asm/x64-win32-masm/sha/sha256-x86_64.asm',
'asm/x64-win32-masm/sha/sha512-x86_64.asm', 'asm/x64-win32-masm/sha/sha512-x86_64.asm',
'asm/x64-win32-masm/whrlpool/wp-x86_64.asm', 'asm/x64-win32-masm/whrlpool/wp-x86_64.asm',
'asm/x64-win32-masm/modes/ghash-x86_64.asm',
'asm/x64-win32-masm/x86_64cpuid.asm', 'asm/x64-win32-masm/x86_64cpuid.asm',
# Non-generated asm # Non-generated asm
'openssl/crypto/bn/asm/x86_64-win32-masm.asm', 'openssl/crypto/bn/asm/x86_64-win32-masm.asm',

Loading…
Cancel
Save