Browse Source

openssl: regenerate asm files for openssl 1.0.1

v0.9.4-release
Bert Belder 12 years ago
parent
commit
5edbb53c45
  1. 6
      deps/openssl/asm/Makefile
  2. 25
      deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s
  3. 1402
      deps/openssl/asm/x64-elf-gas/aes/aesni-sha1-x86_64.s
  4. 2558
      deps/openssl/asm/x64-elf-gas/aes/aesni-x86_64.s
  5. 1776
      deps/openssl/asm/x64-elf-gas/bn/modexp512-x86_64.s
  6. 1311
      deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s
  7. 1260
      deps/openssl/asm/x64-elf-gas/rc4/rc4-md5-x86_64.s
  8. 734
      deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s
  9. 3531
      deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s
  10. 2150
      deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s
  11. 70
      deps/openssl/asm/x64-elf-gas/x86_64cpuid.s
  12. 17
      deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s
  13. 1402
      deps/openssl/asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s
  14. 2558
      deps/openssl/asm/x64-macosx-gas/aes/aesni-x86_64.s
  15. 1775
      deps/openssl/asm/x64-macosx-gas/bn/modexp512-x86_64.s
  16. 1309
      deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s
  17. 1
      deps/openssl/asm/x64-macosx-gas/md5/md5-x86_64.s
  18. 1259
      deps/openssl/asm/x64-macosx-gas/rc4/rc4-md5-x86_64.s
  19. 731
      deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s
  20. 3529
      deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s
  21. 2150
      deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s
  22. 69
      deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s
  23. 45
      deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm
  24. 1554
      deps/openssl/asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm
  25. 3062
      deps/openssl/asm/x64-win32-masm/aes/aesni-x86_64.asm
  26. 1890
      deps/openssl/asm/x64-win32-masm/bn/modexp512-x86_64.asm
  27. 1540
      deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm
  28. 4
      deps/openssl/asm/x64-win32-masm/camellia/cmll-x86_64.asm
  29. 280
      deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm
  30. 1375
      deps/openssl/asm/x64-win32-masm/rc4/rc4-md5-x86_64.asm
  31. 744
      deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm
  32. 3624
      deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
  33. 2254
      deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm
  34. 204
      deps/openssl/asm/x64-win32-masm/whrlpool/wp-x86_64.asm
  35. 72
      deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm
  36. 235
      deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm.orig
  37. 22
      deps/openssl/asm/x86-elf-gas/aes/aes-586.s
  38. 2143
      deps/openssl/asm/x86-elf-gas/aes/aesni-x86.s
  39. 10
      deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s
  40. 218
      deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s
  41. 1262
      deps/openssl/asm/x86-elf-gas/sha/sha1-586.s
  42. 65
      deps/openssl/asm/x86-elf-gas/sha/sha256-586.s
  43. 135
      deps/openssl/asm/x86-elf-gas/x86cpuid.s
  44. 24
      deps/openssl/asm/x86-macosx-gas/aes/aes-586.s
  45. 2107
      deps/openssl/asm/x86-macosx-gas/aes/aesni-x86.s
  46. 6
      deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s
  47. 13
      deps/openssl/asm/x86-macosx-gas/des/crypt586.s
  48. 231
      deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s
  49. 1262
      deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s
  50. 65
      deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s
  51. 149
      deps/openssl/asm/x86-macosx-gas/x86cpuid.s
  52. 14
      deps/openssl/asm/x86-win32-masm/aes/aes-586.asm
  53. 2133
      deps/openssl/asm/x86-win32-masm/aes/aesni-x86.asm
  54. 2
      deps/openssl/asm/x86-win32-masm/bf/bf-686.asm
  55. 2
      deps/openssl/asm/x86-win32-masm/bn/x86-mont.asm
  56. 2
      deps/openssl/asm/x86-win32-masm/bn/x86.asm
  57. 8
      deps/openssl/asm/x86-win32-masm/camellia/cmll-x86.asm
  58. 2
      deps/openssl/asm/x86-win32-masm/cast/cast-586.asm
  59. 2
      deps/openssl/asm/x86-win32-masm/des/crypt586.asm
  60. 2
      deps/openssl/asm/x86-win32-masm/des/des-586.asm
  61. 2
      deps/openssl/asm/x86-win32-masm/md5/md5-586.asm
  62. 225
      deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
  63. 2
      deps/openssl/asm/x86-win32-masm/rc5/rc5-586.asm
  64. 2
      deps/openssl/asm/x86-win32-masm/ripemd/rmd-586.asm
  65. 1264
      deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm
  66. 67
      deps/openssl/asm/x86-win32-masm/sha/sha256-586.asm
  67. 2
      deps/openssl/asm/x86-win32-masm/sha/sha512-586.asm
  68. 132
      deps/openssl/asm/x86-win32-masm/x86cpuid.asm

6
deps/openssl/asm/Makefile

@ -28,6 +28,7 @@ OUTPUTS = \
x64-elf-gas/camellia/cmll-x86_64.s \
x64-elf-gas/md5/md5-x86_64.s \
x64-elf-gas/rc4/rc4-x86_64.s \
x64-elf-gas/rc4/rc4-md5-x86_64.s \
x64-elf-gas/sha/sha1-x86_64.s \
x64-elf-gas/sha/sha512-x86_64.s \
x64-elf-gas/whrlpool/wp-x86_64.s \
@ -58,6 +59,7 @@ OUTPUTS = \
x64-macosx-gas/camellia/cmll-x86_64.s \
x64-macosx-gas/md5/md5-x86_64.s \
x64-macosx-gas/rc4/rc4-x86_64.s \
x64-macosx-gas/rc4/rc4-md5-x86_64.s \
x64-macosx-gas/sha/sha1-x86_64.s \
x64-macosx-gas/sha/sha512-x86_64.s \
x64-macosx-gas/whrlpool/wp-x86_64.s \
@ -88,6 +90,7 @@ OUTPUTS = \
x64-win32-masm/camellia/cmll-x86_64.asm \
x64-win32-masm/md5/md5-x86_64.asm \
x64-win32-masm/rc4/rc4-x86_64.asm \
x64-win32-masm/rc4/rc4-md5-x86_64.asm \
x64-win32-masm/sha/sha1-x86_64.asm \
x64-win32-masm/sha/sha512-x86_64.asm \
x64-win32-masm/whrlpool/wp-x86_64.asm \
@ -122,6 +125,7 @@ x64-elf-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl
x64-elf-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl
x64-elf-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl
x64-elf-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl
x64-elf-gas/rc4/rc4-md5-x86_64.s: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
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/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
@ -134,6 +138,7 @@ x64-macosx-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl
x64-macosx-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl
x64-macosx-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl
x64-macosx-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl
x64-macosx-gas/rc4/rc4-md5-x86_64.s: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
x64-macosx-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-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
@ -146,6 +151,7 @@ x64-win32-masm/bn/x86_64-mont.asm: ../openssl/crypto/bn/asm/x86_64-mont.pl
x64-win32-masm/camellia/cmll-x86_64.asm: ../openssl/crypto/camellia/asm/cmll-x86_64.pl
x64-win32-masm/md5/md5-x86_64.asm: ../openssl/crypto/md5/asm/md5-x86_64.pl
x64-win32-masm/rc4/rc4-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-x86_64.pl
x64-win32-masm/rc4/rc4-md5-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
x64-win32-masm/sha/sha1-x86_64.asm: ../openssl/crypto/sha/asm/sha1-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

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

@ -333,6 +333,9 @@ _x86_64_AES_encrypt_compact:
.globl AES_encrypt
.type AES_encrypt,@function
.align 16
.globl asm_AES_encrypt
.hidden asm_AES_encrypt
asm_AES_encrypt:
AES_encrypt:
pushq %rbx
pushq %rbp
@ -780,6 +783,9 @@ _x86_64_AES_decrypt_compact:
.globl AES_decrypt
.type AES_decrypt,@function
.align 16
.globl asm_AES_decrypt
.hidden asm_AES_decrypt
asm_AES_decrypt:
AES_decrypt:
pushq %rbx
pushq %rbp
@ -843,10 +849,10 @@ AES_decrypt:
.Ldec_epilogue:
.byte 0xf3,0xc3
.size AES_decrypt,.-AES_decrypt
.globl AES_set_encrypt_key
.type AES_set_encrypt_key,@function
.globl private_AES_set_encrypt_key
.type private_AES_set_encrypt_key,@function
.align 16
AES_set_encrypt_key:
private_AES_set_encrypt_key:
pushq %rbx
pushq %rbp
pushq %r12
@ -867,7 +873,7 @@ AES_set_encrypt_key:
addq $56,%rsp
.Lenc_key_epilogue:
.byte 0xf3,0xc3
.size AES_set_encrypt_key,.-AES_set_encrypt_key
.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key
.type _x86_64_AES_set_encrypt_key,@function
.align 16
@ -1109,10 +1115,10 @@ _x86_64_AES_set_encrypt_key:
.byte 0xf3,0xc3
.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
.globl AES_set_decrypt_key
.type AES_set_decrypt_key,@function
.globl private_AES_set_decrypt_key
.type private_AES_set_decrypt_key,@function
.align 16
AES_set_decrypt_key:
private_AES_set_decrypt_key:
pushq %rbx
pushq %rbp
pushq %r12
@ -1295,11 +1301,14 @@ AES_set_decrypt_key:
addq $56,%rsp
.Ldec_key_epilogue:
.byte 0xf3,0xc3
.size AES_set_decrypt_key,.-AES_set_decrypt_key
.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key
.globl AES_cbc_encrypt
.type AES_cbc_encrypt,@function
.align 16
.globl asm_AES_cbc_encrypt
.hidden asm_AES_cbc_encrypt
asm_AES_cbc_encrypt:
AES_cbc_encrypt:
cmpq $0,%rdx
je .Lcbc_epilogue

1402
deps/openssl/asm/x64-elf-gas/aes/aesni-sha1-x86_64.s

File diff suppressed because it is too large

2558
deps/openssl/asm/x64-elf-gas/aes/aesni-x86_64.s

File diff suppressed because it is too large

1776
deps/openssl/asm/x64-elf-gas/bn/modexp512-x86_64.s

File diff suppressed because it is too large

1311
deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s

File diff suppressed because it is too large

1260
deps/openssl/asm/x64-elf-gas/rc4/rc4-md5-x86_64.s

File diff suppressed because it is too large

734
deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s

