Source release 18.1.0
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -16,6 +16,7 @@
|
||||
.extern OPENSSL_ia32cap_P
|
||||
.hidden OPENSSL_ia32cap_P
|
||||
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Lzero:
|
||||
.long 0,0,0,0
|
||||
@@ -45,6 +46,7 @@
|
||||
.Lsixteen:
|
||||
.long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
|
||||
.byte 67,104,97,67,104,97,50,48,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
|
||||
.text
|
||||
.globl ChaCha20_ctr32
|
||||
.hidden ChaCha20_ctr32
|
||||
.type ChaCha20_ctr32,@function
|
||||
@@ -1630,4 +1632,7 @@ ChaCha20_8x:
|
||||
.cfi_endproc
|
||||
.size ChaCha20_8x,.-ChaCha20_8x
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,11 +7,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
.data
|
||||
.section .rodata
|
||||
|
||||
.align 16
|
||||
one:
|
||||
@@ -3076,4 +3076,7 @@ aes256gcmsiv_kdf:
|
||||
.cfi_endproc
|
||||
.size aes256gcmsiv_kdf, .-aes256gcmsiv_kdf
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
chacha20_poly1305_constants:
|
||||
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Lchacha20_consts:
|
||||
.byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'
|
||||
@@ -54,6 +55,7 @@ chacha20_poly1305_constants:
|
||||
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00
|
||||
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00
|
||||
.byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
|
||||
.text
|
||||
|
||||
.type poly_hash_ad_internal,@function
|
||||
.align 64
|
||||
@@ -8919,4 +8921,7 @@ chacha20_poly1305_seal_avx2:
|
||||
.cfi_endproc
|
||||
.size chacha20_poly1305_seal_avx2, .-chacha20_poly1305_seal_avx2
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -221,7 +221,7 @@ _aesni_ctr32_ghash_6x:
|
||||
movbeq 0(%r14),%r12
|
||||
vaesenc %xmm1,%xmm14,%xmm14
|
||||
vmovups 160-128(%rcx),%xmm1
|
||||
cmpl $11,%ebp
|
||||
cmpl $11,%r10d
|
||||
jb .Lenc_tail
|
||||
|
||||
vaesenc %xmm15,%xmm9,%xmm9
|
||||
@@ -305,6 +305,9 @@ _aesni_ctr32_ghash_6x:
|
||||
vpaddb %xmm2,%xmm1,%xmm0
|
||||
movq %r13,112+8(%rsp)
|
||||
leaq 96(%rdi),%rdi
|
||||
|
||||
prefetcht0 512(%rdi)
|
||||
prefetcht0 576(%rdi)
|
||||
vaesenclast %xmm5,%xmm11,%xmm11
|
||||
vpaddb %xmm2,%xmm0,%xmm5
|
||||
movq %r12,120+8(%rsp)
|
||||
@@ -317,7 +320,7 @@ _aesni_ctr32_ghash_6x:
|
||||
vaesenclast %xmm3,%xmm14,%xmm14
|
||||
vpaddb %xmm2,%xmm7,%xmm3
|
||||
|
||||
addq $0x60,%r10
|
||||
addq $0x60,%rax
|
||||
subq $0x6,%rdx
|
||||
jc .L6x_done
|
||||
|
||||
@@ -349,41 +352,50 @@ _aesni_ctr32_ghash_6x:
|
||||
.align 32
|
||||
aesni_gcm_decrypt:
|
||||
.cfi_startproc
|
||||
xorq %r10,%r10
|
||||
|
||||
xorq %rax,%rax
|
||||
|
||||
|
||||
|
||||
cmpq $0x60,%rdx
|
||||
jb .Lgcm_dec_abort
|
||||
|
||||
leaq (%rsp),%rax
|
||||
.cfi_def_cfa_register %rax
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-16
|
||||
pushq %rbp
|
||||
.cfi_offset %rbp,-24
|
||||
.cfi_adjust_cfa_offset 8
|
||||
.cfi_offset %rbp,-16
|
||||
|
||||
movq %rsp,%rbp
|
||||
.cfi_def_cfa_register %rbp
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-24
|
||||
|
||||
pushq %r12
|
||||
.cfi_offset %r12,-32
|
||||
|
||||
pushq %r13
|
||||
.cfi_offset %r13,-40
|
||||
|
||||
pushq %r14
|
||||
.cfi_offset %r14,-48
|
||||
|
||||
pushq %r15
|
||||
.cfi_offset %r15,-56
|
||||
|
||||
vzeroupper
|
||||
|
||||
movq 16(%rbp),%r12
|
||||
vmovdqu (%r8),%xmm1
|
||||
addq $-128,%rsp
|
||||
movl 12(%r8),%ebx
|
||||
leaq .Lbswap_mask(%rip),%r11
|
||||
leaq -128(%rcx),%r14
|
||||
movq $0xf80,%r15
|
||||
vmovdqu (%r9),%xmm8
|
||||
vmovdqu (%r12),%xmm8
|
||||
andq $-128,%rsp
|
||||
vmovdqu (%r11),%xmm0
|
||||
leaq 128(%rcx),%rcx
|
||||
leaq 32+32(%r9),%r9
|
||||
movl 240-128(%rcx),%ebp
|
||||
leaq 32(%r9),%r9
|
||||
movl 240-128(%rcx),%r10d
|
||||
vpshufb %xmm0,%xmm8,%xmm8
|
||||
|
||||
andq %r15,%r14
|
||||
@@ -396,7 +408,7 @@ aesni_gcm_decrypt:
|
||||
.Ldec_no_key_aliasing:
|
||||
|
||||
vmovdqu 80(%rdi),%xmm7
|
||||
leaq (%rdi),%r14
|
||||
movq %rdi,%r14
|
||||
vmovdqu 64(%rdi),%xmm4
|
||||
|
||||
|
||||
@@ -409,7 +421,7 @@ aesni_gcm_decrypt:
|
||||
|
||||
vmovdqu 48(%rdi),%xmm5
|
||||
shrq $4,%rdx
|
||||
xorq %r10,%r10
|
||||
xorq %rax,%rax
|
||||
vmovdqu 32(%rdi),%xmm6
|
||||
vpshufb %xmm0,%xmm7,%xmm7
|
||||
vmovdqu 16(%rdi),%xmm2
|
||||
@@ -427,6 +439,7 @@ aesni_gcm_decrypt:
|
||||
|
||||
call _aesni_ctr32_ghash_6x
|
||||
|
||||
movq 16(%rbp),%r12
|
||||
vmovups %xmm9,-96(%rsi)
|
||||
vmovups %xmm10,-80(%rsi)
|
||||
vmovups %xmm11,-64(%rsi)
|
||||
@@ -435,26 +448,32 @@ aesni_gcm_decrypt:
|
||||
vmovups %xmm14,-16(%rsi)
|
||||
|
||||
vpshufb (%r11),%xmm8,%xmm8
|
||||
vmovdqu %xmm8,-64(%r9)
|
||||
vmovdqu %xmm8,(%r12)
|
||||
|
||||
vzeroupper
|
||||
movq -48(%rax),%r15
|
||||
leaq -40(%rbp),%rsp
|
||||
.cfi_def_cfa %rsp, 0x38
|
||||
popq %r15
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r15
|
||||
movq -40(%rax),%r14
|
||||
popq %r14
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r14
|
||||
movq -32(%rax),%r13
|
||||
popq %r13
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r13
|
||||
movq -24(%rax),%r12
|
||||
popq %r12
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r12
|
||||
movq -16(%rax),%rbp
|
||||
.cfi_restore %rbp
|
||||
movq -8(%rax),%rbx
|
||||
popq %rbx
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %rbx
|
||||
leaq (%rax),%rsp
|
||||
.cfi_def_cfa_register %rsp
|
||||
popq %rbp
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %rbp
|
||||
.Lgcm_dec_abort:
|
||||
movq %r10,%rax
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.cfi_endproc
|
||||
.size aesni_gcm_decrypt,.-aesni_gcm_decrypt
|
||||
.type _aesni_ctr32_6x,@function
|
||||
@@ -463,7 +482,7 @@ _aesni_ctr32_6x:
|
||||
.cfi_startproc
|
||||
vmovdqu 0-128(%rcx),%xmm4
|
||||
vmovdqu 32(%r11),%xmm2
|
||||
leaq -1(%rbp),%r13
|
||||
leaq -1(%r10),%r13
|
||||
vmovups 16-128(%rcx),%xmm15
|
||||
leaq 32-128(%rcx),%r12
|
||||
vpxor %xmm4,%xmm1,%xmm9
|
||||
@@ -556,12 +575,13 @@ _aesni_ctr32_6x:
|
||||
.align 32
|
||||
aesni_gcm_encrypt:
|
||||
.cfi_startproc
|
||||
|
||||
#ifdef BORINGSSL_DISPATCH_TEST
|
||||
.extern BORINGSSL_function_hit
|
||||
.hidden BORINGSSL_function_hit
|
||||
movb $1,BORINGSSL_function_hit+2(%rip)
|
||||
#endif
|
||||
xorq %r10,%r10
|
||||
xorq %rax,%rax
|
||||
|
||||
|
||||
|
||||
@@ -569,20 +589,27 @@ aesni_gcm_encrypt:
|
||||
cmpq $288,%rdx
|
||||
jb .Lgcm_enc_abort
|
||||
|
||||
leaq (%rsp),%rax
|
||||
.cfi_def_cfa_register %rax
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-16
|
||||
pushq %rbp
|
||||
.cfi_offset %rbp,-24
|
||||
.cfi_adjust_cfa_offset 8
|
||||
.cfi_offset %rbp,-16
|
||||
|
||||
movq %rsp,%rbp
|
||||
.cfi_def_cfa_register %rbp
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-24
|
||||
|
||||
pushq %r12
|
||||
.cfi_offset %r12,-32
|
||||
|
||||
pushq %r13
|
||||
.cfi_offset %r13,-40
|
||||
|
||||
pushq %r14
|
||||
.cfi_offset %r14,-48
|
||||
|
||||
pushq %r15
|
||||
.cfi_offset %r15,-56
|
||||
|
||||
vzeroupper
|
||||
|
||||
vmovdqu (%r8),%xmm1
|
||||
@@ -594,7 +621,7 @@ aesni_gcm_encrypt:
|
||||
leaq 128(%rcx),%rcx
|
||||
vmovdqu (%r11),%xmm0
|
||||
andq $-128,%rsp
|
||||
movl 240-128(%rcx),%ebp
|
||||
movl 240-128(%rcx),%r10d
|
||||
|
||||
andq %r15,%r14
|
||||
andq %rsp,%r15
|
||||
@@ -605,7 +632,7 @@ aesni_gcm_encrypt:
|
||||
subq %r15,%rsp
|
||||
.Lenc_no_key_aliasing:
|
||||
|
||||
leaq (%rsi),%r14
|
||||
movq %rsi,%r14
|
||||
|
||||
|
||||
|
||||
@@ -633,10 +660,11 @@ aesni_gcm_encrypt:
|
||||
|
||||
call _aesni_ctr32_6x
|
||||
|
||||
vmovdqu (%r9),%xmm8
|
||||
leaq 32+32(%r9),%r9
|
||||
movq 16(%rbp),%r12
|
||||
leaq 32(%r9),%r9
|
||||
vmovdqu (%r12),%xmm8
|
||||
subq $12,%rdx
|
||||
movq $192,%r10
|
||||
movq $192,%rax
|
||||
vpshufb %xmm0,%xmm8,%xmm8
|
||||
|
||||
call _aesni_ctr32_ghash_6x
|
||||
@@ -812,29 +840,37 @@ aesni_gcm_encrypt:
|
||||
vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8
|
||||
vpxor %xmm7,%xmm2,%xmm2
|
||||
vpxor %xmm2,%xmm8,%xmm8
|
||||
movq 16(%rbp),%r12
|
||||
vpshufb (%r11),%xmm8,%xmm8
|
||||
vmovdqu %xmm8,-64(%r9)
|
||||
vmovdqu %xmm8,(%r12)
|
||||
|
||||
vzeroupper
|
||||
movq -48(%rax),%r15
|
||||
leaq -40(%rbp),%rsp
|
||||
.cfi_def_cfa %rsp, 0x38
|
||||
popq %r15
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r15
|
||||
movq -40(%rax),%r14
|
||||
popq %r14
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r14
|
||||
movq -32(%rax),%r13
|
||||
popq %r13
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r13
|
||||
movq -24(%rax),%r12
|
||||
popq %r12
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r12
|
||||
movq -16(%rax),%rbp
|
||||
.cfi_restore %rbp
|
||||
movq -8(%rax),%rbx
|
||||
popq %rbx
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %rbx
|
||||
leaq (%rax),%rsp
|
||||
.cfi_def_cfa_register %rsp
|
||||
popq %rbp
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %rbp
|
||||
.Lgcm_enc_abort:
|
||||
movq %r10,%rax
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.cfi_endproc
|
||||
.size aesni_gcm_encrypt,.-aesni_gcm_encrypt
|
||||
.size aesni_gcm_decrypt,.-aesni_gcm_decrypt
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Lbswap_mask:
|
||||
.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
|
||||
@@ -848,5 +884,9 @@ aesni_gcm_encrypt:
|
||||
.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,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
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -1262,6 +1262,8 @@ aes_hw_ctr32_encrypt_blocks:
|
||||
pxor %xmm0,%xmm13
|
||||
movdqu 80(%rdi),%xmm15
|
||||
pxor %xmm0,%xmm14
|
||||
prefetcht0 448(%rdi)
|
||||
prefetcht0 512(%rdi)
|
||||
pxor %xmm0,%xmm15
|
||||
.byte 102,15,56,220,209
|
||||
.byte 102,15,56,220,217
|
||||
@@ -2480,6 +2482,7 @@ __aesni_set_encrypt_key:
|
||||
.byte 0xf3,0xc3
|
||||
.size aes_hw_set_encrypt_key,.-aes_hw_set_encrypt_key
|
||||
.size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Lbswap_mask:
|
||||
.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
|
||||
@@ -2502,5 +2505,9 @@ __aesni_set_encrypt_key:
|
||||
|
||||
.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,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
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -23,7 +23,7 @@
|
||||
.align 16
|
||||
gcm_gmult_ssse3:
|
||||
.cfi_startproc
|
||||
.Lgmult_seh_begin:
|
||||
|
||||
movdqu (%rdi),%xmm0
|
||||
movdqa .Lreverse_bytes(%rip),%xmm10
|
||||
movdqa .Llow4_mask(%rip),%xmm2
|
||||
@@ -199,8 +199,8 @@ gcm_gmult_ssse3:
|
||||
pxor %xmm5,%xmm5
|
||||
pxor %xmm6,%xmm6
|
||||
.byte 0xf3,0xc3
|
||||
.Lgmult_seh_end:
|
||||
.cfi_endproc
|
||||
|
||||
.size gcm_gmult_ssse3,.-gcm_gmult_ssse3
|
||||
|
||||
|
||||
@@ -212,8 +212,8 @@ gcm_gmult_ssse3:
|
||||
.hidden gcm_ghash_ssse3
|
||||
.align 16
|
||||
gcm_ghash_ssse3:
|
||||
.Lghash_seh_begin:
|
||||
.cfi_startproc
|
||||
|
||||
movdqu (%rdi),%xmm0
|
||||
movdqa .Lreverse_bytes(%rip),%xmm10
|
||||
movdqa .Llow4_mask(%rip),%xmm11
|
||||
@@ -411,10 +411,11 @@ gcm_ghash_ssse3:
|
||||
pxor %xmm5,%xmm5
|
||||
pxor %xmm6,%xmm6
|
||||
.byte 0xf3,0xc3
|
||||
.Lghash_seh_end:
|
||||
.cfi_endproc
|
||||
|
||||
.size gcm_ghash_ssse3,.-gcm_ghash_ssse3
|
||||
|
||||
.section .rodata
|
||||
.align 16
|
||||
|
||||
|
||||
@@ -423,5 +424,9 @@ gcm_ghash_ssse3:
|
||||
|
||||
.Llow4_mask:
|
||||
.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -20,6 +20,7 @@
|
||||
.align 16
|
||||
gcm_init_clmul:
|
||||
.cfi_startproc
|
||||
|
||||
.L_init_clmul:
|
||||
movdqu (%rsi),%xmm2
|
||||
pshufd $78,%xmm2,%xmm2
|
||||
@@ -172,6 +173,7 @@ gcm_init_clmul:
|
||||
movdqu %xmm4,80(%rdi)
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
|
||||
.size gcm_init_clmul,.-gcm_init_clmul
|
||||
.globl gcm_gmult_clmul
|
||||
.hidden gcm_gmult_clmul
|
||||
@@ -233,6 +235,7 @@ gcm_gmult_clmul:
|
||||
.align 32
|
||||
gcm_ghash_clmul:
|
||||
.cfi_startproc
|
||||
|
||||
.L_ghash_clmul:
|
||||
movdqa .Lbswap_mask(%rip),%xmm10
|
||||
|
||||
@@ -613,6 +616,7 @@ gcm_ghash_clmul:
|
||||
movdqu %xmm0,(%rdi)
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
|
||||
.size gcm_ghash_clmul,.-gcm_ghash_clmul
|
||||
.globl gcm_init_avx
|
||||
.hidden gcm_init_avx
|
||||
@@ -722,6 +726,7 @@ gcm_init_avx:
|
||||
|
||||
vzeroupper
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.cfi_endproc
|
||||
.size gcm_init_avx,.-gcm_init_avx
|
||||
.globl gcm_gmult_avx
|
||||
@@ -1111,7 +1116,9 @@ gcm_ghash_avx:
|
||||
vzeroupper
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
|
||||
.size gcm_ghash_avx,.-gcm_ghash_avx
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Lbswap_mask:
|
||||
.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
|
||||
@@ -1123,5 +1130,9 @@ gcm_ghash_avx:
|
||||
|
||||
.byte 71,72,65,83,72,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
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -699,4 +699,7 @@ md5_block_asm_data_order:
|
||||
.cfi_endproc
|
||||
.size md5_block_asm_data_order,.-md5_block_asm_data_order
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -16,6 +16,7 @@
|
||||
.hidden OPENSSL_ia32cap_P
|
||||
|
||||
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Lpoly:
|
||||
.quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001
|
||||
@@ -34,6 +35,7 @@
|
||||
.quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000
|
||||
.LordK:
|
||||
.quad 0xccd1c8aaee00bc4f
|
||||
.text
|
||||
|
||||
|
||||
|
||||
@@ -4540,4 +4542,7 @@ ecp_nistz256_point_add_affinex:
|
||||
.cfi_endproc
|
||||
.size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -340,4 +340,7 @@ beeu_mod_inverse_vartime:
|
||||
|
||||
.size beeu_mod_inverse_vartime, .-beeu_mod_inverse_vartime
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -60,4 +60,7 @@ CRYPTO_rdrand_multiple8_buf:
|
||||
.cfi_endproc
|
||||
.size CRYPTO_rdrand_multiple8_buf,.-CRYPTO_rdrand_multiple8_buf
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -1733,6 +1733,7 @@ rsaz_1024_gather5_avx2:
|
||||
.cfi_endproc
|
||||
.LSEH_end_rsaz_1024_gather5:
|
||||
.size rsaz_1024_gather5_avx2,.-rsaz_1024_gather5_avx2
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Land_mask:
|
||||
.quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff
|
||||
@@ -1745,5 +1746,9 @@ rsaz_1024_gather5_avx2:
|
||||
.long 2,2,2,2, 3,3,3,3
|
||||
.long 4,4,4,4, 4,4,4,4
|
||||
.align 64
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -1299,6 +1299,7 @@ _shaext_shortcut:
|
||||
leaq 64(%rsi),%r8
|
||||
paddd %xmm4,%xmm1
|
||||
cmovneq %r8,%rsi
|
||||
prefetcht0 512(%rsi)
|
||||
movdqa %xmm0,%xmm8
|
||||
.byte 15,56,201,229
|
||||
movdqa %xmm0,%xmm2
|
||||
@@ -5449,6 +5450,7 @@ _avx2_shortcut:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2
|
||||
.section .rodata
|
||||
.align 64
|
||||
K_XX_XX:
|
||||
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
|
||||
@@ -5464,5 +5466,9 @@ K_XX_XX:
|
||||
.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
|
||||
.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,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
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -25,6 +25,8 @@ sha256_block_data_order:
|
||||
movl 0(%r11),%r9d
|
||||
movl 4(%r11),%r10d
|
||||
movl 8(%r11),%r11d
|
||||
testl $536870912,%r11d
|
||||
jnz .Lshaext_shortcut
|
||||
andl $1073741824,%r9d
|
||||
andl $268435968,%r10d
|
||||
orl %r9d,%r10d
|
||||
@@ -1738,6 +1740,7 @@ sha256_block_data_order:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size sha256_block_data_order,.-sha256_block_data_order
|
||||
.section .rodata
|
||||
.align 64
|
||||
.type K256,@object
|
||||
K256:
|
||||
@@ -1781,6 +1784,216 @@ K256:
|
||||
.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
|
||||
.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
|
||||
.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,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
|
||||
.text
|
||||
.type sha256_block_data_order_shaext,@function
|
||||
.align 64
|
||||
sha256_block_data_order_shaext:
|
||||
.cfi_startproc
|
||||
.Lshaext_shortcut:
|
||||
leaq K256+128(%rip),%rcx
|
||||
movdqu (%rdi),%xmm1
|
||||
movdqu 16(%rdi),%xmm2
|
||||
movdqa 512-128(%rcx),%xmm7
|
||||
|
||||
pshufd $0x1b,%xmm1,%xmm0
|
||||
pshufd $0xb1,%xmm1,%xmm1
|
||||
pshufd $0x1b,%xmm2,%xmm2
|
||||
movdqa %xmm7,%xmm8
|
||||
.byte 102,15,58,15,202,8
|
||||
punpcklqdq %xmm0,%xmm2
|
||||
jmp .Loop_shaext
|
||||
|
||||
.align 16
|
||||
.Loop_shaext:
|
||||
movdqu (%rsi),%xmm3
|
||||
movdqu 16(%rsi),%xmm4
|
||||
movdqu 32(%rsi),%xmm5
|
||||
.byte 102,15,56,0,223
|
||||
movdqu 48(%rsi),%xmm6
|
||||
|
||||
movdqa 0-128(%rcx),%xmm0
|
||||
paddd %xmm3,%xmm0
|
||||
.byte 102,15,56,0,231
|
||||
movdqa %xmm2,%xmm10
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
nop
|
||||
movdqa %xmm1,%xmm9
|
||||
.byte 15,56,203,202
|
||||
|
||||
movdqa 32-128(%rcx),%xmm0
|
||||
paddd %xmm4,%xmm0
|
||||
.byte 102,15,56,0,239
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
leaq 64(%rsi),%rsi
|
||||
.byte 15,56,204,220
|
||||
.byte 15,56,203,202
|
||||
|
||||
movdqa 64-128(%rcx),%xmm0
|
||||
paddd %xmm5,%xmm0
|
||||
.byte 102,15,56,0,247
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm6,%xmm7
|
||||
.byte 102,15,58,15,253,4
|
||||
nop
|
||||
paddd %xmm7,%xmm3
|
||||
.byte 15,56,204,229
|
||||
.byte 15,56,203,202
|
||||
|
||||
movdqa 96-128(%rcx),%xmm0
|
||||
paddd %xmm6,%xmm0
|
||||
.byte 15,56,205,222
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm3,%xmm7
|
||||
.byte 102,15,58,15,254,4
|
||||
nop
|
||||
paddd %xmm7,%xmm4
|
||||
.byte 15,56,204,238
|
||||
.byte 15,56,203,202
|
||||
movdqa 128-128(%rcx),%xmm0
|
||||
paddd %xmm3,%xmm0
|
||||
.byte 15,56,205,227
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm4,%xmm7
|
||||
.byte 102,15,58,15,251,4
|
||||
nop
|
||||
paddd %xmm7,%xmm5
|
||||
.byte 15,56,204,243
|
||||
.byte 15,56,203,202
|
||||
movdqa 160-128(%rcx),%xmm0
|
||||
paddd %xmm4,%xmm0
|
||||
.byte 15,56,205,236
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm5,%xmm7
|
||||
.byte 102,15,58,15,252,4
|
||||
nop
|
||||
paddd %xmm7,%xmm6
|
||||
.byte 15,56,204,220
|
||||
.byte 15,56,203,202
|
||||
movdqa 192-128(%rcx),%xmm0
|
||||
paddd %xmm5,%xmm0
|
||||
.byte 15,56,205,245
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm6,%xmm7
|
||||
.byte 102,15,58,15,253,4
|
||||
nop
|
||||
paddd %xmm7,%xmm3
|
||||
.byte 15,56,204,229
|
||||
.byte 15,56,203,202
|
||||
movdqa 224-128(%rcx),%xmm0
|
||||
paddd %xmm6,%xmm0
|
||||
.byte 15,56,205,222
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm3,%xmm7
|
||||
.byte 102,15,58,15,254,4
|
||||
nop
|
||||
paddd %xmm7,%xmm4
|
||||
.byte 15,56,204,238
|
||||
.byte 15,56,203,202
|
||||
movdqa 256-128(%rcx),%xmm0
|
||||
paddd %xmm3,%xmm0
|
||||
.byte 15,56,205,227
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm4,%xmm7
|
||||
.byte 102,15,58,15,251,4
|
||||
nop
|
||||
paddd %xmm7,%xmm5
|
||||
.byte 15,56,204,243
|
||||
.byte 15,56,203,202
|
||||
movdqa 288-128(%rcx),%xmm0
|
||||
paddd %xmm4,%xmm0
|
||||
.byte 15,56,205,236
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm5,%xmm7
|
||||
.byte 102,15,58,15,252,4
|
||||
nop
|
||||
paddd %xmm7,%xmm6
|
||||
.byte 15,56,204,220
|
||||
.byte 15,56,203,202
|
||||
movdqa 320-128(%rcx),%xmm0
|
||||
paddd %xmm5,%xmm0
|
||||
.byte 15,56,205,245
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm6,%xmm7
|
||||
.byte 102,15,58,15,253,4
|
||||
nop
|
||||
paddd %xmm7,%xmm3
|
||||
.byte 15,56,204,229
|
||||
.byte 15,56,203,202
|
||||
movdqa 352-128(%rcx),%xmm0
|
||||
paddd %xmm6,%xmm0
|
||||
.byte 15,56,205,222
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm3,%xmm7
|
||||
.byte 102,15,58,15,254,4
|
||||
nop
|
||||
paddd %xmm7,%xmm4
|
||||
.byte 15,56,204,238
|
||||
.byte 15,56,203,202
|
||||
movdqa 384-128(%rcx),%xmm0
|
||||
paddd %xmm3,%xmm0
|
||||
.byte 15,56,205,227
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm4,%xmm7
|
||||
.byte 102,15,58,15,251,4
|
||||
nop
|
||||
paddd %xmm7,%xmm5
|
||||
.byte 15,56,204,243
|
||||
.byte 15,56,203,202
|
||||
movdqa 416-128(%rcx),%xmm0
|
||||
paddd %xmm4,%xmm0
|
||||
.byte 15,56,205,236
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
movdqa %xmm5,%xmm7
|
||||
.byte 102,15,58,15,252,4
|
||||
.byte 15,56,203,202
|
||||
paddd %xmm7,%xmm6
|
||||
|
||||
movdqa 448-128(%rcx),%xmm0
|
||||
paddd %xmm5,%xmm0
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
.byte 15,56,205,245
|
||||
movdqa %xmm8,%xmm7
|
||||
.byte 15,56,203,202
|
||||
|
||||
movdqa 480-128(%rcx),%xmm0
|
||||
paddd %xmm6,%xmm0
|
||||
nop
|
||||
.byte 15,56,203,209
|
||||
pshufd $0x0e,%xmm0,%xmm0
|
||||
decq %rdx
|
||||
nop
|
||||
.byte 15,56,203,202
|
||||
|
||||
paddd %xmm10,%xmm2
|
||||
paddd %xmm9,%xmm1
|
||||
jnz .Loop_shaext
|
||||
|
||||
pshufd $0xb1,%xmm2,%xmm2
|
||||
pshufd $0x1b,%xmm1,%xmm7
|
||||
pshufd $0xb1,%xmm1,%xmm1
|
||||
punpckhqdq %xmm2,%xmm1
|
||||
.byte 102,15,58,15,215,8
|
||||
|
||||
movdqu %xmm1,(%rdi)
|
||||
movdqu %xmm2,16(%rdi)
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size sha256_block_data_order_shaext,.-sha256_block_data_order_shaext
|
||||
.type sha256_block_data_order_ssse3,@function
|
||||
.align 64
|
||||
sha256_block_data_order_ssse3:
|
||||
@@ -3970,4 +4183,7 @@ sha256_block_data_order_avx:
|
||||
.cfi_endproc
|
||||
.size sha256_block_data_order_avx,.-sha256_block_data_order_avx
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -1736,6 +1736,7 @@ sha512_block_data_order:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size sha512_block_data_order,.-sha512_block_data_order
|
||||
.section .rodata
|
||||
.align 64
|
||||
.type K512,@object
|
||||
K512:
|
||||
@@ -1823,6 +1824,7 @@ K512:
|
||||
.quad 0x0001020304050607,0x08090a0b0c0d0e0f
|
||||
.quad 0x0001020304050607,0x08090a0b0c0d0e0f
|
||||
.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,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
|
||||
.text
|
||||
.type sha512_block_data_order_avx,@function
|
||||
.align 64
|
||||
sha512_block_data_order_avx:
|
||||
@@ -2989,4 +2991,7 @@ sha512_block_data_order_avx:
|
||||
.cfi_endproc
|
||||
.size sha512_block_data_order_avx,.-sha512_block_data_order_avx
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -1020,6 +1020,7 @@ _vpaes_preheat:
|
||||
|
||||
|
||||
.type _vpaes_consts,@object
|
||||
.section .rodata
|
||||
.align 64
|
||||
_vpaes_consts:
|
||||
.Lk_inv:
|
||||
@@ -1129,5 +1130,9 @@ _vpaes_consts:
|
||||
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
|
||||
.align 64
|
||||
.size _vpaes_consts,.-_vpaes_consts
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -1257,4 +1257,7 @@ bn_mulx4x_mont:
|
||||
.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,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 16
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -207,6 +207,7 @@ bn_mul_mont_gather5:
|
||||
por %xmm2,%xmm0
|
||||
por %xmm3,%xmm1
|
||||
por %xmm1,%xmm0
|
||||
|
||||
pshufd $0x4e,%xmm0,%xmm1
|
||||
por %xmm1,%xmm0
|
||||
leaq 256(%r12),%r12
|
||||
@@ -330,6 +331,7 @@ bn_mul_mont_gather5:
|
||||
por %xmm2,%xmm4
|
||||
por %xmm3,%xmm5
|
||||
por %xmm5,%xmm4
|
||||
|
||||
pshufd $0x4e,%xmm4,%xmm0
|
||||
por %xmm4,%xmm0
|
||||
leaq 256(%r12),%r12
|
||||
@@ -698,6 +700,7 @@ mul4x_internal:
|
||||
por %xmm2,%xmm0
|
||||
por %xmm3,%xmm1
|
||||
por %xmm1,%xmm0
|
||||
|
||||
pshufd $0x4e,%xmm0,%xmm1
|
||||
por %xmm1,%xmm0
|
||||
leaq 256(%r12),%r12
|
||||
@@ -905,6 +908,7 @@ mul4x_internal:
|
||||
por %xmm2,%xmm4
|
||||
por %xmm3,%xmm5
|
||||
por %xmm5,%xmm4
|
||||
|
||||
pshufd $0x4e,%xmm4,%xmm0
|
||||
por %xmm4,%xmm0
|
||||
leaq 256(%r12),%r12
|
||||
@@ -2067,187 +2071,6 @@ __bn_post4x_internal:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size __bn_post4x_internal,.-__bn_post4x_internal
|
||||
.globl bn_from_montgomery
|
||||
.hidden bn_from_montgomery
|
||||
.type bn_from_montgomery,@function
|
||||
.align 32
|
||||
bn_from_montgomery:
|
||||
.cfi_startproc
|
||||
testl $7,%r9d
|
||||
jz bn_from_mont8x
|
||||
xorl %eax,%eax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size bn_from_montgomery,.-bn_from_montgomery
|
||||
|
||||
.type bn_from_mont8x,@function
|
||||
.align 32
|
||||
bn_from_mont8x:
|
||||
.cfi_startproc
|
||||
.byte 0x67
|
||||
movq %rsp,%rax
|
||||
.cfi_def_cfa_register %rax
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-16
|
||||
pushq %rbp
|
||||
.cfi_offset %rbp,-24
|
||||
pushq %r12
|
||||
.cfi_offset %r12,-32
|
||||
pushq %r13
|
||||
.cfi_offset %r13,-40
|
||||
pushq %r14
|
||||
.cfi_offset %r14,-48
|
||||
pushq %r15
|
||||
.cfi_offset %r15,-56
|
||||
.Lfrom_prologue:
|
||||
|
||||
shll $3,%r9d
|
||||
leaq (%r9,%r9,2),%r10
|
||||
negq %r9
|
||||
movq (%r8),%r8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
leaq -320(%rsp,%r9,2),%r11
|
||||
movq %rsp,%rbp
|
||||
subq %rdi,%r11
|
||||
andq $4095,%r11
|
||||
cmpq %r11,%r10
|
||||
jb .Lfrom_sp_alt
|
||||
subq %r11,%rbp
|
||||
leaq -320(%rbp,%r9,2),%rbp
|
||||
jmp .Lfrom_sp_done
|
||||
|
||||
.align 32
|
||||
.Lfrom_sp_alt:
|
||||
leaq 4096-320(,%r9,2),%r10
|
||||
leaq -320(%rbp,%r9,2),%rbp
|
||||
subq %r10,%r11
|
||||
movq $0,%r10
|
||||
cmovcq %r10,%r11
|
||||
subq %r11,%rbp
|
||||
.Lfrom_sp_done:
|
||||
andq $-64,%rbp
|
||||
movq %rsp,%r11
|
||||
subq %rbp,%r11
|
||||
andq $-4096,%r11
|
||||
leaq (%r11,%rbp,1),%rsp
|
||||
movq (%rsp),%r10
|
||||
cmpq %rbp,%rsp
|
||||
ja .Lfrom_page_walk
|
||||
jmp .Lfrom_page_walk_done
|
||||
|
||||
.Lfrom_page_walk:
|
||||
leaq -4096(%rsp),%rsp
|
||||
movq (%rsp),%r10
|
||||
cmpq %rbp,%rsp
|
||||
ja .Lfrom_page_walk
|
||||
.Lfrom_page_walk_done:
|
||||
|
||||
movq %r9,%r10
|
||||
negq %r9
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
movq %r8,32(%rsp)
|
||||
movq %rax,40(%rsp)
|
||||
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
|
||||
.Lfrom_body:
|
||||
movq %r9,%r11
|
||||
leaq 48(%rsp),%rax
|
||||
pxor %xmm0,%xmm0
|
||||
jmp .Lmul_by_1
|
||||
|
||||
.align 32
|
||||
.Lmul_by_1:
|
||||
movdqu (%rsi),%xmm1
|
||||
movdqu 16(%rsi),%xmm2
|
||||
movdqu 32(%rsi),%xmm3
|
||||
movdqa %xmm0,(%rax,%r9,1)
|
||||
movdqu 48(%rsi),%xmm4
|
||||
movdqa %xmm0,16(%rax,%r9,1)
|
||||
.byte 0x48,0x8d,0xb6,0x40,0x00,0x00,0x00
|
||||
movdqa %xmm1,(%rax)
|
||||
movdqa %xmm0,32(%rax,%r9,1)
|
||||
movdqa %xmm2,16(%rax)
|
||||
movdqa %xmm0,48(%rax,%r9,1)
|
||||
movdqa %xmm3,32(%rax)
|
||||
movdqa %xmm4,48(%rax)
|
||||
leaq 64(%rax),%rax
|
||||
subq $64,%r11
|
||||
jnz .Lmul_by_1
|
||||
|
||||
.byte 102,72,15,110,207
|
||||
.byte 102,72,15,110,209
|
||||
.byte 0x67
|
||||
movq %rcx,%rbp
|
||||
.byte 102,73,15,110,218
|
||||
leaq OPENSSL_ia32cap_P(%rip),%r11
|
||||
movl 8(%r11),%r11d
|
||||
andl $0x80108,%r11d
|
||||
cmpl $0x80108,%r11d
|
||||
jne .Lfrom_mont_nox
|
||||
|
||||
leaq (%rax,%r9,1),%rdi
|
||||
call __bn_sqrx8x_reduction
|
||||
call __bn_postx4x_internal
|
||||
|
||||
pxor %xmm0,%xmm0
|
||||
leaq 48(%rsp),%rax
|
||||
jmp .Lfrom_mont_zero
|
||||
|
||||
.align 32
|
||||
.Lfrom_mont_nox:
|
||||
call __bn_sqr8x_reduction
|
||||
call __bn_post4x_internal
|
||||
|
||||
pxor %xmm0,%xmm0
|
||||
leaq 48(%rsp),%rax
|
||||
jmp .Lfrom_mont_zero
|
||||
|
||||
.align 32
|
||||
.Lfrom_mont_zero:
|
||||
movq 40(%rsp),%rsi
|
||||
.cfi_def_cfa %rsi,8
|
||||
movdqa %xmm0,0(%rax)
|
||||
movdqa %xmm0,16(%rax)
|
||||
movdqa %xmm0,32(%rax)
|
||||
movdqa %xmm0,48(%rax)
|
||||
leaq 64(%rax),%rax
|
||||
subq $32,%r9
|
||||
jnz .Lfrom_mont_zero
|
||||
|
||||
movq $1,%rax
|
||||
movq -48(%rsi),%r15
|
||||
.cfi_restore %r15
|
||||
movq -40(%rsi),%r14
|
||||
.cfi_restore %r14
|
||||
movq -32(%rsi),%r13
|
||||
.cfi_restore %r13
|
||||
movq -24(%rsi),%r12
|
||||
.cfi_restore %r12
|
||||
movq -16(%rsi),%rbp
|
||||
.cfi_restore %rbp
|
||||
movq -8(%rsi),%rbx
|
||||
.cfi_restore %rbx
|
||||
leaq (%rsi),%rsp
|
||||
.cfi_def_cfa_register %rsp
|
||||
.Lfrom_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size bn_from_mont8x,.-bn_from_mont8x
|
||||
.type bn_mulx4x_mont_gather5,@function
|
||||
.align 32
|
||||
bn_mulx4x_mont_gather5:
|
||||
@@ -2502,6 +2325,7 @@ mulx4x_internal:
|
||||
por %xmm2,%xmm0
|
||||
por %xmm3,%xmm1
|
||||
pxor %xmm1,%xmm0
|
||||
|
||||
pshufd $0x4e,%xmm0,%xmm1
|
||||
por %xmm1,%xmm0
|
||||
leaq 256(%rdi),%rdi
|
||||
@@ -2652,6 +2476,7 @@ mulx4x_internal:
|
||||
por %xmm2,%xmm4
|
||||
por %xmm3,%xmm5
|
||||
por %xmm5,%xmm4
|
||||
|
||||
pshufd $0x4e,%xmm4,%xmm0
|
||||
por %xmm4,%xmm0
|
||||
leaq 256(%rdi),%rdi
|
||||
@@ -3600,6 +3425,15 @@ bn_scatter5:
|
||||
.cfi_startproc
|
||||
cmpl $0,%esi
|
||||
jz .Lscatter_epilogue
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
leaq (%rdx,%rcx,8),%rdx
|
||||
.Lscatter:
|
||||
movq (%rdi),%rax
|
||||
@@ -3768,6 +3602,7 @@ bn_gather5:
|
||||
por %xmm3,%xmm5
|
||||
por %xmm5,%xmm4
|
||||
leaq 256(%r11),%r11
|
||||
|
||||
pshufd $0x4e,%xmm4,%xmm0
|
||||
por %xmm4,%xmm0
|
||||
movq %xmm0,(%rdi)
|
||||
@@ -3781,10 +3616,15 @@ bn_gather5:
|
||||
.LSEH_end_bn_gather5:
|
||||
.cfi_endproc
|
||||
.size bn_gather5,.-bn_gather5
|
||||
.section .rodata
|
||||
.align 64
|
||||
.Linc:
|
||||
.long 0,0, 1,1
|
||||
.long 2,2, 2,2
|
||||
.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,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
|
||||
.text
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
@@ -7,7 +7,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) && defined(__ELF__)
|
||||
#if defined(BORINGSSL_PREFIX)
|
||||
#include <boringssl_prefix_symbols_asm.h>
|
||||
#endif
|
||||
@@ -25,7 +25,6 @@
|
||||
.hidden abi_test_trampoline
|
||||
.align 16
|
||||
abi_test_trampoline:
|
||||
.Labi_test_trampoline_seh_begin:
|
||||
.cfi_startproc
|
||||
|
||||
|
||||
@@ -36,29 +35,29 @@ abi_test_trampoline:
|
||||
|
||||
|
||||
|
||||
|
||||
subq $120,%rsp
|
||||
.cfi_adjust_cfa_offset 120
|
||||
.Labi_test_trampoline_seh_prolog_alloc:
|
||||
|
||||
movq %r8,48(%rsp)
|
||||
movq %rbx,64(%rsp)
|
||||
.cfi_offset rbx, -64
|
||||
.Labi_test_trampoline_seh_prolog_rbx:
|
||||
|
||||
movq %rbp,72(%rsp)
|
||||
.cfi_offset rbp, -56
|
||||
.Labi_test_trampoline_seh_prolog_rbp:
|
||||
|
||||
movq %r12,80(%rsp)
|
||||
.cfi_offset r12, -48
|
||||
.Labi_test_trampoline_seh_prolog_r12:
|
||||
|
||||
movq %r13,88(%rsp)
|
||||
.cfi_offset r13, -40
|
||||
.Labi_test_trampoline_seh_prolog_r13:
|
||||
|
||||
movq %r14,96(%rsp)
|
||||
.cfi_offset r14, -32
|
||||
.Labi_test_trampoline_seh_prolog_r14:
|
||||
|
||||
movq %r15,104(%rsp)
|
||||
.cfi_offset r15, -24
|
||||
.Labi_test_trampoline_seh_prolog_r15:
|
||||
.Labi_test_trampoline_seh_prolog_end:
|
||||
|
||||
movq 0(%rsi),%rbx
|
||||
movq 8(%rsi),%rbp
|
||||
movq 16(%rsi),%r12
|
||||
@@ -182,7 +181,7 @@ abi_test_unwind_stop:
|
||||
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.Labi_test_trampoline_seh_end:
|
||||
|
||||
.size abi_test_trampoline,.-abi_test_trampoline
|
||||
.type abi_test_clobber_rax, @function
|
||||
.globl abi_test_clobber_rax
|
||||
@@ -441,11 +440,11 @@ abi_test_clobber_xmm15:
|
||||
.align 16
|
||||
abi_test_bad_unwind_wrong_register:
|
||||
.cfi_startproc
|
||||
.Labi_test_bad_unwind_wrong_register_seh_begin:
|
||||
|
||||
pushq %r12
|
||||
.cfi_adjust_cfa_offset 8
|
||||
.cfi_offset %r13,-16
|
||||
.Labi_test_bad_unwind_wrong_register_seh_push_r13:
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -454,7 +453,7 @@ abi_test_bad_unwind_wrong_register:
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r12
|
||||
.byte 0xf3,0xc3
|
||||
.Labi_test_bad_unwind_wrong_register_seh_end:
|
||||
|
||||
.cfi_endproc
|
||||
.size abi_test_bad_unwind_wrong_register,.-abi_test_bad_unwind_wrong_register
|
||||
|
||||
@@ -467,11 +466,11 @@ abi_test_bad_unwind_wrong_register:
|
||||
.align 16
|
||||
abi_test_bad_unwind_temporary:
|
||||
.cfi_startproc
|
||||
.Labi_test_bad_unwind_temporary_seh_begin:
|
||||
|
||||
pushq %r12
|
||||
.cfi_adjust_cfa_offset 8
|
||||
.cfi_offset %r12,-16
|
||||
.Labi_test_bad_unwind_temporary_seh_push_r12:
|
||||
|
||||
|
||||
movq %r12,%rax
|
||||
incq %rax
|
||||
@@ -486,8 +485,8 @@ abi_test_bad_unwind_temporary:
|
||||
.cfi_adjust_cfa_offset -8
|
||||
.cfi_restore %r12
|
||||
.byte 0xf3,0xc3
|
||||
.Labi_test_bad_unwind_temporary_seh_end:
|
||||
.cfi_endproc
|
||||
|
||||
.size abi_test_bad_unwind_temporary,.-abi_test_bad_unwind_temporary
|
||||
|
||||
|
||||
@@ -515,4 +514,7 @@ abi_test_set_direction_flag:
|
||||
.byte 0xf3,0xc3
|
||||
.size abi_test_set_direction_flag,.-abi_test_set_direction_flag
|
||||
#endif
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#if defined(__ELF__)
|
||||
// See https://www.airs.com/blog/archives/518.
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
Reference in New Issue
Block a user