@ -1,6 +1,7 @@
.text
.globl RC4
.type RC4,@function
.align 16
@ -12,316 +13,511 @@ RC4: orq %rsi,%rsi
pushq %r12
pushq %r13
.Lprologue:
movq %rsi,%r11
movq %rdx,%r12
movq %rcx,%r13
xorq %r10,%r10
xorq %rcx,%rcx
addq $8,%rdi
movl -8(%rdi),%r8d
movl -4(%rdi),%r12d
leaq 8(%rdi),%rdi
movb -8(%rdi),%r10b
movb -4(%rdi),%cl
cmpl $-1,256(%rdi)
je .LRC4_CHAR
incb %r8b
movl (%rdi,%r8,4),%r9d
testq $-8,%rsi
jz .Lloop1
jmp .Lloop8
.align 16
.Lloop8:
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
movl OPENSSL_ia32cap_P(%rip),%r8d
xorq %rbx,%rbx
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
subq %r10,%rbx
subq %r12,%r13
movl (%rdi,%r10,4),%eax
testq $-16,%r11
jz .Lloop1
btl $30,%r8d
jc .Lintel
andq $7,%rbx
leaq 1(%r10),%rsi
jz .Loop8
subq %rbx,%r11
.Loop8_warmup:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl %edx,(%rdi,%r10,4)
addb %dl,%al
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
movl (%rdi,%rax,4),%edx
movl (%rdi,%r10,4),%eax
xorb (%r12),%dl
movb %dl,(%r13,%r12,1)
leaq 1(%r12),%r12
decq %rbx
jnz .Loop8_warmup
leaq 1(%r10),%rsi
jmp .Loop8
.align 16
.Loop8:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 0(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,0(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl 4(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,4(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 8(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,8(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl 12(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,12(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 16(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,16(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl 20(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,20(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 24(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,24(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb $8,%sil
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl -4(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,28(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb $8,%r10b
rorq $8,%r8
subq $8,%r11
xorq (%r12),%r8
movq %r8,(%r13,%r12,1)
leaq 8(%r12),%r12
testq $-8,%r11
jnz .Loop8
cmpq $0,%r11
jne .Lloop1
jmp .Lexit
.align 16
.Lintel:
testq $-32,%r11
jz .Lloop1
andq $15,%rbx
jz .Loop16_is_hot
subq %rbx,%r11
.Loop16_warmup:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl %edx,(%rdi,%r10,4)
addb %dl,%al
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
rorq $8,%rax
subq $8,%rsi
xorq (%rdx),%rax
addq $8,%rdx
movq %rax,(%rcx)
addq $8,%rcx
testq $-8,%rsi
jnz .Lloop8
cmpq $0,%rsi
movl (%rdi,%rax,4),%edx
movl (%rdi,%r10,4),%eax
xorb (%r12),%dl
movb %dl,(%r13,%r12,1)
leaq 1(%r12),%r12
decq %rbx
jnz .Loop16_warmup
movq %rcx,%rbx
xorq %rcx,%rcx
movb %bl,%cl
.Loop16_is_hot:
leaq (%rdi,%r10,4),%rsi
addb %al,%cl
movl (%rdi,%rcx,4),%edx
pxor %xmm0,%xmm0
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 4(%rsi),%ebx
movzbl %al,%eax
movl %edx,0(%rsi)
addb %bl,%cl
pinsrw $0,(%rdi,%rax,4),%xmm0
jmp .Loop16_enter
.align 16
.Loop16:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
pxor %xmm0,%xmm2
psllq $8,%xmm1
pxor %xmm0,%xmm0
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 4(%rsi),%ebx
movzbl %al,%eax
movl %edx,0(%rsi)
pxor %xmm1,%xmm2
addb %bl,%cl
pinsrw $0,(%rdi,%rax,4),%xmm0
movdqu %xmm2,(%r13,%r12,1)
leaq 16(%r12),%r12
.Loop16_enter:
movl (%rdi,%rcx,4),%edx
pxor %xmm1,%xmm1
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 8(%rsi),%eax
movzbl %bl,%ebx
movl %edx,4(%rsi)
addb %al,%cl
pinsrw $0,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 12(%rsi),%ebx
movzbl %al,%eax
movl %edx,8(%rsi)
addb %bl,%cl
pinsrw $1,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 16(%rsi),%eax
movzbl %bl,%ebx
movl %edx,12(%rsi)
addb %al,%cl
pinsrw $1,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 20(%rsi),%ebx
movzbl %al,%eax
movl %edx,16(%rsi)
addb %bl,%cl
pinsrw $2,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 24(%rsi),%eax
movzbl %bl,%ebx
movl %edx,20(%rsi)
addb %al,%cl
pinsrw $2,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 28(%rsi),%ebx
movzbl %al,%eax
movl %edx,24(%rsi)
addb %bl,%cl
pinsrw $3,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 32(%rsi),%eax
movzbl %bl,%ebx
movl %edx,28(%rsi)
addb %al,%cl
pinsrw $3,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 36(%rsi),%ebx
movzbl %al,%eax
movl %edx,32(%rsi)
addb %bl,%cl
pinsrw $4,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 40(%rsi),%eax
movzbl %bl,%ebx
movl %edx,36(%rsi)
addb %al,%cl
pinsrw $4,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 44(%rsi),%ebx
movzbl %al,%eax
movl %edx,40(%rsi)
addb %bl,%cl
pinsrw $5,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 48(%rsi),%eax
movzbl %bl,%ebx
movl %edx,44(%rsi)
addb %al,%cl
pinsrw $5,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 52(%rsi),%ebx
movzbl %al,%eax
movl %edx,48(%rsi)
addb %bl,%cl
pinsrw $6,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 56(%rsi),%eax
movzbl %bl,%ebx
movl %edx,52(%rsi)
addb %al,%cl
pinsrw $6,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 60(%rsi),%ebx
movzbl %al,%eax
movl %edx,56(%rsi)
addb %bl,%cl
pinsrw $7,(%rdi,%rax,4),%xmm0
addb $16,%r10b
movdqu (%r12),%xmm2
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movzbl %bl,%ebx
movl %edx,60(%rsi)
leaq (%rdi,%r10,4),%rsi
pinsrw $7,(%rdi,%rbx,4),%xmm1
movl (%rsi),%eax
movq %rcx,%rbx
xorq %rcx,%rcx
subq $16,%r11
movb %bl,%cl
testq $-16,%r11
jnz .Loop16
psllq $8,%xmm1
pxor %xmm0,%xmm2
pxor %xmm1,%xmm2
movdqu %xmm2,(%r13,%r12,1)
leaq 16(%r12),%r12
cmpq $0,%r11
jne .Lloop1
jmp .Lexit
.align 16
.Lloop1:
addb %r9b,%r12b
movl (%rdi,%r12,4),%r13d
movl %r9d,(%rdi,%r12,4)
movl %r13d,(%rdi,%r8,4)
addb %r13b,%r9b
incb %r8b
movl (%rdi,%r9,4),%r13d
movl (%rdi,%r8,4),%r9d
xorb (%rdx),%r13b
incq %rdx
movb %r13b,(%rcx)
incq %rcx
decq %rsi
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl %edx,(%rdi,%r10,4)
addb %dl,%al
incb %r10b
movl (%rdi,%rax,4),%edx
movl (%rdi,%r10,4),%eax
xorb (%r12),%dl
movb %dl,(%r13,%r12,1)
leaq 1(%r12),%r12
decq %r11
jnz .Lloop1
jmp .Lexit
.align 16
.LRC4_CHAR:
addb $1,%r8b
movzbl (%rdi,%r8,1),%r9d
testq $-8,%rsi
addb $1,%r10b
movzbl (%rdi,%r10,1),%eax
testq $-8,%r11
jz .Lcloop1
cmpl $0,260(%rdi)
jnz .Lcloop1
jmp .Lcloop8
.align 16
.Lcloop8:
movl (%rdx),%eax
movl 4(%rdx),%ebx
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
movl (%r12),%r8d
movl 4(%r12),%r9d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne .Lcmov0
movq %r9,%r11
movq %rax,%rbx
.Lcmov0:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne .Lcmov1
movq %r11,%r9
movq %rbx,%rax
.Lcmov1:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
addb %bl,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne .Lcmov2
movq %r9,%r11
movq %rax,%rbx
.Lcmov2:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne .Lcmov3
movq %r11,%r9
movq %rbx,%rax
.Lcmov3:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
addb %bl,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne .Lcmov4
movq %r9,%r11
movq %rax,%rbx
.Lcmov4:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne .Lcmov5
movq %r11,%r9
movq %rbx,%rax
.Lcmov5:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
addb %bl,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne .Lcmov6
movq %r9,%r11
movq %rax,%rbx
.Lcmov6:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne .Lcmov7
movq %r11,%r9
movq %rbx,%rax
.Lcmov7:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
leaq -8(%rsi),%rsi
movl %eax,(%rcx)
leaq 8(%rdx),%rdx
movl %ebx,4(%rcx)
leaq 8(%rcx),%rcx
testq $-8,%rsi
addb %bl,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
leaq -8(%r11),%r11
movl %r8d,(%r13)
leaq 8(%r12),%r12
movl %r9d,4(%r13)
leaq 8(%r13),%r13
testq $-8,%r11
jnz .Lcloop8
cmpq $0,%rsi
cmpq $0,%r11
jne .Lcloop1
jmp .Lexit
.align 16
.Lcloop1:
addb %r9b,%r12b
movzbl (%rdi,%r12,1),%r13d
movb %r9b,(%rdi,%r12,1)
movb %r13b,(%rdi,%r8,1)
addb %r9b,%r13b
addb $1,%r8b
movzbl %r13b,%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r13,1),%r13d
movzbl (%rdi,%r8,1),%r9d
xorb (%rdx),%r13b
leaq 1(%rdx),%rdx
movb %r13b,(%rcx)
leaq 1(%rcx),%rcx
subq $1,%rsi
addb %al,%cl
movzbl %cl,%ecx
movzbl (%rdi,%rcx,1),%edx
movb %al,(%rdi,%rcx,1)
movb %dl,(%rdi,%r10,1)
addb %al,%dl
addb $1,%r10b
movzbl %dl,%edx
movzbl %r10b,%r10d
movzbl (%rdi,%rdx,1),%edx
movzbl (%rdi,%r10,1),%eax
xorb (%r12),%dl
leaq 1(%r12),%r12
movb %dl,(%r13)
leaq 1(%r13),%r13
subq $1,%r11
jnz .Lcloop1
jmp .Lexit
.align 16
.Lexit:
subb $1,%r8b
movl %r8d,-8(%rdi)
movl %r12d,-4(%rdi)
subb $1,%r10b
movl %r10d,-8(%rdi)
movl %ecx,-4(%rdi)
movq (%rsp),%r13
movq 8(%rsp),%r12
@ -330,11 +526,10 @@ RC4: orq %rsi,%rsi
.Lepilogue:
.byte 0xf3,0xc3
.size RC4,.-RC4
.globl RC4_set_key
.type RC4_set_key,@function
.globl private_RC4_set_key
.type private_RC4_set_key,@function
.align 16
RC4_set_key:
private_RC4_set_key:
leaq 8(%rdi),%rdi
leaq (%rdx,%rsi,1),%rdx
negq %rsi
@ -346,11 +541,8 @@ RC4_set_key:
movl OPENSSL_ia32cap_P(%rip),%r8d
btl $20,%r8d
jnc .Lw1stloop
btl $30,%r8d
setc %r9b
movl %r9d,260(%rdi)
jmp .Lc1stloop
jc .Lc1stloop
jmp .Lw1stloop
.align 16
.Lw1stloop:
@ -404,7 +596,7 @@ RC4_set_key:
movl %eax,-8(%rdi)
movl %eax,-4(%rdi)
.byte 0xf3,0xc3
.size RC4_set_key,.-RC4_set_key
.size private_RC4_set_key,.-private_RC4_set_key
.globl RC4_options
.type RC4_options,@function
@ -413,18 +605,20 @@ RC4_options:
leaq .Lopts(%rip),%rax
movl OPENSSL_ia32cap_P(%rip),%edx
btl $20,%edx
jnc .Ldone
addq $12,%rax
jc .L8xchar
btl $30,%edx
jnc .Ldone
addq $13,%rax
addq $25,%rax
.byte 0xf3,0xc3
.L8xchar:
addq $12,%rax
.Ldone:
.byte 0xf3,0xc3
.align 64
.Lopts:
.byte 114,99,52,40,56,120,44,105,110,116,41,0
.byte 114,99,52,40,56,120,44,99,104,97,114,41,0
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
.byte 114,99,52,40,49,54,120,44,105,110,116,41,0
.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
.size RC4_options,.-RC4_options

3531
deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s

File diff suppressed because it is too large

2150
deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s

File diff suppressed because it is too large

70
deps/openssl/asm/x64-elf-gas/x86_64cpuid.s

@ -1,7 +1,11 @@
.hidden OPENSSL_cpuid_setup
.section .init
call OPENSSL_cpuid_setup
.hidden OPENSSL_ia32cap_P
.comm OPENSSL_ia32cap_P,8,4
.text
@ -67,7 +71,15 @@ OPENSSL_ia32_cpuid:
movl $2147483648,%eax
cpuid
cmpl $2147483656,%eax
cmpl $2147483649,%eax
jb .Lintel
movl %eax,%r10d
movl $2147483649,%eax
cpuid
orl %ecx,%r9d
andl $2049,%r9d
cmpl $2147483656,%r10d
jb .Lintel
movl $2147483656,%eax
@ -78,12 +90,12 @@ OPENSSL_ia32_cpuid:
movl $1,%eax
cpuid
btl $28,%edx
jnc .Ldone
jnc .Lgeneric
shrl $16,%ebx
cmpb %r10b,%bl
ja .Ldone
ja .Lgeneric
andl $4026531839,%edx
jmp .Ldone
jmp .Lgeneric
.Lintel:
cmpl $4,%r11d
@ -100,30 +112,48 @@ OPENSSL_ia32_cpuid:
.Lnocacheinfo:
movl $1,%eax
cpuid
andl $3220176895,%edx
cmpl $0,%r9d
jne .Lnotintel
orl $1048576,%edx
orl $1073741824,%edx
andb $15,%ah
cmpb $15,%ah
je .Lnotintel
orl $1073741824,%edx
jne .Lnotintel
orl $1048576,%edx
.Lnotintel:
btl $28,%edx
jnc .Ldone
jnc .Lgeneric
andl $4026531839,%edx
cmpl $0,%r10d
je .Ldone
je .Lgeneric
orl $268435456,%edx
shrl $16,%ebx
cmpb $1,%bl
ja .Ldone
ja .Lgeneric
andl $4026531839,%edx
.Lgeneric:
andl $2048,%r9d
andl $4294965247,%ecx
orl %ecx,%r9d
movl %edx,%r10d
btl $27,%r9d
jnc .Lclear_avx
xorl %ecx,%ecx
.byte 0x0f,0x01,0xd0
andl $6,%eax
cmpl $6,%eax
je .Ldone
.Lclear_avx:
movl $4026525695,%eax
andl %eax,%r9d
.Ldone:
shlq $32,%rcx
movl %edx,%eax
shlq $32,%r9
movl %r10d,%eax
movq %r8,%rbx
orq %rcx,%rax
orq %r9,%rax
.byte 0xf3,0xc3
.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
@ -192,3 +222,17 @@ OPENSSL_wipe_cpu:
leaq 8(%rsp),%rax
.byte 0xf3,0xc3
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
.globl OPENSSL_ia32_rdrand
.type OPENSSL_ia32_rdrand,@function
.align 16
OPENSSL_ia32_rdrand:
movl $8,%ecx
.Loop_rdrand:
.byte 72,15,199,240
jc .Lbreak_rdrand
loop .Loop_rdrand
.Lbreak_rdrand:
cmpq $0,%rax
cmoveq %rcx,%rax
.byte 0xf3,0xc3
.size OPENSSL_ia32_rdrand,.-OPENSSL_ia32_rdrand

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

@ -333,6 +333,9 @@ L$enc_compact_done:
.globl _AES_encrypt
.p2align 4
.globl _asm_AES_encrypt
.private_extern _asm_AES_encrypt
_asm_AES_encrypt:
_AES_encrypt:
pushq %rbx
pushq %rbp
@ -780,6 +783,9 @@ L$dec_compact_done:
.globl _AES_decrypt
.p2align 4
.globl _asm_AES_decrypt
.private_extern _asm_AES_decrypt
_asm_AES_decrypt:
_AES_decrypt:
pushq %rbx
pushq %rbp
@ -843,10 +849,10 @@ L$dec_prologue:
L$dec_epilogue:
.byte 0xf3,0xc3
.globl _AES_set_encrypt_key
.globl _private_AES_set_encrypt_key
.p2align 4
_AES_set_encrypt_key:
_private_AES_set_encrypt_key:
pushq %rbx
pushq %rbp
pushq %r12
@ -1109,10 +1115,10 @@ L$exit:
.byte 0xf3,0xc3
.globl _AES_set_decrypt_key
.globl _private_AES_set_decrypt_key
.p2align 4
_AES_set_decrypt_key:
_private_AES_set_decrypt_key:
pushq %rbx
pushq %rbp
pushq %r12
@ -1300,6 +1306,9 @@ L$dec_key_epilogue:
.p2align 4
.globl _asm_AES_cbc_encrypt
.private_extern _asm_AES_cbc_encrypt
_asm_AES_cbc_encrypt:
_AES_cbc_encrypt:
cmpq $0,%rdx
je L$cbc_epilogue

1402
deps/openssl/asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s

File diff suppressed because it is too large

2558
deps/openssl/asm/x64-macosx-gas/aes/aesni-x86_64.s

File diff suppressed because it is too large

1775
deps/openssl/asm/x64-macosx-gas/bn/modexp512-x86_64.s

File diff suppressed because it is too large

1309
deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s

File diff suppressed because it is too large

1
deps/openssl/asm/x64-macosx-gas/md5/md5-x86_64.s

@ -668,4 +668,3 @@ L$end:
addq $40,%rsp
L$epilogue:
.byte 0xf3,0xc3

1259
deps/openssl/asm/x64-macosx-gas/rc4/rc4-md5-x86_64.s

File diff suppressed because it is too large

731
deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s

@ -1,6 +1,7 @@
.text
.globl _RC4
.p2align 4
@ -12,316 +13,511 @@ L$entry:
pushq %r12
pushq %r13
L$prologue:
movq %rsi,%r11
movq %rdx,%r12
movq %rcx,%r13
xorq %r10,%r10
xorq %rcx,%rcx
addq $8,%rdi
movl -8(%rdi),%r8d
movl -4(%rdi),%r12d
leaq 8(%rdi),%rdi
movb -8(%rdi),%r10b
movb -4(%rdi),%cl
cmpl $-1,256(%rdi)
je L$RC4_CHAR
incb %r8b
movl (%rdi,%r8,4),%r9d
testq $-8,%rsi
jz L$loop1
jmp L$loop8
.p2align 4
L$loop8:
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
movl _OPENSSL_ia32cap_P(%rip),%r8d
xorq %rbx,%rbx
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
subq %r10,%rbx
subq %r12,%r13
movl (%rdi,%r10,4),%eax
testq $-16,%r11
jz L$loop1
btl $30,%r8d
jc L$intel
andq $7,%rbx
leaq 1(%r10),%rsi
jz L$oop8
subq %rbx,%r11
L$oop8_warmup:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl %edx,(%rdi,%r10,4)
addb %dl,%al
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
addb %r9b,%r12b
movq %r8,%r10
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
movl (%rdi,%rax,4),%edx
movl (%rdi,%r10,4),%eax
xorb (%r12),%dl
movb %dl,(%r13,%r12,1)
leaq 1(%r12),%r12
decq %rbx
jnz L$oop8_warmup
leaq 1(%r10),%rsi
jmp L$oop8
.p2align 4
L$oop8:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 0(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,0(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl 4(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,4(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 8(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,8(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl 12(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,12(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 16(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,16(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl 20(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,20(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl 24(%rdi,%rsi,4),%ebx
rorq $8,%r8
movl %edx,24(%rdi,%r10,4)
addb %al,%dl
movb (%rdi,%rdx,4),%r8b
addb $8,%sil
addb %bl,%cl
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
movl -4(%rdi,%rsi,4),%eax
rorq $8,%r8
movl %edx,28(%rdi,%r10,4)
addb %bl,%dl
movb (%rdi,%rdx,4),%r8b
addb $8,%r10b
rorq $8,%r8
subq $8,%r11
xorq (%r12),%r8
movq %r8,(%r13,%r12,1)
leaq 8(%r12),%r12
testq $-8,%r11
jnz L$oop8
cmpq $0,%r11
jne L$loop1
jmp L$exit
.p2align 4
L$intel:
testq $-32,%r11
jz L$loop1
andq $15,%rbx
jz L$oop16_is_hot
subq %rbx,%r11
L$oop16_warmup:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl %edx,(%rdi,%r10,4)
addb %dl,%al
incb %r10b
movl (%rdi,%r10,4),%r11d
cmpq %r10,%r12
movl %r9d,(%rdi,%r12,4)
cmoveq %r9,%r11
movl %r13d,(%rdi,%r8,4)
addb %r9b,%r13b
movb (%rdi,%r13,4),%al
addb %r11b,%r12b
movq %r10,%r8
movl (%rdi,%r12,4),%r13d
rorq $8,%rax
incb %r8b
movl (%rdi,%r8,4),%r9d
cmpq %r8,%r12
movl %r11d,(%rdi,%r12,4)
cmoveq %r11,%r9
movl %r13d,(%rdi,%r10,4)
addb %r11b,%r13b
movb (%rdi,%r13,4),%al
rorq $8,%rax
subq $8,%rsi
xorq (%rdx),%rax
addq $8,%rdx
movq %rax,(%rcx)
addq $8,%rcx
testq $-8,%rsi
jnz L$loop8
cmpq $0,%rsi
movl (%rdi,%rax,4),%edx
movl (%rdi,%r10,4),%eax
xorb (%r12),%dl
movb %dl,(%r13,%r12,1)
leaq 1(%r12),%r12
decq %rbx
jnz L$oop16_warmup
movq %rcx,%rbx
xorq %rcx,%rcx
movb %bl,%cl
L$oop16_is_hot:
leaq (%rdi,%r10,4),%rsi
addb %al,%cl
movl (%rdi,%rcx,4),%edx
pxor %xmm0,%xmm0
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 4(%rsi),%ebx
movzbl %al,%eax
movl %edx,0(%rsi)
addb %bl,%cl
pinsrw $0,(%rdi,%rax,4),%xmm0
jmp L$oop16_enter
.p2align 4
L$oop16:
addb %al,%cl
movl (%rdi,%rcx,4),%edx
pxor %xmm0,%xmm2
psllq $8,%xmm1
pxor %xmm0,%xmm0
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 4(%rsi),%ebx
movzbl %al,%eax
movl %edx,0(%rsi)
pxor %xmm1,%xmm2
addb %bl,%cl
pinsrw $0,(%rdi,%rax,4),%xmm0
movdqu %xmm2,(%r13,%r12,1)
leaq 16(%r12),%r12
L$oop16_enter:
movl (%rdi,%rcx,4),%edx
pxor %xmm1,%xmm1
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 8(%rsi),%eax
movzbl %bl,%ebx
movl %edx,4(%rsi)
addb %al,%cl
pinsrw $0,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 12(%rsi),%ebx
movzbl %al,%eax
movl %edx,8(%rsi)
addb %bl,%cl
pinsrw $1,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 16(%rsi),%eax
movzbl %bl,%ebx
movl %edx,12(%rsi)
addb %al,%cl
pinsrw $1,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 20(%rsi),%ebx
movzbl %al,%eax
movl %edx,16(%rsi)
addb %bl,%cl
pinsrw $2,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 24(%rsi),%eax
movzbl %bl,%ebx
movl %edx,20(%rsi)
addb %al,%cl
pinsrw $2,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 28(%rsi),%ebx
movzbl %al,%eax
movl %edx,24(%rsi)
addb %bl,%cl
pinsrw $3,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 32(%rsi),%eax
movzbl %bl,%ebx
movl %edx,28(%rsi)
addb %al,%cl
pinsrw $3,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 36(%rsi),%ebx
movzbl %al,%eax
movl %edx,32(%rsi)
addb %bl,%cl
pinsrw $4,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 40(%rsi),%eax
movzbl %bl,%ebx
movl %edx,36(%rsi)
addb %al,%cl
pinsrw $4,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 44(%rsi),%ebx
movzbl %al,%eax
movl %edx,40(%rsi)
addb %bl,%cl
pinsrw $5,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 48(%rsi),%eax
movzbl %bl,%ebx
movl %edx,44(%rsi)
addb %al,%cl
pinsrw $5,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 52(%rsi),%ebx
movzbl %al,%eax
movl %edx,48(%rsi)
addb %bl,%cl
pinsrw $6,(%rdi,%rax,4),%xmm0
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movl 56(%rsi),%eax
movzbl %bl,%ebx
movl %edx,52(%rsi)
addb %al,%cl
pinsrw $6,(%rdi,%rbx,4),%xmm1
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
addb %dl,%al
movl 60(%rsi),%ebx
movzbl %al,%eax
movl %edx,56(%rsi)
addb %bl,%cl
pinsrw $7,(%rdi,%rax,4),%xmm0
addb $16,%r10b
movdqu (%r12),%xmm2
movl (%rdi,%rcx,4),%edx
movl %ebx,(%rdi,%rcx,4)
addb %dl,%bl
movzbl %bl,%ebx
movl %edx,60(%rsi)
leaq (%rdi,%r10,4),%rsi
pinsrw $7,(%rdi,%rbx,4),%xmm1
movl (%rsi),%eax
movq %rcx,%rbx
xorq %rcx,%rcx
subq $16,%r11
movb %bl,%cl
testq $-16,%r11
jnz L$oop16
psllq $8,%xmm1
pxor %xmm0,%xmm2
pxor %xmm1,%xmm2
movdqu %xmm2,(%r13,%r12,1)
leaq 16(%r12),%r12
cmpq $0,%r11
jne L$loop1
jmp L$exit
.p2align 4
L$loop1:
addb %r9b,%r12b
movl (%rdi,%r12,4),%r13d
movl %r9d,(%rdi,%r12,4)
movl %r13d,(%rdi,%r8,4)
addb %r13b,%r9b
incb %r8b
movl (%rdi,%r9,4),%r13d
movl (%rdi,%r8,4),%r9d
xorb (%rdx),%r13b
incq %rdx
movb %r13b,(%rcx)
incq %rcx
decq %rsi
addb %al,%cl
movl (%rdi,%rcx,4),%edx
movl %eax,(%rdi,%rcx,4)
movl %edx,(%rdi,%r10,4)
addb %dl,%al
incb %r10b
movl (%rdi,%rax,4),%edx
movl (%rdi,%r10,4),%eax
xorb (%r12),%dl
movb %dl,(%r13,%r12,1)
leaq 1(%r12),%r12
decq %r11
jnz L$loop1
jmp L$exit
.p2align 4
L$RC4_CHAR:
addb $1,%r8b
movzbl (%rdi,%r8,1),%r9d
testq $-8,%rsi
addb $1,%r10b
movzbl (%rdi,%r10,1),%eax
testq $-8,%r11
jz L$cloop1
cmpl $0,260(%rdi)
jnz L$cloop1
jmp L$cloop8
.p2align 4
L$cloop8:
movl (%rdx),%eax
movl 4(%rdx),%ebx
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
movl (%r12),%r8d
movl 4(%r12),%r9d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne L$cmov0
movq %r9,%r11
movq %rax,%rbx
L$cmov0:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne L$cmov1
movq %r11,%r9
movq %rbx,%rax
L$cmov1:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
addb %bl,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne L$cmov2
movq %r9,%r11
movq %rax,%rbx
L$cmov2:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne L$cmov3
movq %r11,%r9
movq %rbx,%rax
L$cmov3:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%al
rorl $8,%eax
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
addb %bl,%dl
xorb (%rdi,%rdx,1),%r8b
rorl $8,%r8d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne L$cmov4
movq %r9,%r11
movq %rax,%rbx
L$cmov4:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne L$cmov5
movq %r11,%r9
movq %rbx,%rax
L$cmov5:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
addb %r9b,%r12b
leaq 1(%r8),%r10
movzbl (%rdi,%r12,1),%r13d
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%r11d
movb %r9b,(%rdi,%r12,1)
cmpq %r10,%r12
movb %r13b,(%rdi,%r8,1)
addb %bl,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
addb %al,%cl
leaq 1(%r10),%rsi
movzbl (%rdi,%rcx,1),%edx
movzbl %sil,%esi
movzbl (%rdi,%rsi,1),%ebx
movb %al,(%rdi,%rcx,1)
cmpq %rsi,%rcx
movb %dl,(%rdi,%r10,1)
jne L$cmov6
movq %r9,%r11
movq %rax,%rbx
L$cmov6:
addb %r9b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
addb %r11b,%r12b
leaq 1(%r10),%r8
movzbl (%rdi,%r12,1),%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r8,1),%r9d
movb %r11b,(%rdi,%r12,1)
cmpq %r8,%r12
movb %r13b,(%rdi,%r10,1)
addb %al,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
addb %bl,%cl
leaq 1(%rsi),%r10
movzbl (%rdi,%rcx,1),%edx
movzbl %r10b,%r10d
movzbl (%rdi,%r10,1),%eax
movb %bl,(%rdi,%rcx,1)
cmpq %r10,%rcx
movb %dl,(%rdi,%rsi,1)
jne L$cmov7
movq %r11,%r9
movq %rbx,%rax
L$cmov7:
addb %r11b,%r13b
xorb (%rdi,%r13,1),%bl
rorl $8,%ebx
leaq -8(%rsi),%rsi
movl %eax,(%rcx)
leaq 8(%rdx),%rdx
movl %ebx,4(%rcx)
leaq 8(%rcx),%rcx
testq $-8,%rsi
addb %bl,%dl
xorb (%rdi,%rdx,1),%r9b
rorl $8,%r9d
leaq -8(%r11),%r11
movl %r8d,(%r13)
leaq 8(%r12),%r12
movl %r9d,4(%r13)
leaq 8(%r13),%r13
testq $-8,%r11
jnz L$cloop8
cmpq $0,%rsi
cmpq $0,%r11
jne L$cloop1
jmp L$exit
.p2align 4
L$cloop1:
addb %r9b,%r12b
movzbl (%rdi,%r12,1),%r13d
movb %r9b,(%rdi,%r12,1)
movb %r13b,(%rdi,%r8,1)
addb %r9b,%r13b
addb $1,%r8b
movzbl %r13b,%r13d
movzbl %r8b,%r8d
movzbl (%rdi,%r13,1),%r13d
movzbl (%rdi,%r8,1),%r9d
xorb (%rdx),%r13b
leaq 1(%rdx),%rdx
movb %r13b,(%rcx)
leaq 1(%rcx),%rcx
subq $1,%rsi
addb %al,%cl
movzbl %cl,%ecx
movzbl (%rdi,%rcx,1),%edx
movb %al,(%rdi,%rcx,1)
movb %dl,(%rdi,%r10,1)
addb %al,%dl
addb $1,%r10b
movzbl %dl,%edx
movzbl %r10b,%r10d
movzbl (%rdi,%rdx,1),%edx
movzbl (%rdi,%r10,1),%eax
xorb (%r12),%dl
leaq 1(%r12),%r12
movb %dl,(%r13)
leaq 1(%r13),%r13
subq $1,%r11
jnz L$cloop1
jmp L$exit
.p2align 4
L$exit:
subb $1,%r8b
movl %r8d,-8(%rdi)
movl %r12d,-4(%rdi)
subb $1,%r10b
movl %r10d,-8(%rdi)
movl %ecx,-4(%rdi)
movq (%rsp),%r13
movq 8(%rsp),%r12
@ -330,11 +526,10 @@ L$exit:
L$epilogue:
.byte 0xf3,0xc3
.globl _RC4_set_key
.globl _private_RC4_set_key
.p2align 4
_RC4_set_key:
_private_RC4_set_key:
leaq 8(%rdi),%rdi
leaq (%rdx,%rsi,1),%rdx
negq %rsi
@ -346,11 +541,8 @@ _RC4_set_key:
movl _OPENSSL_ia32cap_P(%rip),%r8d
btl $20,%r8d
jnc L$w1stloop
btl $30,%r8d
setc %r9b
movl %r9d,260(%rdi)
jmp L$c1stloop
jc L$c1stloop
jmp L$w1stloop
.p2align 4
L$w1stloop:
@ -413,18 +605,19 @@ _RC4_options:
leaq L$opts(%rip),%rax
movl _OPENSSL_ia32cap_P(%rip),%edx
btl $20,%edx
jnc L$done
addq $12,%rax
jc L$8xchar
btl $30,%edx
jnc L$done
addq $13,%rax
addq $25,%rax
.byte 0xf3,0xc3
L$8xchar:
addq $12,%rax
L$done:
.byte 0xf3,0xc3
.p2align 6
L$opts:
.byte 114,99,52,40,56,120,44,105,110,116,41,0
.byte 114,99,52,40,56,120,44,99,104,97,114,41,0
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
.byte 114,99,52,40,49,54,120,44,105,110,116,41,0
.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align 6

3529
deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s

File diff suppressed because it is too large

2150
deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s

File diff suppressed because it is too large

69
deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s

@ -1,8 +1,12 @@
.private_extern _OPENSSL_cpuid_setup
.mod_init_func
.p2align 3
.quad _OPENSSL_cpuid_setup
.private_extern _OPENSSL_ia32cap_P
.comm _OPENSSL_ia32cap_P,8,2
.text
@ -68,7 +72,15 @@ _OPENSSL_ia32_cpuid:
movl $2147483648,%eax
cpuid
cmpl $2147483656,%eax
cmpl $2147483649,%eax
jb L$intel
movl %eax,%r10d
movl $2147483649,%eax
cpuid
orl %ecx,%r9d
andl $2049,%r9d
cmpl $2147483656,%r10d
jb L$intel
movl $2147483656,%eax
@ -79,12 +91,12 @@ _OPENSSL_ia32_cpuid:
movl $1,%eax
cpuid
btl $28,%edx
jnc L$done
jnc L$generic
shrl $16,%ebx
cmpb %r10b,%bl
ja L$done
ja L$generic
andl $4026531839,%edx
jmp L$done
jmp L$generic
L$intel:
cmpl $4,%r11d
@ -101,30 +113,48 @@ L$intel:
L$nocacheinfo:
movl $1,%eax
cpuid
andl $3220176895,%edx
cmpl $0,%r9d
jne L$notintel
orl $1048576,%edx
orl $1073741824,%edx
andb $15,%ah
cmpb $15,%ah
je L$notintel
orl $1073741824,%edx
jne L$notintel
orl $1048576,%edx
L$notintel:
btl $28,%edx
jnc L$done
jnc L$generic
andl $4026531839,%edx
cmpl $0,%r10d
je L$done
je L$generic
orl $268435456,%edx
shrl $16,%ebx
cmpb $1,%bl
ja L$done
ja L$generic
andl $4026531839,%edx
L$generic:
andl $2048,%r9d
andl $4294965247,%ecx
orl %ecx,%r9d
movl %edx,%r10d
btl $27,%r9d
jnc L$clear_avx
xorl %ecx,%ecx
.byte 0x0f,0x01,0xd0
andl $6,%eax
cmpl $6,%eax
je L$done
L$clear_avx:
movl $4026525695,%eax
andl %eax,%r9d
L$done:
shlq $32,%rcx
movl %edx,%eax
shlq $32,%r9
movl %r10d,%eax
movq %r8,%rbx
orq %rcx,%rax
orq %r9,%rax
.byte 0xf3,0xc3
@ -193,3 +223,16 @@ _OPENSSL_wipe_cpu:
leaq 8(%rsp),%rax
.byte 0xf3,0xc3
.globl _OPENSSL_ia32_rdrand
.p2align 4
_OPENSSL_ia32_rdrand:
movl $8,%ecx
L$oop_rdrand:
.byte 72,15,199,240
jc L$break_rdrand
loop L$oop_rdrand
L$break_rdrand:
cmpq $0,%rax
cmoveq %rcx,%rax
.byte 0xf3,0xc3

45
deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm

@ -333,6 +333,9 @@ _x86_64_AES_encrypt_compact ENDP
PUBLIC AES_encrypt
ALIGN 16
PUBLIC asm_AES_encrypt
asm_AES_encrypt::
AES_encrypt PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
@ -792,6 +795,9 @@ _x86_64_AES_decrypt_compact ENDP
PUBLIC AES_decrypt
ALIGN 16
PUBLIC asm_AES_decrypt
asm_AES_decrypt::
AES_decrypt PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
@ -867,14 +873,14 @@ $L$dec_epilogue::
DB 0F3h,0C3h ;repret
$L$SEH_end_AES_decrypt::
AES_decrypt ENDP
PUBLIC AES_set_encrypt_key
PUBLIC private_AES_set_encrypt_key
ALIGN 16
AES_set_encrypt_key PROC PUBLIC
private_AES_set_encrypt_key PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
mov rax,rsp
$L$SEH_begin_AES_set_encrypt_key::
$L$SEH_begin_private_AES_set_encrypt_key::
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@ -902,8 +908,8 @@ $L$enc_key_epilogue::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
$L$SEH_end_AES_set_encrypt_key::
AES_set_encrypt_key ENDP
$L$SEH_end_private_AES_set_encrypt_key::
private_AES_set_encrypt_key ENDP
ALIGN 16
@ -1145,14 +1151,14 @@ $L$exit::
DB 0f3h,0c3h
_x86_64_AES_set_encrypt_key ENDP
PUBLIC AES_set_decrypt_key
PUBLIC private_AES_set_decrypt_key
ALIGN 16
AES_set_decrypt_key PROC PUBLIC
private_AES_set_decrypt_key PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
mov rax,rsp
$L$SEH_begin_AES_set_decrypt_key::
$L$SEH_begin_private_AES_set_decrypt_key::
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@ -1342,12 +1348,15 @@ $L$dec_key_epilogue::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
$L$SEH_end_AES_set_decrypt_key::
AES_set_decrypt_key ENDP
$L$SEH_end_private_AES_set_decrypt_key::
private_AES_set_decrypt_key ENDP
PUBLIC AES_cbc_encrypt
ALIGN 16
EXTERN OPENSSL_ia32cap_P:NEAR
PUBLIC asm_AES_cbc_encrypt
asm_AES_cbc_encrypt::
AES_cbc_encrypt PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
@ -2842,13 +2851,13 @@ ALIGN 4
DD imagerel $L$SEH_end_AES_decrypt
DD imagerel $L$SEH_info_AES_decrypt
DD imagerel $L$SEH_begin_AES_set_encrypt_key
DD imagerel $L$SEH_end_AES_set_encrypt_key
DD imagerel $L$SEH_info_AES_set_encrypt_key
DD imagerel $L$SEH_begin_private_AES_set_encrypt_key
DD imagerel $L$SEH_end_private_AES_set_encrypt_key
DD imagerel $L$SEH_info_private_AES_set_encrypt_key
DD imagerel $L$SEH_begin_AES_set_decrypt_key
DD imagerel $L$SEH_end_AES_set_decrypt_key
DD imagerel $L$SEH_info_AES_set_decrypt_key
DD imagerel $L$SEH_begin_private_AES_set_decrypt_key
DD imagerel $L$SEH_end_private_AES_set_decrypt_key
DD imagerel $L$SEH_info_private_AES_set_decrypt_key
DD imagerel $L$SEH_begin_AES_cbc_encrypt
DD imagerel $L$SEH_end_AES_cbc_encrypt
@ -2867,12 +2876,12 @@ DB 9,0,0,0
DD imagerel block_se_handler
DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue
$L$SEH_info_AES_set_encrypt_key::
$L$SEH_info_private_AES_set_encrypt_key::
DB 9,0,0,0
DD imagerel key_se_handler
DD imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue
$L$SEH_info_AES_set_decrypt_key::
$L$SEH_info_private_AES_set_decrypt_key::
DB 9,0,0,0
DD imagerel key_se_handler
DD imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue

1554
deps/openssl/asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm

File diff suppressed because it is too large

3062
deps/openssl/asm/x64-win32-masm/aes/aesni-x86_64.asm

File diff suppressed because it is too large

1890
deps/openssl/asm/x64-win32-masm/bn/modexp512-x86_64.asm

File diff suppressed because it is too large

1540
deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm

File diff suppressed because it is too large

4
deps/openssl/asm/x64-win32-masm/camellia/cmll-x86_64.asm

@ -250,7 +250,7 @@ $L$eloop::
xor r8d,ecx
xor r9d,ecx
xor r9d,edx
lea r14,QWORD PTR[((16*4))+r14]
lea r14,QWORD PTR[64+r14]
cmp r14,r15
mov edx,DWORD PTR[8+r14]
mov ecx,DWORD PTR[12+r14]
@ -533,7 +533,7 @@ $L$dloop::
xor r8d,ecx
xor r9d,ecx
xor r9d,edx
lea r14,QWORD PTR[((-16*4))+r14]
lea r14,QWORD PTR[((-64))+r14]
cmp r14,r15
mov edx,DWORD PTR[r14]
mov ecx,DWORD PTR[4+r14]

280
deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm

@ -27,10 +27,10 @@ $L$prologue::
mov rbp,rdi
shl rdx,6
lea rdi,QWORD PTR[rdx*1+rsi]
mov eax,DWORD PTR[((0*4))+rbp]
mov ebx,DWORD PTR[((1*4))+rbp]
mov ecx,DWORD PTR[((2*4))+rbp]
mov edx,DWORD PTR[((3*4))+rbp]
mov eax,DWORD PTR[rbp]
mov ebx,DWORD PTR[4+rbp]
mov ecx,DWORD PTR[8+rbp]
mov edx,DWORD PTR[12+rbp]
@ -48,160 +48,160 @@ $L$loop::
mov r9d,ebx
mov r14d,ecx
mov r15d,edx
mov r10d,DWORD PTR[((0*4))+rsi]
mov r10d,DWORD PTR[rsi]
mov r11d,edx
xor r11d,ecx
lea eax,DWORD PTR[0d76aa478h+r10*1+rax]
lea eax,DWORD PTR[((-680876936))+r10*1+rax]
and r11d,ebx
xor r11d,edx
mov r10d,DWORD PTR[((1*4))+rsi]
mov r10d,DWORD PTR[4+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
lea edx,DWORD PTR[0e8c7b756h+r10*1+rdx]
lea edx,DWORD PTR[((-389564586))+r10*1+rdx]
and r11d,eax
xor r11d,ecx
mov r10d,DWORD PTR[((2*4))+rsi]
mov r10d,DWORD PTR[8+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
lea ecx,DWORD PTR[0242070dbh+r10*1+rcx]
lea ecx,DWORD PTR[606105819+r10*1+rcx]
and r11d,edx
xor r11d,ebx
mov r10d,DWORD PTR[((3*4))+rsi]
mov r10d,DWORD PTR[12+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
lea ebx,DWORD PTR[0c1bdceeeh+r10*1+rbx]
lea ebx,DWORD PTR[((-1044525330))+r10*1+rbx]
and r11d,ecx
xor r11d,eax
mov r10d,DWORD PTR[((4*4))+rsi]
mov r10d,DWORD PTR[16+rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
xor r11d,ecx
lea eax,DWORD PTR[0f57c0fafh+r10*1+rax]
lea eax,DWORD PTR[((-176418897))+r10*1+rax]
and r11d,ebx
xor r11d,edx
mov r10d,DWORD PTR[((5*4))+rsi]
mov r10d,DWORD PTR[20+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
lea edx,DWORD PTR[04787c62ah+r10*1+rdx]
lea edx,DWORD PTR[1200080426+r10*1+rdx]
and r11d,eax
xor r11d,ecx
mov r10d,DWORD PTR[((6*4))+rsi]
mov r10d,DWORD PTR[24+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
lea ecx,DWORD PTR[0a8304613h+r10*1+rcx]
lea ecx,DWORD PTR[((-1473231341))+r10*1+rcx]
and r11d,edx
xor r11d,ebx
mov r10d,DWORD PTR[((7*4))+rsi]
mov r10d,DWORD PTR[28+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
lea ebx,DWORD PTR[0fd469501h+r10*1+rbx]
lea ebx,DWORD PTR[((-45705983))+r10*1+rbx]
and r11d,ecx
xor r11d,eax
mov r10d,DWORD PTR[((8*4))+rsi]
mov r10d,DWORD PTR[32+rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
xor r11d,ecx
lea eax,DWORD PTR[0698098d8h+r10*1+rax]
lea eax,DWORD PTR[1770035416+r10*1+rax]
and r11d,ebx
xor r11d,edx
mov r10d,DWORD PTR[((9*4))+rsi]
mov r10d,DWORD PTR[36+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
lea edx,DWORD PTR[08b44f7afh+r10*1+rdx]
lea edx,DWORD PTR[((-1958414417))+r10*1+rdx]
and r11d,eax
xor r11d,ecx
mov r10d,DWORD PTR[((10*4))+rsi]
mov r10d,DWORD PTR[40+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
lea ecx,DWORD PTR[0ffff5bb1h+r10*1+rcx]
lea ecx,DWORD PTR[((-42063))+r10*1+rcx]
and r11d,edx
xor r11d,ebx
mov r10d,DWORD PTR[((11*4))+rsi]
mov r10d,DWORD PTR[44+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
lea ebx,DWORD PTR[0895cd7beh+r10*1+rbx]
lea ebx,DWORD PTR[((-1990404162))+r10*1+rbx]
and r11d,ecx
xor r11d,eax
mov r10d,DWORD PTR[((12*4))+rsi]
mov r10d,DWORD PTR[48+rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
xor r11d,ecx
lea eax,DWORD PTR[06b901122h+r10*1+rax]
lea eax,DWORD PTR[1804603682+r10*1+rax]
and r11d,ebx
xor r11d,edx
mov r10d,DWORD PTR[((13*4))+rsi]
mov r10d,DWORD PTR[52+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
lea edx,DWORD PTR[0fd987193h+r10*1+rdx]
lea edx,DWORD PTR[((-40341101))+r10*1+rdx]
and r11d,eax
xor r11d,ecx
mov r10d,DWORD PTR[((14*4))+rsi]
mov r10d,DWORD PTR[56+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
lea ecx,DWORD PTR[0a679438eh+r10*1+rcx]
lea ecx,DWORD PTR[((-1502002290))+r10*1+rcx]
and r11d,edx
xor r11d,ebx
mov r10d,DWORD PTR[((15*4))+rsi]
mov r10d,DWORD PTR[60+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
lea ebx,DWORD PTR[049b40821h+r10*1+rbx]
lea ebx,DWORD PTR[1236535329+r10*1+rbx]
and r11d,ecx
xor r11d,eax
mov r10d,DWORD PTR[((0*4))+rsi]
mov r10d,DWORD PTR[rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
mov r10d,DWORD PTR[((1*4))+rsi]
mov r10d,DWORD PTR[4+rsi]
mov r11d,edx
mov r12d,edx
not r11d
lea eax,DWORD PTR[0f61e2562h+r10*1+rax]
lea eax,DWORD PTR[((-165796510))+r10*1+rax]
and r12d,ebx
and r11d,ecx
mov r10d,DWORD PTR[((6*4))+rsi]
mov r10d,DWORD PTR[24+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@ -209,10 +209,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
lea edx,DWORD PTR[0c040b340h+r10*1+rdx]
lea edx,DWORD PTR[((-1069501632))+r10*1+rdx]
and r12d,eax
and r11d,ebx
mov r10d,DWORD PTR[((11*4))+rsi]
mov r10d,DWORD PTR[44+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@ -220,10 +220,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
lea ecx,DWORD PTR[0265e5a51h+r10*1+rcx]
lea ecx,DWORD PTR[643717713+r10*1+rcx]
and r12d,edx
and r11d,eax
mov r10d,DWORD PTR[((0*4))+rsi]
mov r10d,DWORD PTR[rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@ -231,10 +231,10 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
lea ebx,DWORD PTR[0e9b6c7aah+r10*1+rbx]
lea ebx,DWORD PTR[((-373897302))+r10*1+rbx]
and r12d,ecx
and r11d,edx
mov r10d,DWORD PTR[((5*4))+rsi]
mov r10d,DWORD PTR[20+rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
@ -242,10 +242,10 @@ $L$loop::
rol ebx,20
add ebx,ecx
not r11d
lea eax,DWORD PTR[0d62f105dh+r10*1+rax]
lea eax,DWORD PTR[((-701558691))+r10*1+rax]
and r12d,ebx
and r11d,ecx
mov r10d,DWORD PTR[((10*4))+rsi]
mov r10d,DWORD PTR[40+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@ -253,10 +253,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
lea edx,DWORD PTR[02441453h+r10*1+rdx]
lea edx,DWORD PTR[38016083+r10*1+rdx]
and r12d,eax
and r11d,ebx
mov r10d,DWORD PTR[((15*4))+rsi]
mov r10d,DWORD PTR[60+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@ -264,10 +264,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
lea ecx,DWORD PTR[0d8a1e681h+r10*1+rcx]
lea ecx,DWORD PTR[((-660478335))+r10*1+rcx]
and r12d,edx
and r11d,eax
mov r10d,DWORD PTR[((4*4))+rsi]
mov r10d,DWORD PTR[16+rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@ -275,10 +275,10 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
lea ebx,DWORD PTR[0e7d3fbc8h+r10*1+rbx]
lea ebx,DWORD PTR[((-405537848))+r10*1+rbx]
and r12d,ecx
and r11d,edx
mov r10d,DWORD PTR[((9*4))+rsi]
mov r10d,DWORD PTR[36+rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
@ -286,10 +286,10 @@ $L$loop::
rol ebx,20
add ebx,ecx
not r11d
lea eax,DWORD PTR[021e1cde6h+r10*1+rax]
lea eax,DWORD PTR[568446438+r10*1+rax]
and r12d,ebx
and r11d,ecx
mov r10d,DWORD PTR[((14*4))+rsi]
mov r10d,DWORD PTR[56+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@ -297,10 +297,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
lea edx,DWORD PTR[0c33707d6h+r10*1+rdx]
lea edx,DWORD PTR[((-1019803690))+r10*1+rdx]
and r12d,eax
and r11d,ebx
mov r10d,DWORD PTR[((3*4))+rsi]
mov r10d,DWORD PTR[12+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@ -308,10 +308,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
lea ecx,DWORD PTR[0f4d50d87h+r10*1+rcx]
lea ecx,DWORD PTR[((-187363961))+r10*1+rcx]
and r12d,edx
and r11d,eax
mov r10d,DWORD PTR[((8*4))+rsi]
mov r10d,DWORD PTR[32+rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@ -319,10 +319,10 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
lea ebx,DWORD PTR[0455a14edh+r10*1+rbx]
lea ebx,DWORD PTR[1163531501+r10*1+rbx]
and r12d,ecx
and r11d,edx
mov r10d,DWORD PTR[((13*4))+rsi]
mov r10d,DWORD PTR[52+rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
@ -330,10 +330,10 @@ $L$loop::
rol ebx,20
add ebx,ecx
not r11d
lea eax,DWORD PTR[0a9e3e905h+r10*1+rax]
lea eax,DWORD PTR[((-1444681467))+r10*1+rax]
and r12d,ebx
and r11d,ecx
mov r10d,DWORD PTR[((2*4))+rsi]
mov r10d,DWORD PTR[8+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@ -341,10 +341,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
lea edx,DWORD PTR[0fcefa3f8h+r10*1+rdx]
lea edx,DWORD PTR[((-51403784))+r10*1+rdx]
and r12d,eax
and r11d,ebx
mov r10d,DWORD PTR[((7*4))+rsi]
mov r10d,DWORD PTR[28+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@ -352,10 +352,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
lea ecx,DWORD PTR[0676f02d9h+r10*1+rcx]
lea ecx,DWORD PTR[1735328473+r10*1+rcx]
and r12d,edx
and r11d,eax
mov r10d,DWORD PTR[((12*4))+rsi]
mov r10d,DWORD PTR[48+rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@ -363,289 +363,289 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
lea ebx,DWORD PTR[08d2a4c8ah+r10*1+rbx]
lea ebx,DWORD PTR[((-1926607734))+r10*1+rbx]
and r12d,ecx
and r11d,edx
mov r10d,DWORD PTR[((0*4))+rsi]
mov r10d,DWORD PTR[rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
mov r12d,edx
rol ebx,20
add ebx,ecx
mov r10d,DWORD PTR[((5*4))+rsi]
mov r10d,DWORD PTR[20+rsi]
mov r11d,ecx
lea eax,DWORD PTR[0fffa3942h+r10*1+rax]
mov r10d,DWORD PTR[((8*4))+rsi]
lea eax,DWORD PTR[((-378558))+r10*1+rax]
mov r10d,DWORD PTR[32+rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
lea edx,DWORD PTR[08771f681h+r10*1+rdx]
mov r10d,DWORD PTR[((11*4))+rsi]
lea edx,DWORD PTR[((-2022574463))+r10*1+rdx]
mov r10d,DWORD PTR[44+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
lea ecx,DWORD PTR[06d9d6122h+r10*1+rcx]
mov r10d,DWORD PTR[((14*4))+rsi]
lea ecx,DWORD PTR[1839030562+r10*1+rcx]
mov r10d,DWORD PTR[56+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
lea ebx,DWORD PTR[0fde5380ch+r10*1+rbx]
mov r10d,DWORD PTR[((1*4))+rsi]
lea ebx,DWORD PTR[((-35309556))+r10*1+rbx]
mov r10d,DWORD PTR[4+rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
lea eax,DWORD PTR[0a4beea44h+r10*1+rax]
mov r10d,DWORD PTR[((4*4))+rsi]
lea eax,DWORD PTR[((-1530992060))+r10*1+rax]
mov r10d,DWORD PTR[16+rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
lea edx,DWORD PTR[04bdecfa9h+r10*1+rdx]
mov r10d,DWORD PTR[((7*4))+rsi]
lea edx,DWORD PTR[1272893353+r10*1+rdx]
mov r10d,DWORD PTR[28+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
lea ecx,DWORD PTR[0f6bb4b60h+r10*1+rcx]
mov r10d,DWORD PTR[((10*4))+rsi]
lea ecx,DWORD PTR[((-155497632))+r10*1+rcx]
mov r10d,DWORD PTR[40+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
lea ebx,DWORD PTR[0bebfbc70h+r10*1+rbx]
mov r10d,DWORD PTR[((13*4))+rsi]
lea ebx,DWORD PTR[((-1094730640))+r10*1+rbx]
mov r10d,DWORD PTR[52+rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
lea eax,DWORD PTR[0289b7ec6h+r10*1+rax]
mov r10d,DWORD PTR[((0*4))+rsi]
lea eax,DWORD PTR[681279174+r10*1+rax]
mov r10d,DWORD PTR[rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
lea edx,DWORD PTR[0eaa127fah+r10*1+rdx]
mov r10d,DWORD PTR[((3*4))+rsi]
lea edx,DWORD PTR[((-358537222))+r10*1+rdx]
mov r10d,DWORD PTR[12+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
lea ecx,DWORD PTR[0d4ef3085h+r10*1+rcx]
mov r10d,DWORD PTR[((6*4))+rsi]
lea ecx,DWORD PTR[((-722521979))+r10*1+rcx]
mov r10d,DWORD PTR[24+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
lea ebx,DWORD PTR[04881d05h+r10*1+rbx]
mov r10d,DWORD PTR[((9*4))+rsi]
lea ebx,DWORD PTR[76029189+r10*1+rbx]
mov r10d,DWORD PTR[36+rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
lea eax,DWORD PTR[0d9d4d039h+r10*1+rax]
mov r10d,DWORD PTR[((12*4))+rsi]
lea eax,DWORD PTR[((-640364487))+r10*1+rax]
mov r10d,DWORD PTR[48+rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
lea edx,DWORD PTR[0e6db99e5h+r10*1+rdx]
mov r10d,DWORD PTR[((15*4))+rsi]
lea edx,DWORD PTR[((-421815835))+r10*1+rdx]
mov r10d,DWORD PTR[60+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
lea ecx,DWORD PTR[01fa27cf8h+r10*1+rcx]
mov r10d,DWORD PTR[((2*4))+rsi]
lea ecx,DWORD PTR[530742520+r10*1+rcx]
mov r10d,DWORD PTR[8+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
lea ebx,DWORD PTR[0c4ac5665h+r10*1+rbx]
mov r10d,DWORD PTR[((0*4))+rsi]
lea ebx,DWORD PTR[((-995338651))+r10*1+rbx]
mov r10d,DWORD PTR[rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
mov r10d,DWORD PTR[((0*4))+rsi]
mov r10d,DWORD PTR[rsi]
mov r11d,0ffffffffh
xor r11d,edx
lea eax,DWORD PTR[0f4292244h+r10*1+rax]
lea eax,DWORD PTR[((-198630844))+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
mov r10d,DWORD PTR[((7*4))+rsi]
mov r10d,DWORD PTR[28+rsi]
mov r11d,0ffffffffh
rol eax,6
xor r11d,ecx
add eax,ebx
lea edx,DWORD PTR[0432aff97h+r10*1+rdx]
lea edx,DWORD PTR[1126891415+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
mov r10d,DWORD PTR[((14*4))+rsi]
mov r10d,DWORD PTR[56+rsi]
mov r11d,0ffffffffh
rol edx,10
xor r11d,ebx
add edx,eax
lea ecx,DWORD PTR[0ab9423a7h+r10*1+rcx]
lea ecx,DWORD PTR[((-1416354905))+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
mov r10d,DWORD PTR[((5*4))+rsi]
mov r10d,DWORD PTR[20+rsi]
mov r11d,0ffffffffh
rol ecx,15
xor r11d,eax
add ecx,edx
lea ebx,DWORD PTR[0fc93a039h+r10*1+rbx]
lea ebx,DWORD PTR[((-57434055))+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
mov r10d,DWORD PTR[((12*4))+rsi]
mov r10d,DWORD PTR[48+rsi]
mov r11d,0ffffffffh
rol ebx,21
xor r11d,edx
add ebx,ecx
lea eax,DWORD PTR[0655b59c3h+r10*1+rax]
lea eax,DWORD PTR[1700485571+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
mov r10d,DWORD PTR[((3*4))+rsi]
mov r10d,DWORD PTR[12+rsi]
mov r11d,0ffffffffh
rol eax,6
xor r11d,ecx
add eax,ebx
lea edx,DWORD PTR[08f0ccc92h+r10*1+rdx]
lea edx,DWORD PTR[((-1894986606))+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
mov r10d,DWORD PTR[((10*4))+rsi]
mov r10d,DWORD PTR[40+rsi]
mov r11d,0ffffffffh
rol edx,10
xor r11d,ebx
add edx,eax
lea ecx,DWORD PTR[0ffeff47dh+r10*1+rcx]
lea ecx,DWORD PTR[((-1051523))+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
mov r10d,DWORD PTR[((1*4))+rsi]
mov r10d,DWORD PTR[4+rsi]
mov r11d,0ffffffffh
rol ecx,15
xor r11d,eax
add ecx,edx
lea ebx,DWORD PTR[085845dd1h+r10*1+rbx]
lea ebx,DWORD PTR[((-2054922799))+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
mov r10d,DWORD PTR[((8*4))+rsi]
mov r10d,DWORD PTR[32+rsi]
mov r11d,0ffffffffh
rol ebx,21
xor r11d,edx
add ebx,ecx
lea eax,DWORD PTR[06fa87e4fh+r10*1+rax]
lea eax,DWORD PTR[1873313359+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
mov r10d,DWORD PTR[((15*4))+rsi]
mov r10d,DWORD PTR[60+rsi]
mov r11d,0ffffffffh
rol eax,6
xor r11d,ecx
add eax,ebx
lea edx,DWORD PTR[0fe2ce6e0h+r10*1+rdx]
lea edx,DWORD PTR[((-30611744))+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
mov r10d,DWORD PTR[((6*4))+rsi]
mov r10d,DWORD PTR[24+rsi]
mov r11d,0ffffffffh
rol edx,10
xor r11d,ebx
add edx,eax
lea ecx,DWORD PTR[0a3014314h+r10*1+rcx]
lea ecx,DWORD PTR[((-1560198380))+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
mov r10d,DWORD PTR[((13*4))+rsi]
mov r10d,DWORD PTR[52+rsi]
mov r11d,0ffffffffh
rol ecx,15
xor r11d,eax
add ecx,edx
lea ebx,DWORD PTR[04e0811a1h+r10*1+rbx]
lea ebx,DWORD PTR[1309151649+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
mov r10d,DWORD PTR[((4*4))+rsi]
mov r10d,DWORD PTR[16+rsi]
mov r11d,0ffffffffh
rol ebx,21
xor r11d,edx
add ebx,ecx
lea eax,DWORD PTR[0f7537e82h+r10*1+rax]
lea eax,DWORD PTR[((-145523070))+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
mov r10d,DWORD PTR[((11*4))+rsi]
mov r10d,DWORD PTR[44+rsi]
mov r11d,0ffffffffh
rol eax,6
xor r11d,ecx
add eax,ebx
lea edx,DWORD PTR[0bd3af235h+r10*1+rdx]
lea edx,DWORD PTR[((-1120210379))+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
mov r10d,DWORD PTR[((2*4))+rsi]
mov r10d,DWORD PTR[8+rsi]
mov r11d,0ffffffffh
rol edx,10
xor r11d,ebx
add edx,eax
lea ecx,DWORD PTR[02ad7d2bbh+r10*1+rcx]
lea ecx,DWORD PTR[718787259+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
mov r10d,DWORD PTR[((9*4))+rsi]
mov r10d,DWORD PTR[36+rsi]
mov r11d,0ffffffffh
rol ecx,15
xor r11d,eax
add ecx,edx
lea ebx,DWORD PTR[0eb86d391h+r10*1+rbx]
lea ebx,DWORD PTR[((-343485551))+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
mov r10d,DWORD PTR[((0*4))+rsi]
mov r10d,DWORD PTR[rsi]
mov r11d,0ffffffffh
rol ebx,21
xor r11d,edx
@ -664,10 +664,10 @@ $L$loop::
$L$end::
mov DWORD PTR[((0*4))+rbp],eax
mov DWORD PTR[((1*4))+rbp],ebx
mov DWORD PTR[((2*4))+rbp],ecx
mov DWORD PTR[((3*4))+rbp],edx
mov DWORD PTR[rbp],eax
mov DWORD PTR[4+rbp],ebx
mov DWORD PTR[8+rbp],ecx
mov DWORD PTR[12+rbp],edx
mov r15,QWORD PTR[rsp]
mov r14,QWORD PTR[8+rsp]

1375
deps/openssl/asm/x64-win32-masm/rc4/rc4-md5-x86_64.asm

File diff suppressed because it is too large

744
deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm

@ -1,5 +1,6 @@
OPTION DOTNAME
.text$ SEGMENT ALIGN(64) 'CODE'
EXTERN OPENSSL_ia32cap_P:NEAR
PUBLIC RC4
@ -24,316 +25,511 @@ $L$entry::
push r12
push r13
$L$prologue::
mov r11,rsi
mov r12,rdx
mov r13,rcx
xor r10,r10
xor rcx,rcx
add rdi,8
mov r8d,DWORD PTR[((-8))+rdi]
mov r12d,DWORD PTR[((-4))+rdi]
lea rdi,QWORD PTR[8+rdi]
mov r10b,BYTE PTR[((-8))+rdi]
mov cl,BYTE PTR[((-4))+rdi]
cmp DWORD PTR[256+rdi],-1
je $L$RC4_CHAR
inc r8b
mov r9d,DWORD PTR[r8*4+rdi]
test rsi,-8
jz $L$loop1
jmp $L$loop8
ALIGN 16
$L$loop8::
add r12b,r9b
mov r10,r8
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
inc r10b
mov r11d,DWORD PTR[r10*4+rdi]
cmp r12,r10
mov DWORD PTR[r12*4+rdi],r9d
cmove r11,r9
mov DWORD PTR[r8*4+rdi],r13d
add r13b,r9b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r11b
mov r8,r10
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
inc r8b
mov r9d,DWORD PTR[r8*4+rdi]
cmp r12,r8
mov DWORD PTR[r12*4+rdi],r11d
cmove r9,r11
mov DWORD PTR[r10*4+rdi],r13d
add r13b,r11b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r9b
mov r10,r8
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
mov r8d,DWORD PTR[OPENSSL_ia32cap_P]
xor rbx,rbx
inc r10b
mov r11d,DWORD PTR[r10*4+rdi]
cmp r12,r10
mov DWORD PTR[r12*4+rdi],r9d
cmove r11,r9
mov DWORD PTR[r8*4+rdi],r13d
add r13b,r9b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r11b
mov r8,r10
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
inc r8b
mov r9d,DWORD PTR[r8*4+rdi]
cmp r12,r8
mov DWORD PTR[r12*4+rdi],r11d
cmove r9,r11
mov DWORD PTR[r10*4+rdi],r13d
add r13b,r11b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r9b
mov r10,r8
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
sub rbx,r10
sub r13,r12
mov eax,DWORD PTR[r10*4+rdi]
test r11,-16
jz $L$loop1
bt r8d,30
jc $L$intel
and rbx,7
lea rsi,QWORD PTR[1+r10]
jz $L$oop8
sub r11,rbx
$L$oop8_warmup::
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov DWORD PTR[r10*4+rdi],edx
add al,dl
inc r10b
mov r11d,DWORD PTR[r10*4+rdi]
cmp r12,r10
mov DWORD PTR[r12*4+rdi],r9d
cmove r11,r9
mov DWORD PTR[r8*4+rdi],r13d
add r13b,r9b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r11b
mov r8,r10
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
inc r8b
mov r9d,DWORD PTR[r8*4+rdi]
cmp r12,r8
mov DWORD PTR[r12*4+rdi],r11d
cmove r9,r11
mov DWORD PTR[r10*4+rdi],r13d
add r13b,r11b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r9b
mov r10,r8
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
mov edx,DWORD PTR[rax*4+rdi]
mov eax,DWORD PTR[r10*4+rdi]
xor dl,BYTE PTR[r12]
mov BYTE PTR[r12*1+r13],dl
lea r12,QWORD PTR[1+r12]
dec rbx
jnz $L$oop8_warmup
lea rsi,QWORD PTR[1+r10]
jmp $L$oop8
ALIGN 16
$L$oop8::
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov ebx,DWORD PTR[rsi*4+rdi]
ror r8,8
mov DWORD PTR[r10*4+rdi],edx
add dl,al
mov r8b,BYTE PTR[rdx*4+rdi]
add cl,bl
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
mov eax,DWORD PTR[4+rsi*4+rdi]
ror r8,8
mov DWORD PTR[4+r10*4+rdi],edx
add dl,bl
mov r8b,BYTE PTR[rdx*4+rdi]
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov ebx,DWORD PTR[8+rsi*4+rdi]
ror r8,8
mov DWORD PTR[8+r10*4+rdi],edx
add dl,al
mov r8b,BYTE PTR[rdx*4+rdi]
add cl,bl
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
mov eax,DWORD PTR[12+rsi*4+rdi]
ror r8,8
mov DWORD PTR[12+r10*4+rdi],edx
add dl,bl
mov r8b,BYTE PTR[rdx*4+rdi]
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov ebx,DWORD PTR[16+rsi*4+rdi]
ror r8,8
mov DWORD PTR[16+r10*4+rdi],edx
add dl,al
mov r8b,BYTE PTR[rdx*4+rdi]
add cl,bl
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
mov eax,DWORD PTR[20+rsi*4+rdi]
ror r8,8
mov DWORD PTR[20+r10*4+rdi],edx
add dl,bl
mov r8b,BYTE PTR[rdx*4+rdi]
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov ebx,DWORD PTR[24+rsi*4+rdi]
ror r8,8
mov DWORD PTR[24+r10*4+rdi],edx
add dl,al
mov r8b,BYTE PTR[rdx*4+rdi]
add sil,8
add cl,bl
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
mov eax,DWORD PTR[((-4))+rsi*4+rdi]
ror r8,8
mov DWORD PTR[28+r10*4+rdi],edx
add dl,bl
mov r8b,BYTE PTR[rdx*4+rdi]
add r10b,8
ror r8,8
sub r11,8
xor r8,QWORD PTR[r12]
mov QWORD PTR[r12*1+r13],r8
lea r12,QWORD PTR[8+r12]
test r11,-8
jnz $L$oop8
cmp r11,0
jne $L$loop1
jmp $L$exit
ALIGN 16
$L$intel::
test r11,-32
jz $L$loop1
and rbx,15
jz $L$oop16_is_hot
sub r11,rbx
$L$oop16_warmup::
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov DWORD PTR[r10*4+rdi],edx
add al,dl
inc r10b
mov r11d,DWORD PTR[r10*4+rdi]
cmp r12,r10
mov DWORD PTR[r12*4+rdi],r9d
cmove r11,r9
mov DWORD PTR[r8*4+rdi],r13d
add r13b,r9b
mov al,BYTE PTR[r13*4+rdi]
add r12b,r11b
mov r8,r10
mov r13d,DWORD PTR[r12*4+rdi]
ror rax,8
inc r8b
mov r9d,DWORD PTR[r8*4+rdi]
cmp r12,r8
mov DWORD PTR[r12*4+rdi],r11d
cmove r9,r11
mov DWORD PTR[r10*4+rdi],r13d
add r13b,r11b
mov al,BYTE PTR[r13*4+rdi]
ror rax,8
sub rsi,8
xor rax,QWORD PTR[rdx]
add rdx,8
mov QWORD PTR[rcx],rax
add rcx,8
test rsi,-8
jnz $L$loop8
cmp rsi,0
mov edx,DWORD PTR[rax*4+rdi]
mov eax,DWORD PTR[r10*4+rdi]
xor dl,BYTE PTR[r12]
mov BYTE PTR[r12*1+r13],dl
lea r12,QWORD PTR[1+r12]
dec rbx
jnz $L$oop16_warmup
mov rbx,rcx
xor rcx,rcx
mov cl,bl
$L$oop16_is_hot::
lea rsi,QWORD PTR[r10*4+rdi]
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
pxor xmm0,xmm0
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[4+rsi]
movzx eax,al
mov DWORD PTR[rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],0
jmp $L$oop16_enter
ALIGN 16
$L$oop16::
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
pxor xmm2,xmm0
psllq xmm1,8
pxor xmm0,xmm0
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[4+rsi]
movzx eax,al
mov DWORD PTR[rsi],edx
pxor xmm2,xmm1
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],0
movdqu XMMWORD PTR[r12*1+r13],xmm2
lea r12,QWORD PTR[16+r12]
$L$oop16_enter::
mov edx,DWORD PTR[rcx*4+rdi]
pxor xmm1,xmm1
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[8+rsi]
movzx ebx,bl
mov DWORD PTR[4+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],0
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[12+rsi]
movzx eax,al
mov DWORD PTR[8+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],1
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[16+rsi]
movzx ebx,bl
mov DWORD PTR[12+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],1
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[20+rsi]
movzx eax,al
mov DWORD PTR[16+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],2
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[24+rsi]
movzx ebx,bl
mov DWORD PTR[20+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],2
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[28+rsi]
movzx eax,al
mov DWORD PTR[24+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],3
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[32+rsi]
movzx ebx,bl
mov DWORD PTR[28+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],3
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[36+rsi]
movzx eax,al
mov DWORD PTR[32+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],4
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[40+rsi]
movzx ebx,bl
mov DWORD PTR[36+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],4
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[44+rsi]
movzx eax,al
mov DWORD PTR[40+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],5
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[48+rsi]
movzx ebx,bl
mov DWORD PTR[44+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],5
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[52+rsi]
movzx eax,al
mov DWORD PTR[48+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],6
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
mov eax,DWORD PTR[56+rsi]
movzx ebx,bl
mov DWORD PTR[52+rsi],edx
add cl,al
pinsrw xmm1,WORD PTR[rbx*4+rdi],6
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
add al,dl
mov ebx,DWORD PTR[60+rsi]
movzx eax,al
mov DWORD PTR[56+rsi],edx
add cl,bl
pinsrw xmm0,WORD PTR[rax*4+rdi],7
add r10b,16
movdqu xmm2,XMMWORD PTR[r12]
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],ebx
add bl,dl
movzx ebx,bl
mov DWORD PTR[60+rsi],edx
lea rsi,QWORD PTR[r10*4+rdi]
pinsrw xmm1,WORD PTR[rbx*4+rdi],7
mov eax,DWORD PTR[rsi]
mov rbx,rcx
xor rcx,rcx
sub r11,16
mov cl,bl
test r11,-16
jnz $L$oop16
psllq xmm1,8
pxor xmm2,xmm0
pxor xmm2,xmm1
movdqu XMMWORD PTR[r12*1+r13],xmm2
lea r12,QWORD PTR[16+r12]
cmp r11,0
jne $L$loop1
jmp $L$exit
ALIGN 16
$L$loop1::
add r12b,r9b
mov r13d,DWORD PTR[r12*4+rdi]
mov DWORD PTR[r12*4+rdi],r9d
mov DWORD PTR[r8*4+rdi],r13d
add r9b,r13b
inc r8b
mov r13d,DWORD PTR[r9*4+rdi]
mov r9d,DWORD PTR[r8*4+rdi]
xor r13b,BYTE PTR[rdx]
inc rdx
mov BYTE PTR[rcx],r13b
inc rcx
dec rsi
add cl,al
mov edx,DWORD PTR[rcx*4+rdi]
mov DWORD PTR[rcx*4+rdi],eax
mov DWORD PTR[r10*4+rdi],edx
add al,dl
inc r10b
mov edx,DWORD PTR[rax*4+rdi]
mov eax,DWORD PTR[r10*4+rdi]
xor dl,BYTE PTR[r12]
mov BYTE PTR[r12*1+r13],dl
lea r12,QWORD PTR[1+r12]
dec r11
jnz $L$loop1
jmp $L$exit
ALIGN 16
$L$RC4_CHAR::
add r8b,1
movzx r9d,BYTE PTR[r8*1+rdi]
test rsi,-8
add r10b,1
movzx eax,BYTE PTR[r10*1+rdi]
test r11,-8
jz $L$cloop1
cmp DWORD PTR[260+rdi],0
jnz $L$cloop1
jmp $L$cloop8
ALIGN 16
$L$cloop8::
mov eax,DWORD PTR[rdx]
mov ebx,DWORD PTR[4+rdx]
add r12b,r9b
lea r10,QWORD PTR[1+r8]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r10d,r10b
movzx r11d,BYTE PTR[r10*1+rdi]
mov BYTE PTR[r12*1+rdi],r9b
cmp r12,r10
mov BYTE PTR[r8*1+rdi],r13b
mov r8d,DWORD PTR[r12]
mov r9d,DWORD PTR[4+r12]
add cl,al
lea rsi,QWORD PTR[1+r10]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx esi,sil
movzx ebx,BYTE PTR[rsi*1+rdi]
mov BYTE PTR[rcx*1+rdi],al
cmp rcx,rsi
mov BYTE PTR[r10*1+rdi],dl
jne $L$cmov0
mov r11,r9
mov rbx,rax
$L$cmov0::
add r13b,r9b
xor al,BYTE PTR[r13*1+rdi]
ror eax,8
add r12b,r11b
lea r8,QWORD PTR[1+r10]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r8d,r8b
movzx r9d,BYTE PTR[r8*1+rdi]
mov BYTE PTR[r12*1+rdi],r11b
cmp r12,r8
mov BYTE PTR[r10*1+rdi],r13b
add dl,al
xor r8b,BYTE PTR[rdx*1+rdi]
ror r8d,8
add cl,bl
lea r10,QWORD PTR[1+rsi]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx r10d,r10b
movzx eax,BYTE PTR[r10*1+rdi]
mov BYTE PTR[rcx*1+rdi],bl
cmp rcx,r10
mov BYTE PTR[rsi*1+rdi],dl
jne $L$cmov1
mov r9,r11
mov rax,rbx
$L$cmov1::
add r13b,r11b
xor al,BYTE PTR[r13*1+rdi]
ror eax,8
add r12b,r9b
lea r10,QWORD PTR[1+r8]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r10d,r10b
movzx r11d,BYTE PTR[r10*1+rdi]
mov BYTE PTR[r12*1+rdi],r9b
cmp r12,r10
mov BYTE PTR[r8*1+rdi],r13b
add dl,bl
xor r8b,BYTE PTR[rdx*1+rdi]
ror r8d,8
add cl,al
lea rsi,QWORD PTR[1+r10]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx esi,sil
movzx ebx,BYTE PTR[rsi*1+rdi]
mov BYTE PTR[rcx*1+rdi],al
cmp rcx,rsi
mov BYTE PTR[r10*1+rdi],dl
jne $L$cmov2
mov r11,r9
mov rbx,rax
$L$cmov2::
add r13b,r9b
xor al,BYTE PTR[r13*1+rdi]
ror eax,8
add r12b,r11b
lea r8,QWORD PTR[1+r10]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r8d,r8b
movzx r9d,BYTE PTR[r8*1+rdi]
mov BYTE PTR[r12*1+rdi],r11b
cmp r12,r8
mov BYTE PTR[r10*1+rdi],r13b
add dl,al
xor r8b,BYTE PTR[rdx*1+rdi]
ror r8d,8
add cl,bl
lea r10,QWORD PTR[1+rsi]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx r10d,r10b
movzx eax,BYTE PTR[r10*1+rdi]
mov BYTE PTR[rcx*1+rdi],bl
cmp rcx,r10
mov BYTE PTR[rsi*1+rdi],dl
jne $L$cmov3
mov r9,r11
mov rax,rbx
$L$cmov3::
add r13b,r11b
xor al,BYTE PTR[r13*1+rdi]
ror eax,8
add r12b,r9b
lea r10,QWORD PTR[1+r8]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r10d,r10b
movzx r11d,BYTE PTR[r10*1+rdi]
mov BYTE PTR[r12*1+rdi],r9b
cmp r12,r10
mov BYTE PTR[r8*1+rdi],r13b
add dl,bl
xor r8b,BYTE PTR[rdx*1+rdi]
ror r8d,8
add cl,al
lea rsi,QWORD PTR[1+r10]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx esi,sil
movzx ebx,BYTE PTR[rsi*1+rdi]
mov BYTE PTR[rcx*1+rdi],al
cmp rcx,rsi
mov BYTE PTR[r10*1+rdi],dl
jne $L$cmov4
mov r11,r9
mov rbx,rax
$L$cmov4::
add r13b,r9b
xor bl,BYTE PTR[r13*1+rdi]
ror ebx,8
add r12b,r11b
lea r8,QWORD PTR[1+r10]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r8d,r8b
movzx r9d,BYTE PTR[r8*1+rdi]
mov BYTE PTR[r12*1+rdi],r11b
cmp r12,r8
mov BYTE PTR[r10*1+rdi],r13b
add dl,al
xor r9b,BYTE PTR[rdx*1+rdi]
ror r9d,8
add cl,bl
lea r10,QWORD PTR[1+rsi]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx r10d,r10b
movzx eax,BYTE PTR[r10*1+rdi]
mov BYTE PTR[rcx*1+rdi],bl
cmp rcx,r10
mov BYTE PTR[rsi*1+rdi],dl
jne $L$cmov5
mov r9,r11
mov rax,rbx
$L$cmov5::
add r13b,r11b
xor bl,BYTE PTR[r13*1+rdi]
ror ebx,8
add r12b,r9b
lea r10,QWORD PTR[1+r8]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r10d,r10b
movzx r11d,BYTE PTR[r10*1+rdi]
mov BYTE PTR[r12*1+rdi],r9b
cmp r12,r10
mov BYTE PTR[r8*1+rdi],r13b
add dl,bl
xor r9b,BYTE PTR[rdx*1+rdi]
ror r9d,8
add cl,al
lea rsi,QWORD PTR[1+r10]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx esi,sil
movzx ebx,BYTE PTR[rsi*1+rdi]
mov BYTE PTR[rcx*1+rdi],al
cmp rcx,rsi
mov BYTE PTR[r10*1+rdi],dl
jne $L$cmov6
mov r11,r9
mov rbx,rax
$L$cmov6::
add r13b,r9b
xor bl,BYTE PTR[r13*1+rdi]
ror ebx,8
add r12b,r11b
lea r8,QWORD PTR[1+r10]
movzx r13d,BYTE PTR[r12*1+rdi]
movzx r8d,r8b
movzx r9d,BYTE PTR[r8*1+rdi]
mov BYTE PTR[r12*1+rdi],r11b
cmp r12,r8
mov BYTE PTR[r10*1+rdi],r13b
add dl,al
xor r9b,BYTE PTR[rdx*1+rdi]
ror r9d,8
add cl,bl
lea r10,QWORD PTR[1+rsi]
movzx edx,BYTE PTR[rcx*1+rdi]
movzx r10d,r10b
movzx eax,BYTE PTR[r10*1+rdi]
mov BYTE PTR[rcx*1+rdi],bl
cmp rcx,r10
mov BYTE PTR[rsi*1+rdi],dl
jne $L$cmov7
mov r9,r11
mov rax,rbx
$L$cmov7::
add r13b,r11b
xor bl,BYTE PTR[r13*1+rdi]
ror ebx,8
lea rsi,QWORD PTR[((-8))+rsi]
mov DWORD PTR[rcx],eax
lea rdx,QWORD PTR[8+rdx]
mov DWORD PTR[4+rcx],ebx
lea rcx,QWORD PTR[8+rcx]
test rsi,-8
add dl,bl
xor r9b,BYTE PTR[rdx*1+rdi]
ror r9d,8
lea r11,QWORD PTR[((-8))+r11]
mov DWORD PTR[r13],r8d
lea r12,QWORD PTR[8+r12]
mov DWORD PTR[4+r13],r9d
lea r13,QWORD PTR[8+r13]
test r11,-8
jnz $L$cloop8
cmp rsi,0
cmp r11,0
jne $L$cloop1
jmp $L$exit
ALIGN 16
$L$cloop1::
add r12b,r9b
movzx r13d,BYTE PTR[r12*1+rdi]
mov BYTE PTR[r12*1+rdi],r9b
mov BYTE PTR[r8*1+rdi],r13b
add r13b,r9b
add r8b,1
movzx r13d,r13b
movzx r8d,r8b
movzx r13d,BYTE PTR[r13*1+rdi]
movzx r9d,BYTE PTR[r8*1+rdi]
xor r13b,BYTE PTR[rdx]
lea rdx,QWORD PTR[1+rdx]
mov BYTE PTR[rcx],r13b
lea rcx,QWORD PTR[1+rcx]
sub rsi,1
add cl,al
movzx ecx,cl
movzx edx,BYTE PTR[rcx*1+rdi]
mov BYTE PTR[rcx*1+rdi],al
mov BYTE PTR[r10*1+rdi],dl
add dl,al
add r10b,1
movzx edx,dl
movzx r10d,r10b
movzx edx,BYTE PTR[rdx*1+rdi]
movzx eax,BYTE PTR[r10*1+rdi]
xor dl,BYTE PTR[r12]
lea r12,QWORD PTR[1+r12]
mov BYTE PTR[r13],dl
lea r13,QWORD PTR[1+r13]
sub r11,1
jnz $L$cloop1
jmp $L$exit
ALIGN 16
$L$exit::
sub r8b,1
mov DWORD PTR[((-8))+rdi],r8d
mov DWORD PTR[((-4))+rdi],r12d
sub r10b,1
mov DWORD PTR[((-8))+rdi],r10d
mov DWORD PTR[((-4))+rdi],ecx
mov r13,QWORD PTR[rsp]
mov r12,QWORD PTR[8+rsp]
@ -345,15 +541,14 @@ $L$epilogue::
DB 0F3h,0C3h ;repret
$L$SEH_end_RC4::
RC4 ENDP
EXTERN OPENSSL_ia32cap_P:NEAR
PUBLIC RC4_set_key
PUBLIC private_RC4_set_key
ALIGN 16
RC4_set_key PROC PUBLIC
private_RC4_set_key PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
mov rax,rsp
$L$SEH_begin_RC4_set_key::
$L$SEH_begin_private_RC4_set_key::
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@ -370,11 +565,8 @@ $L$SEH_begin_RC4_set_key::
mov r8d,DWORD PTR[OPENSSL_ia32cap_P]
bt r8d,20
jnc $L$w1stloop
bt r8d,30
setc r9b
mov DWORD PTR[260+rdi],r9d
jmp $L$c1stloop
jc $L$c1stloop
jmp $L$w1stloop
ALIGN 16
$L$w1stloop::
@ -430,8 +622,8 @@ $L$exit_key::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
$L$SEH_end_RC4_set_key::
RC4_set_key ENDP
$L$SEH_end_private_RC4_set_key::
private_RC4_set_key ENDP
PUBLIC RC4_options
@ -440,18 +632,20 @@ RC4_options PROC PUBLIC
lea rax,QWORD PTR[$L$opts]
mov edx,DWORD PTR[OPENSSL_ia32cap_P]
bt edx,20
jnc $L$done
add rax,12
jc $L$8xchar
bt edx,30
jnc $L$done
add rax,13
add rax,25
DB 0F3h,0C3h ;repret
$L$8xchar::
add rax,12
$L$done::
DB 0F3h,0C3h ;repret
ALIGN 64
$L$opts::
DB 114,99,52,40,56,120,44,105,110,116,41,0
DB 114,99,52,40,56,120,44,99,104,97,114,41,0
DB 114,99,52,40,49,120,44,99,104,97,114,41,0
DB 114,99,52,40,49,54,120,44,105,110,116,41,0
DB 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32
DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
@ -568,9 +762,9 @@ ALIGN 4
DD imagerel $L$SEH_end_RC4
DD imagerel $L$SEH_info_RC4
DD imagerel $L$SEH_begin_RC4_set_key
DD imagerel $L$SEH_end_RC4_set_key
DD imagerel $L$SEH_info_RC4_set_key
DD imagerel $L$SEH_begin_private_RC4_set_key
DD imagerel $L$SEH_end_private_RC4_set_key
DD imagerel $L$SEH_info_private_RC4_set_key
.pdata ENDS
.xdata SEGMENT READONLY ALIGN(8)
@ -578,7 +772,7 @@ ALIGN 8
$L$SEH_info_RC4::
DB 9,0,0,0
DD imagerel stream_se_handler
$L$SEH_info_RC4_set_key::
$L$SEH_info_private_RC4_set_key::
DB 9,0,0,0
DD imagerel key_se_handler

3624
deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm

File diff suppressed because it is too large

2254
deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm

File diff suppressed because it is too large

204
deps/openssl/asm/x64-win32-masm/whrlpool/wp-x86_64.asm

@ -37,39 +37,39 @@ $L$prologue::
xor rcx,rcx
xor rdx,rdx
mov r8,QWORD PTR[((0*8))+rdi]
mov r9,QWORD PTR[((1*8))+rdi]
mov r10,QWORD PTR[((2*8))+rdi]
mov r11,QWORD PTR[((3*8))+rdi]
mov r12,QWORD PTR[((4*8))+rdi]
mov r13,QWORD PTR[((5*8))+rdi]
mov r14,QWORD PTR[((6*8))+rdi]
mov r15,QWORD PTR[((7*8))+rdi]
mov r8,QWORD PTR[rdi]
mov r9,QWORD PTR[8+rdi]
mov r10,QWORD PTR[16+rdi]
mov r11,QWORD PTR[24+rdi]
mov r12,QWORD PTR[32+rdi]
mov r13,QWORD PTR[40+rdi]
mov r14,QWORD PTR[48+rdi]
mov r15,QWORD PTR[56+rdi]
$L$outerloop::
mov QWORD PTR[((0*8))+rsp],r8
mov QWORD PTR[((1*8))+rsp],r9
mov QWORD PTR[((2*8))+rsp],r10
mov QWORD PTR[((3*8))+rsp],r11
mov QWORD PTR[((4*8))+rsp],r12
mov QWORD PTR[((5*8))+rsp],r13
mov QWORD PTR[((6*8))+rsp],r14
mov QWORD PTR[((7*8))+rsp],r15
xor r8,QWORD PTR[((0*8))+rsi]
xor r9,QWORD PTR[((1*8))+rsi]
xor r10,QWORD PTR[((2*8))+rsi]
xor r11,QWORD PTR[((3*8))+rsi]
xor r12,QWORD PTR[((4*8))+rsi]
xor r13,QWORD PTR[((5*8))+rsi]
xor r14,QWORD PTR[((6*8))+rsi]
xor r15,QWORD PTR[((7*8))+rsi]
mov QWORD PTR[((64+0*8))+rsp],r8
mov QWORD PTR[((64+1*8))+rsp],r9
mov QWORD PTR[((64+2*8))+rsp],r10
mov QWORD PTR[((64+3*8))+rsp],r11
mov QWORD PTR[((64+4*8))+rsp],r12
mov QWORD PTR[((64+5*8))+rsp],r13
mov QWORD PTR[((64+6*8))+rsp],r14
mov QWORD PTR[((64+7*8))+rsp],r15
mov QWORD PTR[rsp],r8
mov QWORD PTR[8+rsp],r9
mov QWORD PTR[16+rsp],r10
mov QWORD PTR[24+rsp],r11
mov QWORD PTR[32+rsp],r12
mov QWORD PTR[40+rsp],r13
mov QWORD PTR[48+rsp],r14
mov QWORD PTR[56+rsp],r15
xor r8,QWORD PTR[rsi]
xor r9,QWORD PTR[8+rsi]
xor r10,QWORD PTR[16+rsi]
xor r11,QWORD PTR[24+rsi]
xor r12,QWORD PTR[32+rsi]
xor r13,QWORD PTR[40+rsi]
xor r14,QWORD PTR[48+rsi]
xor r15,QWORD PTR[56+rsi]
mov QWORD PTR[((64+0))+rsp],r8
mov QWORD PTR[((64+8))+rsp],r9
mov QWORD PTR[((64+16))+rsp],r10
mov QWORD PTR[((64+24))+rsp],r11
mov QWORD PTR[((64+32))+rsp],r12
mov QWORD PTR[((64+40))+rsp],r13
mov QWORD PTR[((64+48))+rsp],r14
mov QWORD PTR[((64+56))+rsp],r15
xor rsi,rsi
mov QWORD PTR[24+rbx],rsi
ALIGN 16
@ -86,7 +86,7 @@ $L$round::
mov r9,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((0*8+8))+rsp]
mov eax,DWORD PTR[((0+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
mov r10,QWORD PTR[6+rsi*8+rbp]
@ -100,7 +100,7 @@ $L$round::
mov r13,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((0*8+8+4))+rsp]
mov ebx,DWORD PTR[((0+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
mov r14,QWORD PTR[2+rsi*8+rbp]
@ -114,7 +114,7 @@ $L$round::
xor r10,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((1*8+8))+rsp]
mov eax,DWORD PTR[((8+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r11,QWORD PTR[6+rsi*8+rbp]
@ -128,7 +128,7 @@ $L$round::
xor r14,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((1*8+8+4))+rsp]
mov ebx,DWORD PTR[((8+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r15,QWORD PTR[2+rsi*8+rbp]
@ -142,7 +142,7 @@ $L$round::
xor r11,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((2*8+8))+rsp]
mov eax,DWORD PTR[((16+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r12,QWORD PTR[6+rsi*8+rbp]
@ -156,7 +156,7 @@ $L$round::
xor r15,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((2*8+8+4))+rsp]
mov ebx,DWORD PTR[((16+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r8,QWORD PTR[2+rsi*8+rbp]
@ -170,7 +170,7 @@ $L$round::
xor r12,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((3*8+8))+rsp]
mov eax,DWORD PTR[((24+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r13,QWORD PTR[6+rsi*8+rbp]
@ -184,7 +184,7 @@ $L$round::
xor r8,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((3*8+8+4))+rsp]
mov ebx,DWORD PTR[((24+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r9,QWORD PTR[2+rsi*8+rbp]
@ -198,7 +198,7 @@ $L$round::
xor r13,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((4*8+8))+rsp]
mov eax,DWORD PTR[((32+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r14,QWORD PTR[6+rsi*8+rbp]
@ -212,7 +212,7 @@ $L$round::
xor r9,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((4*8+8+4))+rsp]
mov ebx,DWORD PTR[((32+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r10,QWORD PTR[2+rsi*8+rbp]
@ -226,7 +226,7 @@ $L$round::
xor r14,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((5*8+8))+rsp]
mov eax,DWORD PTR[((40+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r15,QWORD PTR[6+rsi*8+rbp]
@ -240,7 +240,7 @@ $L$round::
xor r10,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((5*8+8+4))+rsp]
mov ebx,DWORD PTR[((40+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r11,QWORD PTR[2+rsi*8+rbp]
@ -254,7 +254,7 @@ $L$round::
xor r15,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((6*8+8))+rsp]
mov eax,DWORD PTR[((48+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r8,QWORD PTR[6+rsi*8+rbp]
@ -268,7 +268,7 @@ $L$round::
xor r11,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((6*8+8+4))+rsp]
mov ebx,DWORD PTR[((48+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r12,QWORD PTR[2+rsi*8+rbp]
@ -282,7 +282,7 @@ $L$round::
xor r8,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((7*8+8))+rsp]
mov eax,DWORD PTR[((56+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r9,QWORD PTR[6+rsi*8+rbp]
@ -296,19 +296,19 @@ $L$round::
xor r12,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((7*8+8+4))+rsp]
mov ebx,DWORD PTR[((56+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r13,QWORD PTR[2+rsi*8+rbp]
xor r14,QWORD PTR[1+rdi*8+rbp]
mov QWORD PTR[((0*8))+rsp],r8
mov QWORD PTR[((1*8))+rsp],r9
mov QWORD PTR[((2*8))+rsp],r10
mov QWORD PTR[((3*8))+rsp],r11
mov QWORD PTR[((4*8))+rsp],r12
mov QWORD PTR[((5*8))+rsp],r13
mov QWORD PTR[((6*8))+rsp],r14
mov QWORD PTR[((7*8))+rsp],r15
mov QWORD PTR[rsp],r8
mov QWORD PTR[8+rsp],r9
mov QWORD PTR[16+rsp],r10
mov QWORD PTR[24+rsp],r11
mov QWORD PTR[32+rsp],r12
mov QWORD PTR[40+rsp],r13
mov QWORD PTR[48+rsp],r14
mov QWORD PTR[56+rsp],r15
mov cl,al
mov dl,ah
lea rsi,QWORD PTR[rcx*1+rcx]
@ -318,7 +318,7 @@ $L$round::
xor r9,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+0*8+8))+rsp]
mov eax,DWORD PTR[((64+0+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r10,QWORD PTR[6+rsi*8+rbp]
@ -332,7 +332,7 @@ $L$round::
xor r13,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+0*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+0+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r14,QWORD PTR[2+rsi*8+rbp]
@ -346,7 +346,7 @@ $L$round::
xor r10,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+1*8+8))+rsp]
mov eax,DWORD PTR[((64+8+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r11,QWORD PTR[6+rsi*8+rbp]
@ -360,7 +360,7 @@ $L$round::
xor r14,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+1*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+8+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r15,QWORD PTR[2+rsi*8+rbp]
@ -374,7 +374,7 @@ $L$round::
xor r11,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+2*8+8))+rsp]
mov eax,DWORD PTR[((64+16+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r12,QWORD PTR[6+rsi*8+rbp]
@ -388,7 +388,7 @@ $L$round::
xor r15,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+2*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+16+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r8,QWORD PTR[2+rsi*8+rbp]
@ -402,7 +402,7 @@ $L$round::
xor r12,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+3*8+8))+rsp]
mov eax,DWORD PTR[((64+24+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r13,QWORD PTR[6+rsi*8+rbp]
@ -416,7 +416,7 @@ $L$round::
xor r8,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+3*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+24+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r9,QWORD PTR[2+rsi*8+rbp]
@ -430,7 +430,7 @@ $L$round::
xor r13,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+4*8+8))+rsp]
mov eax,DWORD PTR[((64+32+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r14,QWORD PTR[6+rsi*8+rbp]
@ -444,7 +444,7 @@ $L$round::
xor r9,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+4*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+32+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r10,QWORD PTR[2+rsi*8+rbp]
@ -458,7 +458,7 @@ $L$round::
xor r14,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+5*8+8))+rsp]
mov eax,DWORD PTR[((64+40+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r15,QWORD PTR[6+rsi*8+rbp]
@ -472,7 +472,7 @@ $L$round::
xor r10,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+5*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+40+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r11,QWORD PTR[2+rsi*8+rbp]
@ -486,7 +486,7 @@ $L$round::
xor r15,QWORD PTR[7+rdi*8+rbp]
mov cl,al
mov dl,ah
mov eax,DWORD PTR[((64+6*8+8))+rsp]
mov eax,DWORD PTR[((64+48+8))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r8,QWORD PTR[6+rsi*8+rbp]
@ -500,7 +500,7 @@ $L$round::
xor r11,QWORD PTR[3+rdi*8+rbp]
mov cl,bl
mov dl,bh
mov ebx,DWORD PTR[((64+6*8+8+4))+rsp]
mov ebx,DWORD PTR[((64+48+8+4))+rsp]
lea rsi,QWORD PTR[rcx*1+rcx]
lea rdi,QWORD PTR[rdx*1+rdx]
xor r12,QWORD PTR[2+rsi*8+rbp]
@ -540,44 +540,44 @@ $L$round::
je $L$roundsdone
mov QWORD PTR[24+rbx],rsi
mov QWORD PTR[((64+0*8))+rsp],r8
mov QWORD PTR[((64+1*8))+rsp],r9
mov QWORD PTR[((64+2*8))+rsp],r10
mov QWORD PTR[((64+3*8))+rsp],r11
mov QWORD PTR[((64+4*8))+rsp],r12
mov QWORD PTR[((64+5*8))+rsp],r13
mov QWORD PTR[((64+6*8))+rsp],r14
mov QWORD PTR[((64+7*8))+rsp],r15
mov QWORD PTR[((64+0))+rsp],r8
mov QWORD PTR[((64+8))+rsp],r9
mov QWORD PTR[((64+16))+rsp],r10
mov QWORD PTR[((64+24))+rsp],r11
mov QWORD PTR[((64+32))+rsp],r12
mov QWORD PTR[((64+40))+rsp],r13
mov QWORD PTR[((64+48))+rsp],r14
mov QWORD PTR[((64+56))+rsp],r15
jmp $L$round
ALIGN 16
$L$roundsdone::
mov rdi,QWORD PTR[rbx]
mov rsi,QWORD PTR[8+rbx]
mov rax,QWORD PTR[16+rbx]
xor r8,QWORD PTR[((0*8))+rsi]
xor r9,QWORD PTR[((1*8))+rsi]
xor r10,QWORD PTR[((2*8))+rsi]
xor r11,QWORD PTR[((3*8))+rsi]
xor r12,QWORD PTR[((4*8))+rsi]
xor r13,QWORD PTR[((5*8))+rsi]
xor r14,QWORD PTR[((6*8))+rsi]
xor r15,QWORD PTR[((7*8))+rsi]
xor r8,QWORD PTR[((0*8))+rdi]
xor r9,QWORD PTR[((1*8))+rdi]
xor r10,QWORD PTR[((2*8))+rdi]
xor r11,QWORD PTR[((3*8))+rdi]
xor r12,QWORD PTR[((4*8))+rdi]
xor r13,QWORD PTR[((5*8))+rdi]
xor r14,QWORD PTR[((6*8))+rdi]
xor r15,QWORD PTR[((7*8))+rdi]
mov QWORD PTR[((0*8))+rdi],r8
mov QWORD PTR[((1*8))+rdi],r9
mov QWORD PTR[((2*8))+rdi],r10
mov QWORD PTR[((3*8))+rdi],r11
mov QWORD PTR[((4*8))+rdi],r12
mov QWORD PTR[((5*8))+rdi],r13
mov QWORD PTR[((6*8))+rdi],r14
mov QWORD PTR[((7*8))+rdi],r15
xor r8,QWORD PTR[rsi]
xor r9,QWORD PTR[8+rsi]
xor r10,QWORD PTR[16+rsi]
xor r11,QWORD PTR[24+rsi]
xor r12,QWORD PTR[32+rsi]
xor r13,QWORD PTR[40+rsi]
xor r14,QWORD PTR[48+rsi]
xor r15,QWORD PTR[56+rsi]
xor r8,QWORD PTR[rdi]
xor r9,QWORD PTR[8+rdi]
xor r10,QWORD PTR[16+rdi]
xor r11,QWORD PTR[24+rdi]
xor r12,QWORD PTR[32+rdi]
xor r13,QWORD PTR[40+rdi]
xor r14,QWORD PTR[48+rdi]
xor r15,QWORD PTR[56+rdi]
mov QWORD PTR[rdi],r8
mov QWORD PTR[8+rdi],r9
mov QWORD PTR[16+rdi],r10
mov QWORD PTR[24+rdi],r11
mov QWORD PTR[32+rdi],r12
mov QWORD PTR[40+rdi],r13
mov QWORD PTR[48+rdi],r14
mov QWORD PTR[56+rdi],r15
lea rsi,QWORD PTR[64+rsi]
sub rax,1
jz $L$alldone

72
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm

@ -1,9 +1,15 @@
OPTION DOTNAME
EXTERN OPENSSL_cpuid_setup:NEAR
.CRT$XCU SEGMENT READONLY ALIGN(8)
DQ OPENSSL_cpuid_setup
.CRT$XCU ENDS
_DATA SEGMENT
COMM OPENSSL_ia32cap_P:DWORD:2
_DATA ENDS
.text$ SEGMENT ALIGN(64) 'CODE'
PUBLIC OPENSSL_atomic_add
@ -68,7 +74,15 @@ OPENSSL_ia32_cpuid PROC PUBLIC
mov eax,080000000h
cpuid
cmp eax,080000008h
cmp eax,080000001h
jb $L$intel
mov r10d,eax
mov eax,080000001h
cpuid
or r9d,ecx
and r9d,000000801h
cmp r10d,080000008h
jb $L$intel
mov eax,080000008h
@ -79,12 +93,12 @@ OPENSSL_ia32_cpuid PROC PUBLIC
mov eax,1
cpuid
bt edx,28
jnc $L$done
jnc $L$generic
shr ebx,16
cmp bl,r10b
ja $L$done
ja $L$generic
and edx,0efffffffh
jmp $L$done
jmp $L$generic
$L$intel::
cmp r11d,4
@ -101,30 +115,48 @@ $L$intel::
$L$nocacheinfo::
mov eax,1
cpuid
and edx,0bfefffffh
cmp r9d,0
jne $L$notintel
or edx,000100000h
or edx,040000000h
and ah,15
cmp ah,15
je $L$notintel
or edx,040000000h
jne $L$notintel
or edx,000100000h
$L$notintel::
bt edx,28
jnc $L$done
jnc $L$generic
and edx,0efffffffh
cmp r10d,0
je $L$done
je $L$generic
or edx,010000000h
shr ebx,16
cmp bl,1
ja $L$done
ja $L$generic
and edx,0efffffffh
$L$generic::
and r9d,000000800h
and ecx,0fffff7ffh
or r9d,ecx
mov r10d,edx
bt r9d,27
jnc $L$clear_avx
xor ecx,ecx
DB 00fh,001h,0d0h
and eax,6
cmp eax,6
je $L$done
$L$clear_avx::
mov eax,0efffe7ffh
and r9d,eax
$L$done::
shl rcx,32
mov eax,edx
shl r9,32
mov eax,r10d
mov rbx,r8
or rax,rcx
or rax,r9
DB 0F3h,0C3h ;repret
OPENSSL_ia32_cpuid ENDP
@ -181,6 +213,20 @@ OPENSSL_wipe_cpu PROC PUBLIC
lea rax,QWORD PTR[8+rsp]
DB 0F3h,0C3h ;repret
OPENSSL_wipe_cpu ENDP
PUBLIC OPENSSL_ia32_rdrand
ALIGN 16
OPENSSL_ia32_rdrand PROC PUBLIC
mov ecx,8
$L$oop_rdrand::
DB 72,15,199,240
jc $L$break_rdrand
loop $L$oop_rdrand
$L$break_rdrand::
cmp rax,0
cmove rax,rcx
DB 0F3h,0C3h ;repret
OPENSSL_ia32_rdrand ENDP
.text$ ENDS
END

235
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm.orig

@ -0,0 +1,235 @@
OPTION DOTNAME
EXTERN OPENSSL_cpuid_setup:NEAR
<<<<<<< HEAD
=======
>>>>>>> openssl: regenerate asm files for openssl 1.0.1
.CRT$XCU SEGMENT READONLY ALIGN(8)
DQ OPENSSL_cpuid_setup
.CRT$XCU ENDS
_DATA SEGMENT
COMM OPENSSL_ia32cap_P:DWORD:2
_DATA ENDS
.text$ SEGMENT ALIGN(64) 'CODE'
PUBLIC OPENSSL_atomic_add
ALIGN 16
OPENSSL_atomic_add PROC PUBLIC
mov eax,DWORD PTR[rcx]
$L$spin:: lea r8,QWORD PTR[rax*1+rdx]
DB 0f0h
cmpxchg DWORD PTR[rcx],r8d
jne $L$spin
mov eax,r8d
DB 048h,098h
DB 0F3h,0C3h ;repret
OPENSSL_atomic_add ENDP
PUBLIC OPENSSL_rdtsc
ALIGN 16
OPENSSL_rdtsc PROC PUBLIC
rdtsc
shl rdx,32
or rax,rdx
DB 0F3h,0C3h ;repret
OPENSSL_rdtsc ENDP
PUBLIC OPENSSL_ia32_cpuid
ALIGN 16
OPENSSL_ia32_cpuid PROC PUBLIC
mov r8,rbx
xor eax,eax
cpuid
mov r11d,eax
xor eax,eax
cmp ebx,0756e6547h
setne al
mov r9d,eax
cmp edx,049656e69h
setne al
or r9d,eax
cmp ecx,06c65746eh
setne al
or r9d,eax
jz $L$intel
cmp ebx,068747541h
setne al
mov r10d,eax
cmp edx,069746E65h
setne al
or r10d,eax
cmp ecx,0444D4163h
setne al
or r10d,eax
jnz $L$intel
mov eax,080000000h
cpuid
cmp eax,080000001h
jb $L$intel
mov r10d,eax
mov eax,080000001h
cpuid
or r9d,ecx
and r9d,000000801h
cmp r10d,080000008h
jb $L$intel
mov eax,080000008h
cpuid
movzx r10,cl
inc r10
mov eax,1
cpuid
bt edx,28
jnc $L$generic
shr ebx,16
cmp bl,r10b
ja $L$generic
and edx,0efffffffh
jmp $L$generic
$L$intel::
cmp r11d,4
mov r10d,-1
jb $L$nocacheinfo
mov eax,4
mov ecx,0
cpuid
mov r10d,eax
shr r10d,14
and r10d,0fffh
$L$nocacheinfo::
mov eax,1
cpuid
and edx,0bfefffffh
cmp r9d,0
jne $L$notintel
or edx,040000000h
and ah,15
cmp ah,15
jne $L$notintel
or edx,000100000h
$L$notintel::
bt edx,28
jnc $L$generic
and edx,0efffffffh
cmp r10d,0
je $L$generic
or edx,010000000h
shr ebx,16
cmp bl,1
ja $L$generic
and edx,0efffffffh
$L$generic::
and r9d,000000800h
and ecx,0fffff7ffh
or r9d,ecx
mov r10d,edx
bt r9d,27
jnc $L$clear_avx
xor ecx,ecx
DB 00fh,001h,0d0h
and eax,6
cmp eax,6
je $L$done
$L$clear_avx::
mov eax,0efffe7ffh
and r9d,eax
$L$done::
shl r9,32
mov eax,r10d
mov rbx,r8
or rax,r9
DB 0F3h,0C3h ;repret
OPENSSL_ia32_cpuid ENDP
PUBLIC OPENSSL_cleanse
ALIGN 16
OPENSSL_cleanse PROC PUBLIC
xor rax,rax
cmp rdx,15
jae $L$ot
cmp rdx,0
je $L$ret
$L$ittle::
mov BYTE PTR[rcx],al
sub rdx,1
lea rcx,QWORD PTR[1+rcx]
jnz $L$ittle
$L$ret::
DB 0F3h,0C3h ;repret
ALIGN 16
$L$ot::
test rcx,7
jz $L$aligned
mov BYTE PTR[rcx],al
lea rdx,QWORD PTR[((-1))+rdx]
lea rcx,QWORD PTR[1+rcx]
jmp $L$ot
$L$aligned::
mov QWORD PTR[rcx],rax
lea rdx,QWORD PTR[((-8))+rdx]
test rdx,-8
lea rcx,QWORD PTR[8+rcx]
jnz $L$aligned
cmp rdx,0
jne $L$ittle
DB 0F3h,0C3h ;repret
OPENSSL_cleanse ENDP
PUBLIC OPENSSL_wipe_cpu
ALIGN 16
OPENSSL_wipe_cpu PROC PUBLIC
pxor xmm0,xmm0
pxor xmm1,xmm1
pxor xmm2,xmm2
pxor xmm3,xmm3
pxor xmm4,xmm4
pxor xmm5,xmm5
xor rcx,rcx
xor rdx,rdx
xor r8,r8
xor r9,r9
xor r10,r10
xor r11,r11
lea rax,QWORD PTR[8+rsp]
DB 0F3h,0C3h ;repret
OPENSSL_wipe_cpu ENDP
PUBLIC OPENSSL_ia32_rdrand
ALIGN 16
OPENSSL_ia32_rdrand PROC PUBLIC
mov ecx,8
$L$oop_rdrand::
DB 72,15,199,240
jc $L$break_rdrand
loop $L$oop_rdrand
$L$break_rdrand::
cmp rax,0
cmove rax,rcx
DB 0F3h,0C3h ;repret
OPENSSL_ia32_rdrand ENDP
.text$ ENDS
END

22
deps/openssl/asm/x86-elf-gas/aes/aes-586.s

@ -2986,19 +2986,19 @@ _x86_AES_set_encrypt_key:
popl %ebp
ret
.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
.globl AES_set_encrypt_key
.type AES_set_encrypt_key,@function
.globl private_AES_set_encrypt_key
.type private_AES_set_encrypt_key,@function
.align 16
AES_set_encrypt_key:
.L_AES_set_encrypt_key_begin:
private_AES_set_encrypt_key:
.L_private_AES_set_encrypt_key_begin:
call _x86_AES_set_encrypt_key
ret
.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin
.globl AES_set_decrypt_key
.type AES_set_decrypt_key,@function
.size private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin
.globl private_AES_set_decrypt_key
.type private_AES_set_decrypt_key,@function
.align 16
AES_set_decrypt_key:
.L_AES_set_decrypt_key_begin:
private_AES_set_decrypt_key:
.L_private_AES_set_decrypt_key_begin:
call _x86_AES_set_encrypt_key
cmpl $0,%eax
je .L054proceed
@ -3227,8 +3227,8 @@ AES_set_decrypt_key:
popl %ebx
popl %ebp
ret
.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin
.size private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin
.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.comm OPENSSL_ia32cap_P,4,4
.comm OPENSSL_ia32cap_P,8,4

2143
deps/openssl/asm/x86-elf-gas/aes/aesni-x86.s

File diff suppressed because it is too large

10
deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s

@ -1537,11 +1537,11 @@ Camellia_Ekeygen:
popl %ebp
ret
.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
.globl Camellia_set_key
.type Camellia_set_key,@function
.globl private_Camellia_set_key
.type private_Camellia_set_key,@function
.align 16
Camellia_set_key:
.L_Camellia_set_key_begin:
private_Camellia_set_key:
.L_private_Camellia_set_key_begin:
pushl %ebx
movl 8(%esp),%ecx
movl 12(%esp),%ebx
@ -1571,7 +1571,7 @@ Camellia_set_key:
.L014done:
popl %ebx
ret
.size Camellia_set_key,.-.L_Camellia_set_key_begin
.size private_Camellia_set_key,.-.L_private_Camellia_set_key_begin
.align 64
.LCamellia_SIGMA:
.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0

218
deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s

@ -29,11 +29,146 @@ RC4:
movl (%edi,%eax,4),%ecx
andl $-4,%edx
jz .L002loop1
leal -4(%esi,%edx,1),%edx
movl %edx,28(%esp)
testl $-8,%edx
movl %ebp,32(%esp)
jz .L003go4loop4
leal OPENSSL_ia32cap_P,%ebp
btl $26,(%ebp)
jnc .L003go4loop4
movl 32(%esp),%ebp
andl $-8,%edx
leal -8(%esi,%edx,1),%edx
movl %edx,-4(%edi)
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
movq (%esi),%mm0
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm2
jmp .L004loop_mmx_enter
.align 16
.L005loop_mmx:
addb %cl,%bl
psllq $56,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movq (%esi),%mm0
movq %mm2,-8(%ebp,%esi,1)
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm2
.L004loop_mmx_enter:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm0,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $8,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $16,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $24,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $32,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $40,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $48,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
movl %ebx,%edx
xorl %ebx,%ebx
movb %dl,%bl
cmpl -4(%edi),%esi
leal 8(%esi),%esi
jb .L005loop_mmx
psllq $56,%mm1
pxor %mm1,%mm2
movq %mm2,-8(%ebp,%esi,1)
emms
cmpl 24(%esp),%esi
je .L006done
jmp .L002loop1
.align 16
.L003loop4:
.L003go4loop4:
leal -4(%esi,%edx,1),%edx
movl %edx,28(%esp)
.L007loop4:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
@ -79,9 +214,9 @@ RC4:
movl %ebp,(%ecx,%esi,1)
leal 4(%esi),%esi
movl (%edi,%eax,4),%ecx
jb .L003loop4
jb .L007loop4
cmpl 24(%esp),%esi
je .L004done
je .L006done
movl 32(%esp),%ebp
.align 16
.L002loop1:
@ -99,11 +234,11 @@ RC4:
cmpl 24(%esp),%esi
movb %dl,-1(%ebp,%esi,1)
jb .L002loop1
jmp .L004done
jmp .L006done
.align 16
.L001RC4_CHAR:
movzbl (%edi,%eax,1),%ecx
.L005cloop1:
.L008cloop1:
addb %cl,%bl
movzbl (%edi,%ebx,1),%edx
movb %cl,(%edi,%ebx,1)
@ -116,10 +251,10 @@ RC4:
movzbl (%edi,%eax,1),%ecx
cmpl 24(%esp),%esi
movb %dl,-1(%ebp,%esi,1)
jb .L005cloop1
.L004done:
jb .L008cloop1
.L006done:
decb %al
movb %bl,-4(%edi)
movl %ebx,-4(%edi)
movb %al,-8(%edi)
.L000abort:
popl %edi
@ -128,11 +263,11 @@ RC4:
popl %ebp
ret
.size RC4,.-.L_RC4_begin
.globl RC4_set_key
.type RC4_set_key,@function
.globl private_RC4_set_key
.type private_RC4_set_key,@function
.align 16
RC4_set_key:
.L_RC4_set_key_begin:
private_RC4_set_key:
.L_private_RC4_set_key_begin:
pushl %ebp
pushl %ebx
pushl %esi
@ -147,53 +282,53 @@ RC4_set_key:
xorl %eax,%eax
movl %ebp,-4(%edi)
btl $20,(%edx)
jc .L006c1stloop
jc .L009c1stloop
.align 16
.L007w1stloop:
.L010w1stloop:
movl %eax,(%edi,%eax,4)
addb $1,%al
jnc .L007w1stloop
jnc .L010w1stloop
xorl %ecx,%ecx
xorl %edx,%edx
.align 16
.L008w2ndloop:
.L011w2ndloop:
movl (%edi,%ecx,4),%eax
addb (%esi,%ebp,1),%dl
addb %al,%dl
addl $1,%ebp
movl (%edi,%edx,4),%ebx
jnz .L009wnowrap
jnz .L012wnowrap
movl -4(%edi),%ebp
.L009wnowrap:
.L012wnowrap:
movl %eax,(%edi,%edx,4)
movl %ebx,(%edi,%ecx,4)
addb $1,%cl
jnc .L008w2ndloop
jmp .L010exit
jnc .L011w2ndloop
jmp .L013exit
.align 16
.L006c1stloop:
.L009c1stloop:
movb %al,(%edi,%eax,1)
addb $1,%al
jnc .L006c1stloop
jnc .L009c1stloop
xorl %ecx,%ecx
xorl %edx,%edx
xorl %ebx,%ebx
.align 16
.L011c2ndloop:
.L014c2ndloop:
movb (%edi,%ecx,1),%al
addb (%esi,%ebp,1),%dl
addb %al,%dl
addl $1,%ebp
movb (%edi,%edx,1),%bl
jnz .L012cnowrap
jnz .L015cnowrap
movl -4(%edi),%ebp
.L012cnowrap:
.L015cnowrap:
movb %al,(%edi,%edx,1)
movb %bl,(%edi,%ecx,1)
addb $1,%cl
jnc .L011c2ndloop
jnc .L014c2ndloop
movl $-1,256(%edi)
.L010exit:
.L013exit:
xorl %eax,%eax
movl %eax,-8(%edi)
movl %eax,-4(%edi)
@ -202,29 +337,36 @@ RC4_set_key:
popl %ebx
popl %ebp
ret
.size RC4_set_key,.-.L_RC4_set_key_begin
.size private_RC4_set_key,.-.L_private_RC4_set_key_begin
.globl RC4_options
.type RC4_options,@function
.align 16
RC4_options:
.L_RC4_options_begin:
call .L013pic_point
.L013pic_point:
call .L016pic_point
.L016pic_point:
popl %eax
leal .L014opts-.L013pic_point(%eax),%eax
leal .L017opts-.L016pic_point(%eax),%eax
leal OPENSSL_ia32cap_P,%edx
btl $20,(%edx)
jnc .L015skip
movl (%edx),%edx
btl $20,%edx
jc .L0181xchar
btl $26,%edx
jnc .L019ret
addl $25,%eax
ret
.L0181xchar:
addl $12,%eax
.L015skip:
.L019ret:
ret
.align 64
.L014opts:
.L017opts:
.byte 114,99,52,40,52,120,44,105,110,116,41,0
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
.byte 114,99,52,40,56,120,44,109,109,120,41,0
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
.size RC4_options,.-.L_RC4_options_begin
.comm OPENSSL_ia32cap_P,4,4
.comm OPENSSL_ia32cap_P,8,4

1262
deps/openssl/asm/x86-elf-gas/sha/sha1-586.s

File diff suppressed because it is too large

65
deps/openssl/asm/x86-elf-gas/sha/sha256-586.s

@ -96,31 +96,30 @@ sha256_block_data_order:
.L00300_15:
movl 92(%esp),%ebx
movl %edx,%ecx
rorl $6,%ecx
movl %edx,%edi
rorl $11,%edi
rorl $14,%ecx
movl 20(%esp),%esi
xorl %edi,%ecx
rorl $14,%edi
xorl %edi,%ecx
xorl %edx,%ecx
rorl $5,%ecx
xorl %edx,%ecx
rorl $6,%ecx
movl 24(%esp),%edi
addl %ecx,%ebx
movl %edx,16(%esp)
xorl %edi,%esi
movl %edx,16(%esp)
movl %eax,%ecx
andl %edx,%esi
movl 12(%esp),%edx
xorl %edi,%esi
movl %eax,%edi
addl %esi,%ebx
rorl $2,%ecx
rorl $9,%ecx
addl 28(%esp),%ebx
rorl $13,%edi
xorl %eax,%ecx
rorl $11,%ecx
movl 4(%esp),%esi
xorl %edi,%ecx
rorl $9,%edi
xorl %eax,%ecx
rorl $2,%ecx
addl %ebx,%edx
xorl %edi,%ecx
movl 8(%esp),%edi
addl %ecx,%ebx
movl %eax,(%esp)
@ -142,48 +141,46 @@ sha256_block_data_order:
.L00416_63:
movl %ebx,%esi
movl 100(%esp),%ecx
shrl $3,%ebx
rorl $7,%esi
xorl %esi,%ebx
rorl $11,%esi
movl %ecx,%edi
xorl %ebx,%esi
rorl $7,%esi
shrl $3,%ebx
rorl $2,%edi
xorl %esi,%ebx
shrl $10,%ecx
movl 156(%esp),%esi
xorl %ecx,%edi
rorl $17,%edi
xorl %edi,%ecx
rorl $2,%edi
addl %esi,%ebx
shrl $10,%ecx
addl 156(%esp),%ebx
xorl %ecx,%edi
addl %edi,%ebx
movl %edx,%ecx
addl 120(%esp),%ebx
rorl $6,%ecx
movl %edx,%edi
rorl $11,%edi
movl %edx,%ecx
addl %edi,%ebx
rorl $14,%ecx
movl 20(%esp),%esi
xorl %edi,%ecx
rorl $14,%edi
xorl %edx,%ecx
rorl $5,%ecx
movl %ebx,92(%esp)
xorl %edi,%ecx
xorl %edx,%ecx
rorl $6,%ecx
movl 24(%esp),%edi
addl %ecx,%ebx
movl %edx,16(%esp)
xorl %edi,%esi
movl %edx,16(%esp)
movl %eax,%ecx
andl %edx,%esi
movl 12(%esp),%edx
xorl %edi,%esi
movl %eax,%edi
addl %esi,%ebx
rorl $2,%ecx
rorl $9,%ecx
addl 28(%esp),%ebx
rorl $13,%edi
xorl %eax,%ecx
rorl $11,%ecx
movl 4(%esp),%esi
xorl %edi,%ecx
rorl $9,%edi
xorl %eax,%ecx
rorl $2,%ecx
addl %ebx,%edx
xorl %edi,%ecx
movl 8(%esp),%edi
addl %ecx,%ebx
movl %eax,(%esp)

135
deps/openssl/asm/x86-elf-gas/x86cpuid.s

@ -19,9 +19,9 @@ OPENSSL_ia32_cpuid:
pushfl
popl %eax
xorl %eax,%ecx
btl $21,%ecx
jnc .L000done
xorl %eax,%eax
btl $21,%ecx
jnc .L000nocpuid
.byte 0x0f,0xa2
movl %eax,%edi
xorl %eax,%eax
@ -47,7 +47,14 @@ OPENSSL_ia32_cpuid:
jnz .L001intel
movl $2147483648,%eax
.byte 0x0f,0xa2
cmpl $2147483656,%eax
cmpl $2147483649,%eax
jb .L001intel
movl %eax,%esi
movl $2147483649,%eax
.byte 0x0f,0xa2
orl %ecx,%ebp
andl $2049,%ebp
cmpl $2147483656,%esi
jb .L001intel
movl $2147483656,%eax
.byte 0x0f,0xa2
@ -56,46 +63,68 @@ OPENSSL_ia32_cpuid:
movl $1,%eax
.byte 0x0f,0xa2
btl $28,%edx
jnc .L000done
jnc .L002generic
shrl $16,%ebx
andl $255,%ebx
cmpl %esi,%ebx
ja .L000done
ja .L002generic
andl $4026531839,%edx
jmp .L000done
jmp .L002generic
.L001intel:
cmpl $4,%edi
movl $-1,%edi
jb .L002nocacheinfo
jb .L003nocacheinfo
movl $4,%eax
movl $0,%ecx
.byte 0x0f,0xa2
movl %eax,%edi
shrl $14,%edi
andl $4095,%edi
.L002nocacheinfo:
.L003nocacheinfo:
movl $1,%eax
.byte 0x0f,0xa2
andl $3220176895,%edx
cmpl $0,%ebp
jne .L003notP4
jne .L004notintel
orl $1073741824,%edx
andb $15,%ah
cmpb $15,%ah
jne .L003notP4
jne .L004notintel
orl $1048576,%edx
.L003notP4:
.L004notintel:
btl $28,%edx
jnc .L000done
jnc .L002generic
andl $4026531839,%edx
cmpl $0,%edi
je .L000done
je .L002generic
orl $268435456,%edx
shrl $16,%ebx
cmpb $1,%bl
ja .L000done
ja .L002generic
andl $4026531839,%edx
.L000done:
movl %edx,%eax
movl %ecx,%edx
.L002generic:
andl $2048,%ebp
andl $4294965247,%ecx
movl %edx,%esi
orl %ecx,%ebp
btl $27,%ecx
jnc .L005clear_avx
xorl %ecx,%ecx
.byte 15,1,208
andl $6,%eax
cmpl $6,%eax
je .L006done
cmpl $2,%eax
je .L005clear_avx
.L007clear_xmm:
andl $4261412861,%ebp
andl $4278190079,%esi
.L005clear_avx:
andl $4026525695,%ebp
.L006done:
movl %esi,%eax
movl %ebp,%edx
.L000nocpuid:
popl %edi
popl %esi
popl %ebx
@ -111,9 +140,9 @@ OPENSSL_rdtsc:
xorl %edx,%edx
leal OPENSSL_ia32cap_P,%ecx
btl $4,(%ecx)
jnc .L004notsc
jnc .L008notsc
.byte 0x0f,0x31
.L004notsc:
.L008notsc:
ret
.size OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin
.globl OPENSSL_instrument_halt
@ -123,14 +152,14 @@ OPENSSL_instrument_halt:
.L_OPENSSL_instrument_halt_begin:
leal OPENSSL_ia32cap_P,%ecx
btl $4,(%ecx)
jnc .L005nohalt
jnc .L009nohalt
.long 2421723150
andl $3,%eax
jnz .L005nohalt
jnz .L009nohalt
pushfl
popl %eax
btl $9,%eax
jnc .L005nohalt
jnc .L009nohalt
.byte 0x0f,0x31
pushl %edx
pushl %eax
@ -140,7 +169,7 @@ OPENSSL_instrument_halt:
sbbl 4(%esp),%edx
addl $8,%esp
ret
.L005nohalt:
.L009nohalt:
xorl %eax,%eax
xorl %edx,%edx
ret
@ -153,21 +182,21 @@ OPENSSL_far_spin:
pushfl
popl %eax
btl $9,%eax
jnc .L006nospin
jnc .L010nospin
movl 4(%esp),%eax
movl 8(%esp),%ecx
.long 2430111262
xorl %eax,%eax
movl (%ecx),%edx
jmp .L007spin
jmp .L011spin
.align 16
.L007spin:
.L011spin:
incl %eax
cmpl (%ecx),%edx
je .L007spin
je .L011spin
.long 529567888
ret
.L006nospin:
.L010nospin:
xorl %eax,%eax
xorl %edx,%edx
ret
@ -182,9 +211,9 @@ OPENSSL_wipe_cpu:
leal OPENSSL_ia32cap_P,%ecx
movl (%ecx),%ecx
btl $1,(%ecx)
jnc .L008no_x87
jnc .L012no_x87
.long 4007259865,4007259865,4007259865,4007259865,2430851995
.L008no_x87:
.L012no_x87:
leal 4(%esp),%eax
ret
.size OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin
@ -198,11 +227,11 @@ OPENSSL_atomic_add:
pushl %ebx
nop
movl (%edx),%eax
.L009spin:
.L013spin:
leal (%eax,%ecx,1),%ebx
nop
.long 447811568
jne .L009spin
jne .L013spin
movl %ebx,%eax
popl %ebx
ret
@ -243,37 +272,49 @@ OPENSSL_cleanse:
movl 8(%esp),%ecx
xorl %eax,%eax
cmpl $7,%ecx
jae .L010lot
jae .L014lot
cmpl $0,%ecx
je .L011ret
.L012little:
je .L015ret
.L016little:
movb %al,(%edx)
subl $1,%ecx
leal 1(%edx),%edx
jnz .L012little
.L011ret:
jnz .L016little
.L015ret:
ret
.align 16
.L010lot:
.L014lot:
testl $3,%edx
jz .L013aligned
jz .L017aligned
movb %al,(%edx)
leal -1(%ecx),%ecx
leal 1(%edx),%edx
jmp .L010lot
.L013aligned:
jmp .L014lot
.L017aligned:
movl %eax,(%edx)
leal -4(%ecx),%ecx
testl $-4,%ecx
leal 4(%edx),%edx
jnz .L013aligned
jnz .L017aligned
cmpl $0,%ecx
jne .L012little
jne .L016little
ret
.size OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin
.comm OPENSSL_ia32cap_P,4,4
.globl OPENSSL_ia32_rdrand
.type OPENSSL_ia32_rdrand,@function
.align 16
OPENSSL_ia32_rdrand:
.L_OPENSSL_ia32_rdrand_begin:
movl $8,%ecx
.L018loop:
.byte 15,199,240
jc .L019break
loop .L018loop
.L019break:
cmpl $0,%eax
cmovel %ecx,%eax
ret
.size OPENSSL_ia32_rdrand,.-.L_OPENSSL_ia32_rdrand_begin
.comm OPENSSL_ia32cap_P,8,4
.section .init
call OPENSSL_cpuid_setup
jmp .Linitalign
.align 16
.Linitalign:

24
deps/openssl/asm/x86-macosx-gas/aes/aes-586.s

@ -975,7 +975,7 @@ L_AES_encrypt_begin:
call L004pic_point
L004pic_point:
popl %ebp
leal _OPENSSL_ia32cap_P,%eax
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax
leal LAES_Te-L004pic_point(%ebp),%ebp
leal 764(%esp),%ebx
subl %ebp,%ebx
@ -2153,7 +2153,7 @@ L_AES_decrypt_begin:
call L010pic_point
L010pic_point:
popl %ebp
leal _OPENSSL_ia32cap_P,%eax
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax
leal LAES_Td-L010pic_point(%ebp),%ebp
leal 764(%esp),%ebx
subl %ebp,%ebx
@ -2207,7 +2207,7 @@ L_AES_cbc_encrypt_begin:
call L013pic_point
L013pic_point:
popl %ebp
leal _OPENSSL_ia32cap_P,%eax
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax
cmpl $0,40(%esp)
leal LAES_Te-L013pic_point(%ebp),%ebp
jne L014picked_te
@ -2950,16 +2950,16 @@ L045exit:
popl %ebx
popl %ebp
ret
.globl _AES_set_encrypt_key
.globl _private_AES_set_encrypt_key
.align 4
_AES_set_encrypt_key:
L_AES_set_encrypt_key_begin:
_private_AES_set_encrypt_key:
L_private_AES_set_encrypt_key_begin:
call __x86_AES_set_encrypt_key
ret
.globl _AES_set_decrypt_key
.globl _private_AES_set_decrypt_key
.align 4
_AES_set_decrypt_key:
L_AES_set_decrypt_key_begin:
_private_AES_set_decrypt_key:
L_private_AES_set_decrypt_key_begin:
call __x86_AES_set_encrypt_key
cmpl $0,%eax
je L054proceed
@ -3191,4 +3191,8 @@ L056permute:
.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.comm _OPENSSL_ia32cap_P,4
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,8,2

2107
deps/openssl/asm/x86-macosx-gas/aes/aesni-x86.s

File diff suppressed because it is too large

6
deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s

@ -1519,10 +1519,10 @@ L013done:
popl %ebx
popl %ebp
ret
.globl _Camellia_set_key
.globl _private_Camellia_set_key
.align 4
_Camellia_set_key:
L_Camellia_set_key_begin:
_private_Camellia_set_key:
L_private_Camellia_set_key_begin:
pushl %ebx
movl 8(%esp),%ecx
movl 12(%esp),%ebx

13
deps/openssl/asm/x86-macosx-gas/des/crypt586.s

@ -13,11 +13,14 @@ L_fcrypt_body_begin:
xorl %edi,%edi
xorl %esi,%esi
leal _DES_SPtrans,%edx
call L000PIC_me_up
L000PIC_me_up:
popl %edx
movl L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx
pushl %edx
movl 28(%esp),%ebp
pushl $25
L000start:
L001start:
# Round 0
@ -840,7 +843,7 @@ L000start:
movl %esi,%edi
movl %eax,%esi
movl %ebx,(%esp)
jnz L000start
jnz L001start
# FP
@ -889,3 +892,7 @@ L000start:
popl %ebx
popl %ebp
ret
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_DES_SPtrans$non_lazy_ptr:
.indirect_symbol _DES_SPtrans
.long 0

231
deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s

@ -28,11 +28,149 @@ L_RC4_begin:
movl (%edi,%eax,4),%ecx
andl $-4,%edx
jz L002loop1
leal -4(%esi,%edx,1),%edx
movl %edx,28(%esp)
testl $-8,%edx
movl %ebp,32(%esp)
jz L003go4loop4
call L004PIC_me_up
L004PIC_me_up:
popl %ebp
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004PIC_me_up(%ebp),%ebp
btl $26,(%ebp)
jnc L003go4loop4
movl 32(%esp),%ebp
andl $-8,%edx
leal -8(%esi,%edx,1),%edx
movl %edx,-4(%edi)
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
movq (%esi),%mm0
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm2
jmp L005loop_mmx_enter
.align 4,0x90
L003loop4:
L006loop_mmx:
addb %cl,%bl
psllq $56,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movq (%esi),%mm0
movq %mm2,-8(%ebp,%esi,1)
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm2
L005loop_mmx_enter:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm0,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $8,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $16,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $24,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $32,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $40,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $48,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
movl %ebx,%edx
xorl %ebx,%ebx
movb %dl,%bl
cmpl -4(%edi),%esi
leal 8(%esi),%esi
jb L006loop_mmx
psllq $56,%mm1
pxor %mm1,%mm2
movq %mm2,-8(%ebp,%esi,1)
emms
cmpl 24(%esp),%esi
je L007done
jmp L002loop1
.align 4,0x90
L003go4loop4:
leal -4(%esi,%edx,1),%edx
movl %edx,28(%esp)
L008loop4:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
@ -78,9 +216,9 @@ L003loop4:
movl %ebp,(%ecx,%esi,1)
leal 4(%esi),%esi
movl (%edi,%eax,4),%ecx
jb L003loop4
jb L008loop4
cmpl 24(%esp),%esi
je L004done
je L007done
movl 32(%esp),%ebp
.align 4,0x90
L002loop1:
@ -98,11 +236,11 @@ L002loop1:
cmpl 24(%esp),%esi
movb %dl,-1(%ebp,%esi,1)
jb L002loop1
jmp L004done
jmp L007done
.align 4,0x90
L001RC4_CHAR:
movzbl (%edi,%eax,1),%ecx
L005cloop1:
L009cloop1:
addb %cl,%bl
movzbl (%edi,%ebx,1),%edx
movb %cl,(%edi,%ebx,1)
@ -115,10 +253,10 @@ L005cloop1:
movzbl (%edi,%eax,1),%ecx
cmpl 24(%esp),%esi
movb %dl,-1(%ebp,%esi,1)
jb L005cloop1
L004done:
jb L009cloop1
L007done:
decb %al
movb %bl,-4(%edi)
movl %ebx,-4(%edi)
movb %al,-8(%edi)
L000abort:
popl %edi
@ -126,10 +264,10 @@ L000abort:
popl %ebx
popl %ebp
ret
.globl _RC4_set_key
.globl _private_RC4_set_key
.align 4
_RC4_set_key:
L_RC4_set_key_begin:
_private_RC4_set_key:
L_private_RC4_set_key_begin:
pushl %ebp
pushl %ebx
pushl %esi
@ -137,60 +275,63 @@ L_RC4_set_key_begin:
movl 20(%esp),%edi
movl 24(%esp),%ebp
movl 28(%esp),%esi
leal _OPENSSL_ia32cap_P,%edx
call L010PIC_me_up
L010PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%edx),%edx
leal 8(%edi),%edi
leal (%esi,%ebp,1),%esi
negl %ebp
xorl %eax,%eax
movl %ebp,-4(%edi)
btl $20,(%edx)
jc L006c1stloop
jc L011c1stloop
.align 4,0x90
L007w1stloop:
L012w1stloop:
movl %eax,(%edi,%eax,4)
addb $1,%al
jnc L007w1stloop
jnc L012w1stloop
xorl %ecx,%ecx
xorl %edx,%edx
.align 4,0x90
L008w2ndloop:
L013w2ndloop:
movl (%edi,%ecx,4),%eax
addb (%esi,%ebp,1),%dl
addb %al,%dl
addl $1,%ebp
movl (%edi,%edx,4),%ebx
jnz L009wnowrap
jnz L014wnowrap
movl -4(%edi),%ebp
L009wnowrap:
L014wnowrap:
movl %eax,(%edi,%edx,4)
movl %ebx,(%edi,%ecx,4)
addb $1,%cl
jnc L008w2ndloop
jmp L010exit
jnc L013w2ndloop
jmp L015exit
.align 4,0x90
L006c1stloop:
L011c1stloop:
movb %al,(%edi,%eax,1)
addb $1,%al
jnc L006c1stloop
jnc L011c1stloop
xorl %ecx,%ecx
xorl %edx,%edx
xorl %ebx,%ebx
.align 4,0x90
L011c2ndloop:
L016c2ndloop:
movb (%edi,%ecx,1),%al
addb (%esi,%ebp,1),%dl
addb %al,%dl
addl $1,%ebp
movb (%edi,%edx,1),%bl
jnz L012cnowrap
jnz L017cnowrap
movl -4(%edi),%ebp
L012cnowrap:
L017cnowrap:
movb %al,(%edi,%edx,1)
movb %bl,(%edi,%ecx,1)
addb $1,%cl
jnc L011c2ndloop
jnc L016c2ndloop
movl $-1,256(%edi)
L010exit:
L015exit:
xorl %eax,%eax
movl %eax,-8(%edi)
movl %eax,-4(%edi)
@ -203,22 +344,36 @@ L010exit:
.align 4
_RC4_options:
L_RC4_options_begin:
call L013pic_point
L013pic_point:
call L018pic_point
L018pic_point:
popl %eax
leal L014opts-L013pic_point(%eax),%eax
leal _OPENSSL_ia32cap_P,%edx
btl $20,(%edx)
jnc L015skip
leal L019opts-L018pic_point(%eax),%eax
call L020PIC_me_up
L020PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L020PIC_me_up(%edx),%edx
movl (%edx),%edx
btl $20,%edx
jc L0211xchar
btl $26,%edx
jnc L022ret
addl $25,%eax
ret
L0211xchar:
addl $12,%eax
L015skip:
L022ret:
ret
.align 6,0x90
L014opts:
L019opts:
.byte 114,99,52,40,52,120,44,105,110,116,41,0
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
.byte 114,99,52,40,56,120,44,109,109,120,41,0
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 6,0x90
.comm _OPENSSL_ia32cap_P,4
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,8,2

1262
deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s

File diff suppressed because it is too large

65
deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s

@ -95,31 +95,30 @@ L002loop:
L00300_15:
movl 92(%esp),%ebx
movl %edx,%ecx
rorl $6,%ecx
movl %edx,%edi
rorl $11,%edi
rorl $14,%ecx
movl 20(%esp),%esi
xorl %edi,%ecx
rorl $14,%edi
xorl %edi,%ecx
xorl %edx,%ecx
rorl $5,%ecx
xorl %edx,%ecx
rorl $6,%ecx
movl 24(%esp),%edi
addl %ecx,%ebx
movl %edx,16(%esp)
xorl %edi,%esi
movl %edx,16(%esp)
movl %eax,%ecx
andl %edx,%esi
movl 12(%esp),%edx
xorl %edi,%esi
movl %eax,%edi
addl %esi,%ebx
rorl $2,%ecx
rorl $9,%ecx
addl 28(%esp),%ebx
rorl $13,%edi
xorl %eax,%ecx
rorl $11,%ecx
movl 4(%esp),%esi
xorl %edi,%ecx
rorl $9,%edi
xorl %eax,%ecx
rorl $2,%ecx
addl %ebx,%edx
xorl %edi,%ecx
movl 8(%esp),%edi
addl %ecx,%ebx
movl %eax,(%esp)
@ -141,48 +140,46 @@ L00300_15:
L00416_63:
movl %ebx,%esi
movl 100(%esp),%ecx
shrl $3,%ebx
rorl $7,%esi
xorl %esi,%ebx
rorl $11,%esi
movl %ecx,%edi
xorl %ebx,%esi
rorl $7,%esi
shrl $3,%ebx
rorl $2,%edi
xorl %esi,%ebx
shrl $10,%ecx
movl 156(%esp),%esi
xorl %ecx,%edi
rorl $17,%edi
xorl %edi,%ecx
rorl $2,%edi
addl %esi,%ebx
shrl $10,%ecx
addl 156(%esp),%ebx
xorl %ecx,%edi
addl %edi,%ebx
movl %edx,%ecx
addl 120(%esp),%ebx
rorl $6,%ecx
movl %edx,%edi
rorl $11,%edi
movl %edx,%ecx
addl %edi,%ebx
rorl $14,%ecx
movl 20(%esp),%esi
xorl %edi,%ecx
rorl $14,%edi
xorl %edx,%ecx
rorl $5,%ecx
movl %ebx,92(%esp)
xorl %edi,%ecx
xorl %edx,%ecx
rorl $6,%ecx
movl 24(%esp),%edi
addl %ecx,%ebx
movl %edx,16(%esp)
xorl %edi,%esi
movl %edx,16(%esp)
movl %eax,%ecx
andl %edx,%esi
movl 12(%esp),%edx
xorl %edi,%esi
movl %eax,%edi
addl %esi,%ebx
rorl $2,%ecx
rorl $9,%ecx
addl 28(%esp),%ebx
rorl $13,%edi
xorl %eax,%ecx
rorl $11,%ecx
movl 4(%esp),%esi
xorl %edi,%ecx
rorl $9,%edi
xorl %eax,%ecx
rorl $2,%ecx
addl %ebx,%edx
xorl %edi,%ecx
movl 8(%esp),%edi
addl %ecx,%ebx
movl %eax,(%esp)

149
deps/openssl/asm/x86-macosx-gas/x86cpuid.s

@ -18,9 +18,9 @@ L_OPENSSL_ia32_cpuid_begin:
pushfl
popl %eax
xorl %eax,%ecx
btl $21,%ecx
jnc L000done
xorl %eax,%eax
btl $21,%ecx
jnc L000nocpuid
.byte 0x0f,0xa2
movl %eax,%edi
xorl %eax,%eax
@ -46,7 +46,14 @@ L_OPENSSL_ia32_cpuid_begin:
jnz L001intel
movl $2147483648,%eax
.byte 0x0f,0xa2
cmpl $2147483656,%eax
cmpl $2147483649,%eax
jb L001intel
movl %eax,%esi
movl $2147483649,%eax
.byte 0x0f,0xa2
orl %ecx,%ebp
andl $2049,%ebp
cmpl $2147483656,%esi
jb L001intel
movl $2147483656,%eax
.byte 0x0f,0xa2
@ -55,46 +62,68 @@ L_OPENSSL_ia32_cpuid_begin:
movl $1,%eax
.byte 0x0f,0xa2
btl $28,%edx
jnc L000done
jnc L002generic
shrl $16,%ebx
andl $255,%ebx
cmpl %esi,%ebx
ja L000done
ja L002generic
andl $4026531839,%edx
jmp L000done
jmp L002generic
L001intel:
cmpl $4,%edi
movl $-1,%edi
jb L002nocacheinfo
jb L003nocacheinfo
movl $4,%eax
movl $0,%ecx
.byte 0x0f,0xa2
movl %eax,%edi
shrl $14,%edi
andl $4095,%edi
L002nocacheinfo:
L003nocacheinfo:
movl $1,%eax
.byte 0x0f,0xa2
andl $3220176895,%edx
cmpl $0,%ebp
jne L003notP4
jne L004notintel
orl $1073741824,%edx
andb $15,%ah
cmpb $15,%ah
jne L003notP4
jne L004notintel
orl $1048576,%edx
L003notP4:
L004notintel:
btl $28,%edx
jnc L000done
jnc L002generic
andl $4026531839,%edx
cmpl $0,%edi
je L000done
je L002generic
orl $268435456,%edx
shrl $16,%ebx
cmpb $1,%bl
ja L000done
ja L002generic
andl $4026531839,%edx
L000done:
movl %edx,%eax
movl %ecx,%edx
L002generic:
andl $2048,%ebp
andl $4294965247,%ecx
movl %edx,%esi
orl %ecx,%ebp
btl $27,%ecx
jnc L005clear_avx
xorl %ecx,%ecx
.byte 15,1,208
andl $6,%eax
cmpl $6,%eax
je L006done
cmpl $2,%eax
je L005clear_avx
L007clear_xmm:
andl $4261412861,%ebp
andl $4278190079,%esi
L005clear_avx:
andl $4026525695,%ebp
L006done:
movl %esi,%eax
movl %ebp,%edx
L000nocpuid:
popl %edi
popl %esi
popl %ebx
@ -106,26 +135,32 @@ _OPENSSL_rdtsc:
L_OPENSSL_rdtsc_begin:
xorl %eax,%eax
xorl %edx,%edx
leal _OPENSSL_ia32cap_P,%ecx
call L008PIC_me_up
L008PIC_me_up:
popl %ecx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L008PIC_me_up(%ecx),%ecx
btl $4,(%ecx)
jnc L004notsc
jnc L009notsc
.byte 0x0f,0x31
L004notsc:
L009notsc:
ret
.globl _OPENSSL_instrument_halt
.align 4
_OPENSSL_instrument_halt:
L_OPENSSL_instrument_halt_begin:
leal _OPENSSL_ia32cap_P,%ecx
call L010PIC_me_up
L010PIC_me_up:
popl %ecx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%ecx),%ecx
btl $4,(%ecx)
jnc L005nohalt
jnc L011nohalt
.long 2421723150
andl $3,%eax
jnz L005nohalt
jnz L011nohalt
pushfl
popl %eax
btl $9,%eax
jnc L005nohalt
jnc L011nohalt
.byte 0x0f,0x31
pushl %edx
pushl %eax
@ -135,7 +170,7 @@ L_OPENSSL_instrument_halt_begin:
sbbl 4(%esp),%edx
addl $8,%esp
ret
L005nohalt:
L011nohalt:
xorl %eax,%eax
xorl %edx,%edx
ret
@ -146,21 +181,21 @@ L_OPENSSL_far_spin_begin:
pushfl
popl %eax
btl $9,%eax
jnc L006nospin
jnc L012nospin
movl 4(%esp),%eax
movl 8(%esp),%ecx
.long 2430111262
xorl %eax,%eax
movl (%ecx),%edx
jmp L007spin
jmp L013spin
.align 4,0x90
L007spin:
L013spin:
incl %eax
cmpl (%ecx),%edx
je L007spin
je L013spin
.long 529567888
ret
L006nospin:
L012nospin:
xorl %eax,%eax
xorl %edx,%edx
ret
@ -170,12 +205,15 @@ _OPENSSL_wipe_cpu:
L_OPENSSL_wipe_cpu_begin:
xorl %eax,%eax
xorl %edx,%edx
leal _OPENSSL_ia32cap_P,%ecx
call L014PIC_me_up
L014PIC_me_up:
popl %ecx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L014PIC_me_up(%ecx),%ecx
movl (%ecx),%ecx
btl $1,(%ecx)
jnc L008no_x87
jnc L015no_x87
.long 4007259865,4007259865,4007259865,4007259865,2430851995
L008no_x87:
L015no_x87:
leal 4(%esp),%eax
ret
.globl _OPENSSL_atomic_add
@ -187,11 +225,11 @@ L_OPENSSL_atomic_add_begin:
pushl %ebx
nop
movl (%edx),%eax
L009spin:
L016spin:
leal (%eax,%ecx,1),%ebx
nop
.long 447811568
jne L009spin
jne L016spin
movl %ebx,%eax
popl %ebx
ret
@ -228,34 +266,51 @@ L_OPENSSL_cleanse_begin:
movl 8(%esp),%ecx
xorl %eax,%eax
cmpl $7,%ecx
jae L010lot
jae L017lot
cmpl $0,%ecx
je L011ret
L012little:
je L018ret
L019little:
movb %al,(%edx)
subl $1,%ecx
leal 1(%edx),%edx
jnz L012little
L011ret:
jnz L019little
L018ret:
ret
.align 4,0x90
L010lot:
L017lot:
testl $3,%edx
jz L013aligned
jz L020aligned
movb %al,(%edx)
leal -1(%ecx),%ecx
leal 1(%edx),%edx
jmp L010lot
L013aligned:
jmp L017lot
L020aligned:
movl %eax,(%edx)
leal -4(%ecx),%ecx
testl $-4,%ecx
leal 4(%edx),%edx
jnz L013aligned
jnz L020aligned
cmpl $0,%ecx
jne L012little
jne L019little
ret
.globl _OPENSSL_ia32_rdrand
.align 4
_OPENSSL_ia32_rdrand:
L_OPENSSL_ia32_rdrand_begin:
movl $8,%ecx
L021loop:
.byte 15,199,240
jc L022break
loop L021loop
L022break:
cmpl $0,%eax
cmovel %ecx,%eax
ret
.comm _OPENSSL_ia32cap_P,4
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,8,2
.mod_init_func
.align 2
.long _OPENSSL_cpuid_setup

14
deps/openssl/asm/x86-win32-masm/aes/aes-586.asm

@ -2975,14 +2975,14 @@ $L045exit:
ret
__x86_AES_set_encrypt_key ENDP
ALIGN 16
_AES_set_encrypt_key PROC PUBLIC
$L_AES_set_encrypt_key_begin::
_private_AES_set_encrypt_key PROC PUBLIC
$L_private_AES_set_encrypt_key_begin::
call __x86_AES_set_encrypt_key
ret
_AES_set_encrypt_key ENDP
_private_AES_set_encrypt_key ENDP
ALIGN 16
_AES_set_decrypt_key PROC PUBLIC
$L_AES_set_decrypt_key_begin::
_private_AES_set_decrypt_key PROC PUBLIC
$L_private_AES_set_decrypt_key_begin::
call __x86_AES_set_encrypt_key
cmp eax,0
je $L054proceed
@ -3211,12 +3211,12 @@ $L056permute:
pop ebx
pop ebp
ret
_AES_set_decrypt_key ENDP
_private_AES_set_decrypt_key ENDP
DB 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.text$ ENDS
.bss SEGMENT 'BSS'
COMM _OPENSSL_ia32cap_P:DWORD
COMM _OPENSSL_ia32cap_P:QWORD
.bss ENDS
END

2133
deps/openssl/asm/x86-win32-masm/aes/aesni-x86.asm

File diff suppressed because it is too large

2
deps/openssl/asm/x86-win32-masm/bf/bf-686.asm

@ -2,7 +2,7 @@ TITLE bf-686.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

2
deps/openssl/asm/x86-win32-masm/bn/x86-mont.asm

@ -2,7 +2,7 @@ TITLE ../openssl/crypto/bn/asm/x86-mont.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

2
deps/openssl/asm/x86-win32-masm/bn/x86.asm

@ -2,7 +2,7 @@ TITLE ../openssl/crypto/bn/asm/x86.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

8
deps/openssl/asm/x86-win32-masm/camellia/cmll-x86.asm

@ -2,7 +2,7 @@ TITLE cmll-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
@ -1532,8 +1532,8 @@ $L013done:
ret
_Camellia_Ekeygen ENDP
ALIGN 16
_Camellia_set_key PROC PUBLIC
$L_Camellia_set_key_begin::
_private_Camellia_set_key PROC PUBLIC
$L_private_Camellia_set_key_begin::
push ebx
mov ecx,DWORD PTR 8[esp]
mov ebx,DWORD PTR 12[esp]
@ -1563,7 +1563,7 @@ ALIGN 4
$L014done:
pop ebx
ret
_Camellia_set_key ENDP
_private_Camellia_set_key ENDP
ALIGN 64
$LCamellia_SIGMA::
DD 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0

2
deps/openssl/asm/x86-win32-masm/cast/cast-586.asm

@ -2,7 +2,7 @@ TITLE cast-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

2
deps/openssl/asm/x86-win32-masm/des/crypt586.asm

@ -2,7 +2,7 @@ TITLE crypt586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

2
deps/openssl/asm/x86-win32-masm/des/des-586.asm

@ -2,7 +2,7 @@ TITLE des-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

2
deps/openssl/asm/x86-win32-masm/md5/md5-586.asm

@ -2,7 +2,7 @@ TITLE ../openssl/crypto/md5/asm/md5-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

225
deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm

@ -2,7 +2,14 @@ TITLE rc4-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.XMM
IF @Version LT 800
XMMWORD STRUCT 16
DQ 2 dup (?)
XMMWORD ENDS
ENDIF
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
@ -10,6 +17,7 @@ IF @Version LT 800
ELSE
.text$ SEGMENT ALIGN(64) 'CODE'
ENDIF
;EXTERN _OPENSSL_ia32cap_P:NEAR
ALIGN 16
_RC4 PROC PUBLIC
$L_RC4_begin::
@ -37,11 +45,146 @@ $L_RC4_begin::
mov ecx,DWORD PTR [eax*4+edi]
and edx,-4
jz $L002loop1
lea edx,DWORD PTR [edx*1+esi-4]
mov DWORD PTR 28[esp],edx
test edx,-8
mov DWORD PTR 32[esp],ebp
jz $L003go4loop4
lea ebp,DWORD PTR _OPENSSL_ia32cap_P
bt DWORD PTR [ebp],26
jnc $L003go4loop4
mov ebp,DWORD PTR 32[esp]
and edx,-8
lea edx,DWORD PTR [edx*1+esi-8]
mov DWORD PTR [edi-4],edx
add bl,cl
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
movq mm0,QWORD PTR [esi]
mov ecx,DWORD PTR [eax*4+edi]
movd mm2,DWORD PTR [edx*4+edi]
jmp $L004loop_mmx_enter
ALIGN 16
$L005loop_mmx:
add bl,cl
psllq mm1,56
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
movq mm0,QWORD PTR [esi]
movq QWORD PTR [esi*1+ebp-8],mm2
mov ecx,DWORD PTR [eax*4+edi]
movd mm2,DWORD PTR [edx*4+edi]
$L004loop_mmx_enter:
add bl,cl
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm0
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
add bl,cl
psllq mm1,8
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
add bl,cl
psllq mm1,16
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
add bl,cl
psllq mm1,24
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
add bl,cl
psllq mm1,32
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
add bl,cl
psllq mm1,40
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
add bl,cl
psllq mm1,48
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
mov DWORD PTR [eax*4+edi],edx
inc eax
add edx,ecx
movzx eax,al
movzx edx,dl
pxor mm2,mm1
mov ecx,DWORD PTR [eax*4+edi]
movd mm1,DWORD PTR [edx*4+edi]
mov edx,ebx
xor ebx,ebx
mov bl,dl
cmp esi,DWORD PTR [edi-4]
lea esi,DWORD PTR 8[esi]
jb $L005loop_mmx
psllq mm1,56
pxor mm2,mm1
movq QWORD PTR [esi*1+ebp-8],mm2
emms
cmp esi,DWORD PTR 24[esp]
je $L006done
jmp $L002loop1
ALIGN 16
$L003loop4:
$L003go4loop4:
lea edx,DWORD PTR [edx*1+esi-4]
mov DWORD PTR 28[esp],edx
$L007loop4:
add bl,cl
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
@ -87,9 +230,9 @@ $L003loop4:
mov DWORD PTR [esi*1+ecx],ebp
lea esi,DWORD PTR 4[esi]
mov ecx,DWORD PTR [eax*4+edi]
jb $L003loop4
jb $L007loop4
cmp esi,DWORD PTR 24[esp]
je $L004done
je $L006done
mov ebp,DWORD PTR 32[esp]
ALIGN 16
$L002loop1:
@ -107,11 +250,11 @@ $L002loop1:
cmp esi,DWORD PTR 24[esp]
mov BYTE PTR [esi*1+ebp-1],dl
jb $L002loop1
jmp $L004done
jmp $L006done
ALIGN 16
$L001RC4_CHAR:
movzx ecx,BYTE PTR [eax*1+edi]
$L005cloop1:
$L008cloop1:
add bl,cl
movzx edx,BYTE PTR [ebx*1+edi]
mov BYTE PTR [ebx*1+edi],cl
@ -124,10 +267,10 @@ $L005cloop1:
movzx ecx,BYTE PTR [eax*1+edi]
cmp esi,DWORD PTR 24[esp]
mov BYTE PTR [esi*1+ebp-1],dl
jb $L005cloop1
$L004done:
jb $L008cloop1
$L006done:
dec al
mov BYTE PTR [edi-4],bl
mov DWORD PTR [edi-4],ebx
mov BYTE PTR [edi-8],al
$L000abort:
pop edi
@ -136,10 +279,9 @@ $L000abort:
pop ebp
ret
_RC4 ENDP
;EXTERN _OPENSSL_ia32cap_P:NEAR
ALIGN 16
_RC4_set_key PROC PUBLIC
$L_RC4_set_key_begin::
_private_RC4_set_key PROC PUBLIC
$L_private_RC4_set_key_begin::
push ebp
push ebx
push esi
@ -154,53 +296,53 @@ $L_RC4_set_key_begin::
xor eax,eax
mov DWORD PTR [edi-4],ebp
bt DWORD PTR [edx],20
jc $L006c1stloop
jc $L009c1stloop
ALIGN 16
$L007w1stloop:
$L010w1stloop:
mov DWORD PTR [eax*4+edi],eax
add al,1
jnc $L007w1stloop
jnc $L010w1stloop
xor ecx,ecx
xor edx,edx
ALIGN 16
$L008w2ndloop:
$L011w2ndloop:
mov eax,DWORD PTR [ecx*4+edi]
add dl,BYTE PTR [ebp*1+esi]
add dl,al
add ebp,1
mov ebx,DWORD PTR [edx*4+edi]
jnz $L009wnowrap
jnz $L012wnowrap
mov ebp,DWORD PTR [edi-4]
$L009wnowrap:
$L012wnowrap:
mov DWORD PTR [edx*4+edi],eax
mov DWORD PTR [ecx*4+edi],ebx
add cl,1
jnc $L008w2ndloop
jmp $L010exit
jnc $L011w2ndloop
jmp $L013exit
ALIGN 16
$L006c1stloop:
$L009c1stloop:
mov BYTE PTR [eax*1+edi],al
add al,1
jnc $L006c1stloop
jnc $L009c1stloop
xor ecx,ecx
xor edx,edx
xor ebx,ebx
ALIGN 16
$L011c2ndloop:
$L014c2ndloop:
mov al,BYTE PTR [ecx*1+edi]
add dl,BYTE PTR [ebp*1+esi]
add dl,al
add ebp,1
mov bl,BYTE PTR [edx*1+edi]
jnz $L012cnowrap
jnz $L015cnowrap
mov ebp,DWORD PTR [edi-4]
$L012cnowrap:
$L015cnowrap:
mov BYTE PTR [edx*1+edi],al
mov BYTE PTR [ecx*1+edi],bl
add cl,1
jnc $L011c2ndloop
jnc $L014c2ndloop
mov DWORD PTR 256[edi],-1
$L010exit:
$L013exit:
xor eax,eax
mov DWORD PTR [edi-8],eax
mov DWORD PTR [edi-4],eax
@ -209,24 +351,31 @@ $L010exit:
pop ebx
pop ebp
ret
_RC4_set_key ENDP
_private_RC4_set_key ENDP
ALIGN 16
_RC4_options PROC PUBLIC
$L_RC4_options_begin::
call $L013pic_point
$L013pic_point:
call $L016pic_point
$L016pic_point:
pop eax
lea eax,DWORD PTR ($L014opts-$L013pic_point)[eax]
lea eax,DWORD PTR ($L017opts-$L016pic_point)[eax]
lea edx,DWORD PTR _OPENSSL_ia32cap_P
bt DWORD PTR [edx],20
jnc $L015skip
mov edx,DWORD PTR [edx]
bt edx,20
jc $L0181xchar
bt edx,26
jnc $L019ret
add eax,25
ret
$L0181xchar:
add eax,12
$L015skip:
$L019ret:
ret
ALIGN 64
$L014opts:
$L017opts:
DB 114,99,52,40,52,120,44,105,110,116,41,0
DB 114,99,52,40,49,120,44,99,104,97,114,41,0
DB 114,99,52,40,56,120,44,109,109,120,41,0
DB 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
@ -234,6 +383,6 @@ ALIGN 64
_RC4_options ENDP
.text$ ENDS
.bss SEGMENT 'BSS'
COMM _OPENSSL_ia32cap_P:DWORD
COMM _OPENSSL_ia32cap_P:QWORD
.bss ENDS
END

2
deps/openssl/asm/x86-win32-masm/rc5/rc5-586.asm

@ -2,7 +2,7 @@ TITLE rc5-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

2
deps/openssl/asm/x86-win32-masm/ripemd/rmd-586.asm

@ -2,7 +2,7 @@ TITLE ../openssl/crypto/ripemd/asm/rmd-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

1264
deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm

File diff suppressed because it is too large

67
deps/openssl/asm/x86-win32-masm/sha/sha256-586.asm

@ -2,7 +2,7 @@ TITLE sha512-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
@ -104,31 +104,30 @@ ALIGN 16
$L00300_15:
mov ebx,DWORD PTR 92[esp]
mov ecx,edx
ror ecx,6
mov edi,edx
ror edi,11
ror ecx,14
mov esi,DWORD PTR 20[esp]
xor ecx,edi
ror edi,14
xor ecx,edi
xor ecx,edx
ror ecx,5
xor ecx,edx
ror ecx,6
mov edi,DWORD PTR 24[esp]
add ebx,ecx
mov DWORD PTR 16[esp],edx
xor esi,edi
mov DWORD PTR 16[esp],edx
mov ecx,eax
and esi,edx
mov edx,DWORD PTR 12[esp]
xor esi,edi
mov edi,eax
add ebx,esi
ror ecx,2
ror ecx,9
add ebx,DWORD PTR 28[esp]
ror edi,13
xor ecx,eax
ror ecx,11
mov esi,DWORD PTR 4[esp]
xor ecx,edi
ror edi,9
xor ecx,eax
ror ecx,2
add edx,ebx
xor ecx,edi
mov edi,DWORD PTR 8[esp]
add ebx,ecx
mov DWORD PTR [esp],eax
@ -150,48 +149,46 @@ ALIGN 16
$L00416_63:
mov esi,ebx
mov ecx,DWORD PTR 100[esp]
shr ebx,3
ror esi,7
xor ebx,esi
ror esi,11
mov edi,ecx
xor esi,ebx
ror esi,7
shr ebx,3
ror edi,2
xor ebx,esi
shr ecx,10
mov esi,DWORD PTR 156[esp]
xor edi,ecx
ror edi,17
xor ecx,edi
ror edi,2
add ebx,esi
shr ecx,10
add ebx,DWORD PTR 156[esp]
xor edi,ecx
add ebx,edi
mov ecx,edx
add ebx,DWORD PTR 120[esp]
ror ecx,6
mov edi,edx
ror edi,11
mov ecx,edx
add ebx,edi
ror ecx,14
mov esi,DWORD PTR 20[esp]
xor ecx,edi
ror edi,14
xor ecx,edx
ror ecx,5
mov DWORD PTR 92[esp],ebx
xor ecx,edi
xor ecx,edx
ror ecx,6
mov edi,DWORD PTR 24[esp]
add ebx,ecx
mov DWORD PTR 16[esp],edx
xor esi,edi
mov DWORD PTR 16[esp],edx
mov ecx,eax
and esi,edx
mov edx,DWORD PTR 12[esp]
xor esi,edi
mov edi,eax
add ebx,esi
ror ecx,2
ror ecx,9
add ebx,DWORD PTR 28[esp]
ror edi,13
xor ecx,eax
ror ecx,11
mov esi,DWORD PTR 4[esp]
xor ecx,edi
ror edi,9
xor ecx,eax
ror ecx,2
add edx,ebx
xor ecx,edi
mov edi,DWORD PTR 8[esp]
add ebx,ecx
mov DWORD PTR [esp],eax

2
deps/openssl/asm/x86-win32-masm/sha/sha512-586.asm

@ -2,7 +2,7 @@ TITLE sha512-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800

132
deps/openssl/asm/x86-win32-masm/x86cpuid.asm

@ -2,7 +2,7 @@ TITLE x86cpuid.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.586
.686
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
@ -27,9 +27,9 @@ $L_OPENSSL_ia32_cpuid_begin::
pushfd
pop eax
xor ecx,eax
bt ecx,21
jnc $L000done
xor eax,eax
bt ecx,21
jnc $L000nocpuid
cpuid
mov edi,eax
xor eax,eax
@ -55,7 +55,14 @@ $L_OPENSSL_ia32_cpuid_begin::
jnz $L001intel
mov eax,2147483648
cpuid
cmp eax,2147483656
cmp eax,2147483649
jb $L001intel
mov esi,eax
mov eax,2147483649
cpuid
or ebp,ecx
and ebp,2049
cmp esi,2147483656
jb $L001intel
mov eax,2147483656
cpuid
@ -64,46 +71,68 @@ $L_OPENSSL_ia32_cpuid_begin::
mov eax,1
cpuid
bt edx,28
jnc $L000done
jnc $L002generic
shr ebx,16
and ebx,255
cmp ebx,esi
ja $L000done
ja $L002generic
and edx,4026531839
jmp $L000done
jmp $L002generic
$L001intel:
cmp edi,4
mov edi,-1
jb $L002nocacheinfo
jb $L003nocacheinfo
mov eax,4
mov ecx,0
cpuid
mov edi,eax
shr edi,14
and edi,4095
$L002nocacheinfo:
$L003nocacheinfo:
mov eax,1
cpuid
and edx,3220176895
cmp ebp,0
jne $L003notP4
jne $L004notintel
or edx,1073741824
and ah,15
cmp ah,15
jne $L003notP4
jne $L004notintel
or edx,1048576
$L003notP4:
$L004notintel:
bt edx,28
jnc $L000done
jnc $L002generic
and edx,4026531839
cmp edi,0
je $L000done
je $L002generic
or edx,268435456
shr ebx,16
cmp bl,1
ja $L000done
ja $L002generic
and edx,4026531839
$L000done:
mov eax,edx
mov edx,ecx
$L002generic:
and ebp,2048
and ecx,4294965247
mov esi,edx
or ebp,ecx
bt ecx,27
jnc $L005clear_avx
xor ecx,ecx
DB 15,1,208
and eax,6
cmp eax,6
je $L006done
cmp eax,2
je $L005clear_avx
$L007clear_xmm:
and ebp,4261412861
and esi,4278190079
$L005clear_avx:
and ebp,4026525695
$L006done:
mov eax,esi
mov edx,ebp
$L000nocpuid:
pop edi
pop esi
pop ebx
@ -118,9 +147,9 @@ $L_OPENSSL_rdtsc_begin::
xor edx,edx
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
bt DWORD PTR [ecx],4
jnc $L004notsc
jnc $L008notsc
rdtsc
$L004notsc:
$L008notsc:
ret
_OPENSSL_rdtsc ENDP
ALIGN 16
@ -128,14 +157,14 @@ _OPENSSL_instrument_halt PROC PUBLIC
$L_OPENSSL_instrument_halt_begin::
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
bt DWORD PTR [ecx],4
jnc $L005nohalt
jnc $L009nohalt
DD 2421723150
and eax,3
jnz $L005nohalt
jnz $L009nohalt
pushfd
pop eax
bt eax,9
jnc $L005nohalt
jnc $L009nohalt
rdtsc
push edx
push eax
@ -145,7 +174,7 @@ DD 2421723150
sbb edx,DWORD PTR 4[esp]
add esp,8
ret
$L005nohalt:
$L009nohalt:
xor eax,eax
xor edx,edx
ret
@ -156,21 +185,21 @@ $L_OPENSSL_far_spin_begin::
pushfd
pop eax
bt eax,9
jnc $L006nospin
jnc $L010nospin
mov eax,DWORD PTR 4[esp]
mov ecx,DWORD PTR 8[esp]
DD 2430111262
xor eax,eax
mov edx,DWORD PTR [ecx]
jmp $L007spin
jmp $L011spin
ALIGN 16
$L007spin:
$L011spin:
inc eax
cmp edx,DWORD PTR [ecx]
je $L007spin
je $L011spin
DD 529567888
ret
$L006nospin:
$L010nospin:
xor eax,eax
xor edx,edx
ret
@ -183,9 +212,9 @@ $L_OPENSSL_wipe_cpu_begin::
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
mov ecx,DWORD PTR [ecx]
bt DWORD PTR [ecx],1
jnc $L008no_x87
jnc $L012no_x87
DD 4007259865,4007259865,4007259865,4007259865,2430851995
$L008no_x87:
$L012no_x87:
lea eax,DWORD PTR 4[esp]
ret
_OPENSSL_wipe_cpu ENDP
@ -197,11 +226,11 @@ $L_OPENSSL_atomic_add_begin::
push ebx
nop
mov eax,DWORD PTR [edx]
$L009spin:
$L013spin:
lea ebx,DWORD PTR [ecx*1+eax]
nop
DD 447811568
jne $L009spin
jne $L013spin
mov eax,ebx
pop ebx
ret
@ -238,37 +267,50 @@ $L_OPENSSL_cleanse_begin::
mov ecx,DWORD PTR 8[esp]
xor eax,eax
cmp ecx,7
jae $L010lot
jae $L014lot
cmp ecx,0
je $L011ret
$L012little:
je $L015ret
$L016little:
mov BYTE PTR [edx],al
sub ecx,1
lea edx,DWORD PTR 1[edx]
jnz $L012little
$L011ret:
jnz $L016little
$L015ret:
ret
ALIGN 16
$L010lot:
$L014lot:
test edx,3
jz $L013aligned
jz $L017aligned
mov BYTE PTR [edx],al
lea ecx,DWORD PTR [ecx-1]
lea edx,DWORD PTR 1[edx]
jmp $L010lot
$L013aligned:
jmp $L014lot
$L017aligned:
mov DWORD PTR [edx],eax
lea ecx,DWORD PTR [ecx-4]
test ecx,-4
lea edx,DWORD PTR 4[edx]
jnz $L013aligned
jnz $L017aligned
cmp ecx,0
jne $L012little
jne $L016little
ret
_OPENSSL_cleanse ENDP
ALIGN 16
_OPENSSL_ia32_rdrand PROC PUBLIC
$L_OPENSSL_ia32_rdrand_begin::
mov ecx,8
$L018loop:
DB 15,199,240
jc $L019break
loop $L018loop
$L019break:
cmp eax,0
cmove eax,ecx
ret
_OPENSSL_ia32_rdrand ENDP
.text$ ENDS
.bss SEGMENT 'BSS'
COMM _OPENSSL_ia32cap_P:DWORD
COMM _OPENSSL_ia32cap_P:QWORD
.bss ENDS
.CRT$XCU SEGMENT DWORD PUBLIC 'DATA'
EXTERN _OPENSSL_cpuid_setup:NEAR

Loading…
Cancel
Save