diff options
| author | auth12 <[email protected]> | 2020-07-22 08:40:38 -0700 |
|---|---|---|
| committer | auth12 <[email protected]> | 2020-07-22 08:40:38 -0700 |
| commit | 4ff89e85e74884e8f04edb5c31a94b4323e895e9 (patch) | |
| tree | 65f98ebf9af0d0947e44bf397b1fac0f107d7a2f /client/wolfssl/wolfcrypt/src/sha512_asm.S | |
| parent | Client injection. (diff) | |
| download | loader-4ff89e85e74884e8f04edb5c31a94b4323e895e9.tar.xz loader-4ff89e85e74884e8f04edb5c31a94b4323e895e9.zip | |
Removed wolfssl
Diffstat (limited to 'client/wolfssl/wolfcrypt/src/sha512_asm.S')
| -rw-r--r-- | client/wolfssl/wolfcrypt/src/sha512_asm.S | 10741 |
1 files changed, 0 insertions, 10741 deletions
diff --git a/client/wolfssl/wolfcrypt/src/sha512_asm.S b/client/wolfssl/wolfcrypt/src/sha512_asm.S deleted file mode 100644 index 6a27ce4..0000000 --- a/client/wolfssl/wolfcrypt/src/sha512_asm.S +++ /dev/null @@ -1,10741 +0,0 @@ -/* sha512_asm - * - * Copyright (C) 2006-2020 wolfSSL Inc. - * - * This file is part of wolfSSL. - * - * wolfSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * wolfSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA - */ - -#ifndef HAVE_INTEL_AVX1 -#define HAVE_INTEL_AVX1 -#endif /* HAVE_INTEL_AVX1 */ -#ifndef NO_AVX2_SUPPORT -#define HAVE_INTEL_AVX2 -#endif /* NO_AVX2_SUPPORT */ - -#ifdef HAVE_INTEL_AVX1 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx1_sha512_k: -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx1_sha512_flip_mask: -.quad 0x1020304050607, 0x8090a0b0c0d0e0f -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX1 -.type Transform_Sha512_AVX1,@function -.align 4 -Transform_Sha512_AVX1: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX1 -.p2align 2 -_Transform_Sha512_AVX1: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - subq $0x88, %rsp - leaq 64(%rdi), %rax - vmovdqa L_avx1_sha512_flip_mask(%rip), %xmm14 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - vmovdqu (%rax), %xmm0 - vmovdqu 16(%rax), %xmm1 - vpshufb %xmm14, %xmm0, %xmm0 - vpshufb %xmm14, %xmm1, %xmm1 - vmovdqu 32(%rax), %xmm2 - vmovdqu 48(%rax), %xmm3 - vpshufb %xmm14, %xmm2, %xmm2 - vpshufb %xmm14, %xmm3, %xmm3 - vmovdqu 64(%rax), %xmm4 - vmovdqu 80(%rax), %xmm5 - vpshufb %xmm14, %xmm4, %xmm4 - vpshufb %xmm14, %xmm5, %xmm5 - vmovdqu 96(%rax), %xmm6 - vmovdqu 112(%rax), %xmm7 - vpshufb %xmm14, %xmm6, %xmm6 - vpshufb %xmm14, %xmm7, %xmm7 - movl $4, 128(%rsp) - leaq L_avx1_sha512_k(%rip), %rsi - movq %r9, %rbx - movq %r12, %rax - xorq %r10, %rbx - # Start of 16 rounds -L_sha256_len_avx1_start: - vpaddq (%rsi), %xmm0, %xmm8 - vpaddq 16(%rsi), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rsi), %xmm2, %xmm8 - vpaddq 48(%rsi), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rsi), %xmm4, %xmm8 - vpaddq 80(%rsi), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rsi), %xmm6, %xmm8 - vpaddq 112(%rsi), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - addq $0x80, %rsi - # msg_sched: 0-1 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm0, %xmm1, %xmm12 - vpalignr $8, %xmm4, %xmm5, %xmm13 - # rnd_0: 1 - 1 - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm0, %xmm13, %xmm0 - # rnd_0: 10 - 11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm0, %xmm8, %xmm0 - # rnd_1: 1 - 1 - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - vpsrlq $19, %xmm7, %xmm8 - vpsllq $45, %xmm7, %xmm9 - # rnd_1: 2 - 3 - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - vpsrlq $61, %xmm7, %xmm10 - vpsllq $3, %xmm7, %xmm11 - # rnd_1: 4 - 6 - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm7, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - vpaddq %xmm0, %xmm8, %xmm0 - # msg_sched done: 0-3 - # msg_sched: 2-3 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm1, %xmm2, %xmm12 - vpalignr $8, %xmm5, %xmm6, %xmm13 - # rnd_0: 1 - 1 - movq %r14, %rdx - movq %r11, %rcx - addq 16(%rsp), %r13 - xorq %r12, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm1, %xmm13, %xmm1 - # rnd_0: 10 - 11 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm1, %xmm8, %xmm1 - # rnd_1: 1 - 1 - movq %r13, %rbx - movq %r10, %rcx - addq 24(%rsp), %r12 - xorq %r11, %rcx - vpsrlq $19, %xmm0, %xmm8 - vpsllq $45, %xmm0, %xmm9 - # rnd_1: 2 - 3 - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - vpsrlq $61, %xmm0, %xmm10 - vpsllq $3, %xmm0, %xmm11 - # rnd_1: 4 - 6 - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm0, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - vpaddq %xmm1, %xmm8, %xmm1 - # msg_sched done: 2-5 - # msg_sched: 4-5 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm2, %xmm3, %xmm12 - vpalignr $8, %xmm6, %xmm7, %xmm13 - # rnd_0: 1 - 1 - movq %r12, %rdx - movq %r9, %rcx - addq 32(%rsp), %r11 - xorq %r10, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm2, %xmm13, %xmm2 - # rnd_0: 10 - 11 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm2, %xmm8, %xmm2 - # rnd_1: 1 - 1 - movq %r11, %rbx - movq %r8, %rcx - addq 40(%rsp), %r10 - xorq %r9, %rcx - vpsrlq $19, %xmm1, %xmm8 - vpsllq $45, %xmm1, %xmm9 - # rnd_1: 2 - 3 - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - vpsrlq $61, %xmm1, %xmm10 - vpsllq $3, %xmm1, %xmm11 - # rnd_1: 4 - 6 - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm1, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - vpaddq %xmm2, %xmm8, %xmm2 - # msg_sched done: 4-7 - # msg_sched: 6-7 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm3, %xmm4, %xmm12 - vpalignr $8, %xmm7, %xmm0, %xmm13 - # rnd_0: 1 - 1 - movq %r10, %rdx - movq %r15, %rcx - addq 48(%rsp), %r9 - xorq %r8, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm3, %xmm13, %xmm3 - # rnd_0: 10 - 11 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm3, %xmm8, %xmm3 - # rnd_1: 1 - 1 - movq %r9, %rbx - movq %r14, %rcx - addq 56(%rsp), %r8 - xorq %r15, %rcx - vpsrlq $19, %xmm2, %xmm8 - vpsllq $45, %xmm2, %xmm9 - # rnd_1: 2 - 3 - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - vpsrlq $61, %xmm2, %xmm10 - vpsllq $3, %xmm2, %xmm11 - # rnd_1: 4 - 6 - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm2, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq %xmm3, %xmm8, %xmm3 - # msg_sched done: 6-9 - # msg_sched: 8-9 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm4, %xmm5, %xmm12 - vpalignr $8, %xmm0, %xmm1, %xmm13 - # rnd_0: 1 - 1 - movq %r8, %rdx - movq %r13, %rcx - addq 64(%rsp), %r15 - xorq %r14, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm4, %xmm13, %xmm4 - # rnd_0: 10 - 11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm4, %xmm8, %xmm4 - # rnd_1: 1 - 1 - movq %r15, %rbx - movq %r12, %rcx - addq 72(%rsp), %r14 - xorq %r13, %rcx - vpsrlq $19, %xmm3, %xmm8 - vpsllq $45, %xmm3, %xmm9 - # rnd_1: 2 - 3 - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - vpsrlq $61, %xmm3, %xmm10 - vpsllq $3, %xmm3, %xmm11 - # rnd_1: 4 - 6 - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm3, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - vpaddq %xmm4, %xmm8, %xmm4 - # msg_sched done: 8-11 - # msg_sched: 10-11 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm5, %xmm6, %xmm12 - vpalignr $8, %xmm1, %xmm2, %xmm13 - # rnd_0: 1 - 1 - movq %r14, %rdx - movq %r11, %rcx - addq 80(%rsp), %r13 - xorq %r12, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm5, %xmm13, %xmm5 - # rnd_0: 10 - 11 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm5, %xmm8, %xmm5 - # rnd_1: 1 - 1 - movq %r13, %rbx - movq %r10, %rcx - addq 88(%rsp), %r12 - xorq %r11, %rcx - vpsrlq $19, %xmm4, %xmm8 - vpsllq $45, %xmm4, %xmm9 - # rnd_1: 2 - 3 - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - vpsrlq $61, %xmm4, %xmm10 - vpsllq $3, %xmm4, %xmm11 - # rnd_1: 4 - 6 - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm4, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - vpaddq %xmm5, %xmm8, %xmm5 - # msg_sched done: 10-13 - # msg_sched: 12-13 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm6, %xmm7, %xmm12 - vpalignr $8, %xmm2, %xmm3, %xmm13 - # rnd_0: 1 - 1 - movq %r12, %rdx - movq %r9, %rcx - addq 96(%rsp), %r11 - xorq %r10, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm6, %xmm13, %xmm6 - # rnd_0: 10 - 11 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm6, %xmm8, %xmm6 - # rnd_1: 1 - 1 - movq %r11, %rbx - movq %r8, %rcx - addq 104(%rsp), %r10 - xorq %r9, %rcx - vpsrlq $19, %xmm5, %xmm8 - vpsllq $45, %xmm5, %xmm9 - # rnd_1: 2 - 3 - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - vpsrlq $61, %xmm5, %xmm10 - vpsllq $3, %xmm5, %xmm11 - # rnd_1: 4 - 6 - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm5, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - vpaddq %xmm6, %xmm8, %xmm6 - # msg_sched done: 12-15 - # msg_sched: 14-15 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm7, %xmm0, %xmm12 - vpalignr $8, %xmm3, %xmm4, %xmm13 - # rnd_0: 1 - 1 - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm7, %xmm13, %xmm7 - # rnd_0: 10 - 11 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm7, %xmm8, %xmm7 - # rnd_1: 1 - 1 - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - vpsrlq $19, %xmm6, %xmm8 - vpsllq $45, %xmm6, %xmm9 - # rnd_1: 2 - 3 - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - vpsrlq $61, %xmm6, %xmm10 - vpsllq $3, %xmm6, %xmm11 - # rnd_1: 4 - 6 - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm6, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq %xmm7, %xmm8, %xmm7 - # msg_sched done: 14-17 - subl $0x01, 128(%rsp) - jne L_sha256_len_avx1_start - vpaddq (%rsi), %xmm0, %xmm8 - vpaddq 16(%rsi), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rsi), %xmm2, %xmm8 - vpaddq 48(%rsi), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rsi), %xmm4, %xmm8 - vpaddq 80(%rsi), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rsi), %xmm6, %xmm8 - vpaddq 112(%rsi), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - # rnd_all_2: 0-1 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - # rnd_all_2: 2-3 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 16(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 24(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - # rnd_all_2: 4-5 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 32(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 40(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - # rnd_all_2: 6-7 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 48(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 56(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - # rnd_all_2: 8-9 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq 64(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 72(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - # rnd_all_2: 10-11 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 80(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 88(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - # rnd_all_2: 12-13 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 96(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 104(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - # rnd_all_2: 14-15 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - addq %r8, (%rdi) - addq %r9, 8(%rdi) - addq %r10, 16(%rdi) - addq %r11, 24(%rdi) - addq %r12, 32(%rdi) - addq %r13, 40(%rdi) - addq %r14, 48(%rdi) - addq %r15, 56(%rdi) - xorq %rax, %rax - vzeroupper - addq $0x88, %rsp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX1,.-Transform_Sha512_AVX1 -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX1_Len -.type Transform_Sha512_AVX1_Len,@function -.align 4 -Transform_Sha512_AVX1_Len: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX1_Len -.p2align 2 -_Transform_Sha512_AVX1_Len: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - pushq %rbp - movq %rsi, %rbp - subq $0x90, %rsp - movq 224(%rdi), %rsi - leaq L_avx1_sha512_k(%rip), %rdx - vmovdqa L_avx1_sha512_flip_mask(%rip), %xmm14 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - # Start of loop processing a block -L_sha512_len_avx1_begin: - vmovdqu (%rsi), %xmm0 - vmovdqu 16(%rsi), %xmm1 - vpshufb %xmm14, %xmm0, %xmm0 - vpshufb %xmm14, %xmm1, %xmm1 - vmovdqu 32(%rsi), %xmm2 - vmovdqu 48(%rsi), %xmm3 - vpshufb %xmm14, %xmm2, %xmm2 - vpshufb %xmm14, %xmm3, %xmm3 - vmovdqu 64(%rsi), %xmm4 - vmovdqu 80(%rsi), %xmm5 - vpshufb %xmm14, %xmm4, %xmm4 - vpshufb %xmm14, %xmm5, %xmm5 - vmovdqu 96(%rsi), %xmm6 - vmovdqu 112(%rsi), %xmm7 - vpshufb %xmm14, %xmm6, %xmm6 - vpshufb %xmm14, %xmm7, %xmm7 - movl $4, 128(%rsp) - movq %r9, %rbx - movq %r12, %rax - xorq %r10, %rbx - vpaddq (%rdx), %xmm0, %xmm8 - vpaddq 16(%rdx), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rdx), %xmm2, %xmm8 - vpaddq 48(%rdx), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rdx), %xmm4, %xmm8 - vpaddq 80(%rdx), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rdx), %xmm6, %xmm8 - vpaddq 112(%rdx), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - # Start of 16 rounds -L_sha512_len_avx1_start: - addq $0x80, %rdx - movq %rdx, 136(%rsp) - # msg_sched: 0-1 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm0, %xmm1, %xmm12 - vpalignr $8, %xmm4, %xmm5, %xmm13 - # rnd_0: 1 - 1 - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm0, %xmm13, %xmm0 - # rnd_0: 10 - 11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm0, %xmm8, %xmm0 - # rnd_1: 1 - 1 - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - vpsrlq $19, %xmm7, %xmm8 - vpsllq $45, %xmm7, %xmm9 - # rnd_1: 2 - 3 - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - vpsrlq $61, %xmm7, %xmm10 - vpsllq $3, %xmm7, %xmm11 - # rnd_1: 4 - 6 - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm7, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - vpaddq %xmm0, %xmm8, %xmm0 - # msg_sched done: 0-3 - # msg_sched: 2-3 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm1, %xmm2, %xmm12 - vpalignr $8, %xmm5, %xmm6, %xmm13 - # rnd_0: 1 - 1 - movq %r14, %rdx - movq %r11, %rcx - addq 16(%rsp), %r13 - xorq %r12, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm1, %xmm13, %xmm1 - # rnd_0: 10 - 11 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm1, %xmm8, %xmm1 - # rnd_1: 1 - 1 - movq %r13, %rbx - movq %r10, %rcx - addq 24(%rsp), %r12 - xorq %r11, %rcx - vpsrlq $19, %xmm0, %xmm8 - vpsllq $45, %xmm0, %xmm9 - # rnd_1: 2 - 3 - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - vpsrlq $61, %xmm0, %xmm10 - vpsllq $3, %xmm0, %xmm11 - # rnd_1: 4 - 6 - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm0, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - vpaddq %xmm1, %xmm8, %xmm1 - # msg_sched done: 2-5 - # msg_sched: 4-5 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm2, %xmm3, %xmm12 - vpalignr $8, %xmm6, %xmm7, %xmm13 - # rnd_0: 1 - 1 - movq %r12, %rdx - movq %r9, %rcx - addq 32(%rsp), %r11 - xorq %r10, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm2, %xmm13, %xmm2 - # rnd_0: 10 - 11 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm2, %xmm8, %xmm2 - # rnd_1: 1 - 1 - movq %r11, %rbx - movq %r8, %rcx - addq 40(%rsp), %r10 - xorq %r9, %rcx - vpsrlq $19, %xmm1, %xmm8 - vpsllq $45, %xmm1, %xmm9 - # rnd_1: 2 - 3 - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - vpsrlq $61, %xmm1, %xmm10 - vpsllq $3, %xmm1, %xmm11 - # rnd_1: 4 - 6 - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm1, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - vpaddq %xmm2, %xmm8, %xmm2 - # msg_sched done: 4-7 - # msg_sched: 6-7 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm3, %xmm4, %xmm12 - vpalignr $8, %xmm7, %xmm0, %xmm13 - # rnd_0: 1 - 1 - movq %r10, %rdx - movq %r15, %rcx - addq 48(%rsp), %r9 - xorq %r8, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm3, %xmm13, %xmm3 - # rnd_0: 10 - 11 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm3, %xmm8, %xmm3 - # rnd_1: 1 - 1 - movq %r9, %rbx - movq %r14, %rcx - addq 56(%rsp), %r8 - xorq %r15, %rcx - vpsrlq $19, %xmm2, %xmm8 - vpsllq $45, %xmm2, %xmm9 - # rnd_1: 2 - 3 - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - vpsrlq $61, %xmm2, %xmm10 - vpsllq $3, %xmm2, %xmm11 - # rnd_1: 4 - 6 - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm2, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq %xmm3, %xmm8, %xmm3 - # msg_sched done: 6-9 - # msg_sched: 8-9 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm4, %xmm5, %xmm12 - vpalignr $8, %xmm0, %xmm1, %xmm13 - # rnd_0: 1 - 1 - movq %r8, %rdx - movq %r13, %rcx - addq 64(%rsp), %r15 - xorq %r14, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm4, %xmm13, %xmm4 - # rnd_0: 10 - 11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm4, %xmm8, %xmm4 - # rnd_1: 1 - 1 - movq %r15, %rbx - movq %r12, %rcx - addq 72(%rsp), %r14 - xorq %r13, %rcx - vpsrlq $19, %xmm3, %xmm8 - vpsllq $45, %xmm3, %xmm9 - # rnd_1: 2 - 3 - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - vpsrlq $61, %xmm3, %xmm10 - vpsllq $3, %xmm3, %xmm11 - # rnd_1: 4 - 6 - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm3, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - vpaddq %xmm4, %xmm8, %xmm4 - # msg_sched done: 8-11 - # msg_sched: 10-11 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm5, %xmm6, %xmm12 - vpalignr $8, %xmm1, %xmm2, %xmm13 - # rnd_0: 1 - 1 - movq %r14, %rdx - movq %r11, %rcx - addq 80(%rsp), %r13 - xorq %r12, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm5, %xmm13, %xmm5 - # rnd_0: 10 - 11 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm5, %xmm8, %xmm5 - # rnd_1: 1 - 1 - movq %r13, %rbx - movq %r10, %rcx - addq 88(%rsp), %r12 - xorq %r11, %rcx - vpsrlq $19, %xmm4, %xmm8 - vpsllq $45, %xmm4, %xmm9 - # rnd_1: 2 - 3 - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - vpsrlq $61, %xmm4, %xmm10 - vpsllq $3, %xmm4, %xmm11 - # rnd_1: 4 - 6 - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm4, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - vpaddq %xmm5, %xmm8, %xmm5 - # msg_sched done: 10-13 - # msg_sched: 12-13 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm6, %xmm7, %xmm12 - vpalignr $8, %xmm2, %xmm3, %xmm13 - # rnd_0: 1 - 1 - movq %r12, %rdx - movq %r9, %rcx - addq 96(%rsp), %r11 - xorq %r10, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm6, %xmm13, %xmm6 - # rnd_0: 10 - 11 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm6, %xmm8, %xmm6 - # rnd_1: 1 - 1 - movq %r11, %rbx - movq %r8, %rcx - addq 104(%rsp), %r10 - xorq %r9, %rcx - vpsrlq $19, %xmm5, %xmm8 - vpsllq $45, %xmm5, %xmm9 - # rnd_1: 2 - 3 - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - vpsrlq $61, %xmm5, %xmm10 - vpsllq $3, %xmm5, %xmm11 - # rnd_1: 4 - 6 - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm5, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - vpaddq %xmm6, %xmm8, %xmm6 - # msg_sched done: 12-15 - # msg_sched: 14-15 - # rnd_0: 0 - 0 - rorq $23, %rax - vpalignr $8, %xmm7, %xmm0, %xmm12 - vpalignr $8, %xmm3, %xmm4, %xmm13 - # rnd_0: 1 - 1 - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 3 - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 4 - 5 - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 6 - 7 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 8 - 9 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm7, %xmm13, %xmm7 - # rnd_0: 10 - 11 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 0 - rorq $23, %rax - vpaddq %xmm7, %xmm8, %xmm7 - # rnd_1: 1 - 1 - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - vpsrlq $19, %xmm6, %xmm8 - vpsllq $45, %xmm6, %xmm9 - # rnd_1: 2 - 3 - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - vpsrlq $61, %xmm6, %xmm10 - vpsllq $3, %xmm6, %xmm11 - # rnd_1: 4 - 6 - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 7 - 8 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm6, %xmm11 - # rnd_1: 9 - 10 - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 11 - 11 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq %xmm7, %xmm8, %xmm7 - # msg_sched done: 14-17 - movq 136(%rsp), %rdx - vpaddq (%rdx), %xmm0, %xmm8 - vpaddq 16(%rdx), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rdx), %xmm2, %xmm8 - vpaddq 48(%rdx), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rdx), %xmm4, %xmm8 - vpaddq 80(%rdx), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rdx), %xmm6, %xmm8 - vpaddq 112(%rdx), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - subl $0x01, 128(%rsp) - jne L_sha512_len_avx1_start - # rnd_all_2: 0-1 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - # rnd_all_2: 2-3 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 16(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 24(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - # rnd_all_2: 4-5 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 32(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 40(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - # rnd_all_2: 6-7 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 48(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 56(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - # rnd_all_2: 8-9 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq 64(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 72(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - # rnd_all_2: 10-11 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 80(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 88(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - # rnd_all_2: 12-13 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 96(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 104(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - # rnd_all_2: 14-15 - # rnd_0: 0 - 11 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - # rnd_1: 0 - 11 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - addq (%rdi), %r8 - addq 8(%rdi), %r9 - addq 16(%rdi), %r10 - addq 24(%rdi), %r11 - addq 32(%rdi), %r12 - addq 40(%rdi), %r13 - addq 48(%rdi), %r14 - addq 56(%rdi), %r15 - leaq L_avx1_sha512_k(%rip), %rdx - addq $0x80, %rsi - subl $0x80, %ebp - movq %r8, (%rdi) - movq %r9, 8(%rdi) - movq %r10, 16(%rdi) - movq %r11, 24(%rdi) - movq %r12, 32(%rdi) - movq %r13, 40(%rdi) - movq %r14, 48(%rdi) - movq %r15, 56(%rdi) - jnz L_sha512_len_avx1_begin - xorq %rax, %rax - vzeroupper - addq $0x90, %rsp - popq %rbp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX1_Len,.-Transform_Sha512_AVX1_Len -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx1_rorx_sha512_k: -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx1_rorx_sha512_flip_mask: -.quad 0x1020304050607, 0x8090a0b0c0d0e0f -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX1_RORX -.type Transform_Sha512_AVX1_RORX,@function -.align 4 -Transform_Sha512_AVX1_RORX: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX1_RORX -.p2align 2 -_Transform_Sha512_AVX1_RORX: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - subq $0x88, %rsp - leaq 64(%rdi), %rax - vmovdqa L_avx1_rorx_sha512_flip_mask(%rip), %xmm14 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - vmovdqu (%rax), %xmm0 - vmovdqu 16(%rax), %xmm1 - vpshufb %xmm14, %xmm0, %xmm0 - vpshufb %xmm14, %xmm1, %xmm1 - vmovdqu 32(%rax), %xmm2 - vmovdqu 48(%rax), %xmm3 - vpshufb %xmm14, %xmm2, %xmm2 - vpshufb %xmm14, %xmm3, %xmm3 - vmovdqu 64(%rax), %xmm4 - vmovdqu 80(%rax), %xmm5 - vpshufb %xmm14, %xmm4, %xmm4 - vpshufb %xmm14, %xmm5, %xmm5 - vmovdqu 96(%rax), %xmm6 - vmovdqu 112(%rax), %xmm7 - vpshufb %xmm14, %xmm6, %xmm6 - vpshufb %xmm14, %xmm7, %xmm7 - movl $4, 128(%rsp) - leaq L_avx1_rorx_sha512_k(%rip), %rsi - movq %r9, %rbx - xorq %rdx, %rdx - xorq %r10, %rbx - vpaddq (%rsi), %xmm0, %xmm8 - vpaddq 16(%rsi), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rsi), %xmm2, %xmm8 - vpaddq 48(%rsi), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rsi), %xmm4, %xmm8 - vpaddq 80(%rsi), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rsi), %xmm6, %xmm8 - vpaddq 112(%rsi), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - # Start of 16 rounds -L_sha256_len_avx1_rorx_start: - addq $0x80, %rsi - # msg_sched: 0-1 - # rnd_0: 0 - 0 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpalignr $8, %xmm0, %xmm1, %xmm12 - vpalignr $8, %xmm4, %xmm5, %xmm13 - # rnd_0: 1 - 1 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm0, %xmm13, %xmm0 - # rnd_0: 6 - 7 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - vpaddq %xmm0, %xmm8, %xmm0 - # rnd_1: 0 - 0 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpsrlq $19, %xmm7, %xmm8 - vpsllq $45, %xmm7, %xmm9 - # rnd_1: 1 - 1 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm7, %xmm10 - vpsllq $3, %xmm7, %xmm11 - # rnd_1: 2 - 2 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm7, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpaddq %xmm0, %xmm8, %xmm0 - # msg_sched done: 0-3 - # msg_sched: 2-3 - # rnd_0: 0 - 0 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpalignr $8, %xmm1, %xmm2, %xmm12 - vpalignr $8, %xmm5, %xmm6, %xmm13 - # rnd_0: 1 - 1 - addq 16(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm1, %xmm13, %xmm1 - # rnd_0: 6 - 7 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpaddq %xmm1, %xmm8, %xmm1 - # rnd_1: 0 - 0 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $19, %xmm0, %xmm8 - vpsllq $45, %xmm0, %xmm9 - # rnd_1: 1 - 1 - addq 24(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm0, %xmm10 - vpsllq $3, %xmm0, %xmm11 - # rnd_1: 2 - 2 - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm0, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vpaddq %xmm1, %xmm8, %xmm1 - # msg_sched done: 2-5 - # msg_sched: 4-5 - # rnd_0: 0 - 0 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpalignr $8, %xmm2, %xmm3, %xmm12 - vpalignr $8, %xmm6, %xmm7, %xmm13 - # rnd_0: 1 - 1 - addq 32(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm2, %xmm13, %xmm2 - # rnd_0: 6 - 7 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - vpaddq %xmm2, %xmm8, %xmm2 - # rnd_1: 0 - 0 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpsrlq $19, %xmm1, %xmm8 - vpsllq $45, %xmm1, %xmm9 - # rnd_1: 1 - 1 - addq 40(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm1, %xmm10 - vpsllq $3, %xmm1, %xmm11 - # rnd_1: 2 - 2 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm1, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpaddq %xmm2, %xmm8, %xmm2 - # msg_sched done: 4-7 - # msg_sched: 6-7 - # rnd_0: 0 - 0 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpalignr $8, %xmm3, %xmm4, %xmm12 - vpalignr $8, %xmm7, %xmm0, %xmm13 - # rnd_0: 1 - 1 - addq 48(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm3, %xmm13, %xmm3 - # rnd_0: 6 - 7 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpaddq %xmm3, %xmm8, %xmm3 - # rnd_1: 0 - 0 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $19, %xmm2, %xmm8 - vpsllq $45, %xmm2, %xmm9 - # rnd_1: 1 - 1 - addq 56(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm2, %xmm10 - vpsllq $3, %xmm2, %xmm11 - # rnd_1: 2 - 2 - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm2, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vpaddq %xmm3, %xmm8, %xmm3 - # msg_sched done: 6-9 - # msg_sched: 8-9 - # rnd_0: 0 - 0 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpalignr $8, %xmm4, %xmm5, %xmm12 - vpalignr $8, %xmm0, %xmm1, %xmm13 - # rnd_0: 1 - 1 - addq 64(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm4, %xmm13, %xmm4 - # rnd_0: 6 - 7 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - vpaddq %xmm4, %xmm8, %xmm4 - # rnd_1: 0 - 0 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpsrlq $19, %xmm3, %xmm8 - vpsllq $45, %xmm3, %xmm9 - # rnd_1: 1 - 1 - addq 72(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm3, %xmm10 - vpsllq $3, %xmm3, %xmm11 - # rnd_1: 2 - 2 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm3, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpaddq %xmm4, %xmm8, %xmm4 - # msg_sched done: 8-11 - # msg_sched: 10-11 - # rnd_0: 0 - 0 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpalignr $8, %xmm5, %xmm6, %xmm12 - vpalignr $8, %xmm1, %xmm2, %xmm13 - # rnd_0: 1 - 1 - addq 80(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm5, %xmm13, %xmm5 - # rnd_0: 6 - 7 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpaddq %xmm5, %xmm8, %xmm5 - # rnd_1: 0 - 0 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $19, %xmm4, %xmm8 - vpsllq $45, %xmm4, %xmm9 - # rnd_1: 1 - 1 - addq 88(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm4, %xmm10 - vpsllq $3, %xmm4, %xmm11 - # rnd_1: 2 - 2 - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm4, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vpaddq %xmm5, %xmm8, %xmm5 - # msg_sched done: 10-13 - # msg_sched: 12-13 - # rnd_0: 0 - 0 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpalignr $8, %xmm6, %xmm7, %xmm12 - vpalignr $8, %xmm2, %xmm3, %xmm13 - # rnd_0: 1 - 1 - addq 96(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm6, %xmm13, %xmm6 - # rnd_0: 6 - 7 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - vpaddq %xmm6, %xmm8, %xmm6 - # rnd_1: 0 - 0 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpsrlq $19, %xmm5, %xmm8 - vpsllq $45, %xmm5, %xmm9 - # rnd_1: 1 - 1 - addq 104(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm5, %xmm10 - vpsllq $3, %xmm5, %xmm11 - # rnd_1: 2 - 2 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm5, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpaddq %xmm6, %xmm8, %xmm6 - # msg_sched done: 12-15 - # msg_sched: 14-15 - # rnd_0: 0 - 0 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpalignr $8, %xmm7, %xmm0, %xmm12 - vpalignr $8, %xmm3, %xmm4, %xmm13 - # rnd_0: 1 - 1 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm7, %xmm13, %xmm7 - # rnd_0: 6 - 7 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpaddq %xmm7, %xmm8, %xmm7 - # rnd_1: 0 - 0 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $19, %xmm6, %xmm8 - vpsllq $45, %xmm6, %xmm9 - # rnd_1: 1 - 1 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm6, %xmm10 - vpsllq $3, %xmm6, %xmm11 - # rnd_1: 2 - 2 - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm6, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vpaddq %xmm7, %xmm8, %xmm7 - # msg_sched done: 14-17 - vpaddq (%rsi), %xmm0, %xmm8 - vpaddq 16(%rsi), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rsi), %xmm2, %xmm8 - vpaddq 48(%rsi), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rsi), %xmm4, %xmm8 - vpaddq 80(%rsi), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rsi), %xmm6, %xmm8 - vpaddq 112(%rsi), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - subl $0x01, 128(%rsp) - jne L_sha256_len_avx1_rorx_start - # rnd_all_2: 0-1 - # rnd_0: 0 - 7 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 2-3 - # rnd_0: 0 - 7 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 16(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 24(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 4-5 - # rnd_0: 0 - 7 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 32(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 40(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 6-7 - # rnd_0: 0 - 7 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 48(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 56(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - # rnd_all_2: 8-9 - # rnd_0: 0 - 7 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq 64(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 72(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 10-11 - # rnd_0: 0 - 7 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 80(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 88(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 12-13 - # rnd_0: 0 - 7 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 96(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 104(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 14-15 - # rnd_0: 0 - 7 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - addq %rdx, %r8 - addq %r8, (%rdi) - addq %r9, 8(%rdi) - addq %r10, 16(%rdi) - addq %r11, 24(%rdi) - addq %r12, 32(%rdi) - addq %r13, 40(%rdi) - addq %r14, 48(%rdi) - addq %r15, 56(%rdi) - xorq %rax, %rax - vzeroupper - addq $0x88, %rsp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX1_RORX,.-Transform_Sha512_AVX1_RORX -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX1_RORX_Len -.type Transform_Sha512_AVX1_RORX_Len,@function -.align 4 -Transform_Sha512_AVX1_RORX_Len: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX1_RORX_Len -.p2align 2 -_Transform_Sha512_AVX1_RORX_Len: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - pushq %rbp - movq %rsi, %rbp - subq $0x90, %rsp - movq 224(%rdi), %rsi - leaq L_avx1_rorx_sha512_k(%rip), %rcx - vmovdqa L_avx1_rorx_sha512_flip_mask(%rip), %xmm14 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - # Start of loop processing a block -L_sha512_len_avx1_rorx_begin: - vmovdqu (%rsi), %xmm0 - vmovdqu 16(%rsi), %xmm1 - vpshufb %xmm14, %xmm0, %xmm0 - vpshufb %xmm14, %xmm1, %xmm1 - vmovdqu 32(%rsi), %xmm2 - vmovdqu 48(%rsi), %xmm3 - vpshufb %xmm14, %xmm2, %xmm2 - vpshufb %xmm14, %xmm3, %xmm3 - vmovdqu 64(%rsi), %xmm4 - vmovdqu 80(%rsi), %xmm5 - vpshufb %xmm14, %xmm4, %xmm4 - vpshufb %xmm14, %xmm5, %xmm5 - vmovdqu 96(%rsi), %xmm6 - vmovdqu 112(%rsi), %xmm7 - vpshufb %xmm14, %xmm6, %xmm6 - vpshufb %xmm14, %xmm7, %xmm7 - movl $4, 128(%rsp) - movq %r9, %rbx - xorq %rdx, %rdx - xorq %r10, %rbx - vpaddq (%rcx), %xmm0, %xmm8 - vpaddq 16(%rcx), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rcx), %xmm2, %xmm8 - vpaddq 48(%rcx), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rcx), %xmm4, %xmm8 - vpaddq 80(%rcx), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rcx), %xmm6, %xmm8 - vpaddq 112(%rcx), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - # Start of 16 rounds -L_sha512_len_avx1_rorx_start: - addq $0x80, %rcx - movq %rcx, 136(%rsp) - # msg_sched: 0-1 - # rnd_0: 0 - 0 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpalignr $8, %xmm0, %xmm1, %xmm12 - vpalignr $8, %xmm4, %xmm5, %xmm13 - # rnd_0: 1 - 1 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm0, %xmm13, %xmm0 - # rnd_0: 6 - 7 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - vpaddq %xmm0, %xmm8, %xmm0 - # rnd_1: 0 - 0 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpsrlq $19, %xmm7, %xmm8 - vpsllq $45, %xmm7, %xmm9 - # rnd_1: 1 - 1 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm7, %xmm10 - vpsllq $3, %xmm7, %xmm11 - # rnd_1: 2 - 2 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm7, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpaddq %xmm0, %xmm8, %xmm0 - # msg_sched done: 0-3 - # msg_sched: 2-3 - # rnd_0: 0 - 0 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpalignr $8, %xmm1, %xmm2, %xmm12 - vpalignr $8, %xmm5, %xmm6, %xmm13 - # rnd_0: 1 - 1 - addq 16(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm1, %xmm13, %xmm1 - # rnd_0: 6 - 7 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpaddq %xmm1, %xmm8, %xmm1 - # rnd_1: 0 - 0 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $19, %xmm0, %xmm8 - vpsllq $45, %xmm0, %xmm9 - # rnd_1: 1 - 1 - addq 24(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm0, %xmm10 - vpsllq $3, %xmm0, %xmm11 - # rnd_1: 2 - 2 - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm0, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vpaddq %xmm1, %xmm8, %xmm1 - # msg_sched done: 2-5 - # msg_sched: 4-5 - # rnd_0: 0 - 0 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpalignr $8, %xmm2, %xmm3, %xmm12 - vpalignr $8, %xmm6, %xmm7, %xmm13 - # rnd_0: 1 - 1 - addq 32(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm2, %xmm13, %xmm2 - # rnd_0: 6 - 7 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - vpaddq %xmm2, %xmm8, %xmm2 - # rnd_1: 0 - 0 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpsrlq $19, %xmm1, %xmm8 - vpsllq $45, %xmm1, %xmm9 - # rnd_1: 1 - 1 - addq 40(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm1, %xmm10 - vpsllq $3, %xmm1, %xmm11 - # rnd_1: 2 - 2 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm1, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpaddq %xmm2, %xmm8, %xmm2 - # msg_sched done: 4-7 - # msg_sched: 6-7 - # rnd_0: 0 - 0 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpalignr $8, %xmm3, %xmm4, %xmm12 - vpalignr $8, %xmm7, %xmm0, %xmm13 - # rnd_0: 1 - 1 - addq 48(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm3, %xmm13, %xmm3 - # rnd_0: 6 - 7 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpaddq %xmm3, %xmm8, %xmm3 - # rnd_1: 0 - 0 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $19, %xmm2, %xmm8 - vpsllq $45, %xmm2, %xmm9 - # rnd_1: 1 - 1 - addq 56(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm2, %xmm10 - vpsllq $3, %xmm2, %xmm11 - # rnd_1: 2 - 2 - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm2, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vpaddq %xmm3, %xmm8, %xmm3 - # msg_sched done: 6-9 - # msg_sched: 8-9 - # rnd_0: 0 - 0 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpalignr $8, %xmm4, %xmm5, %xmm12 - vpalignr $8, %xmm0, %xmm1, %xmm13 - # rnd_0: 1 - 1 - addq 64(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm4, %xmm13, %xmm4 - # rnd_0: 6 - 7 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - vpaddq %xmm4, %xmm8, %xmm4 - # rnd_1: 0 - 0 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpsrlq $19, %xmm3, %xmm8 - vpsllq $45, %xmm3, %xmm9 - # rnd_1: 1 - 1 - addq 72(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm3, %xmm10 - vpsllq $3, %xmm3, %xmm11 - # rnd_1: 2 - 2 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm3, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpaddq %xmm4, %xmm8, %xmm4 - # msg_sched done: 8-11 - # msg_sched: 10-11 - # rnd_0: 0 - 0 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpalignr $8, %xmm5, %xmm6, %xmm12 - vpalignr $8, %xmm1, %xmm2, %xmm13 - # rnd_0: 1 - 1 - addq 80(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm5, %xmm13, %xmm5 - # rnd_0: 6 - 7 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpaddq %xmm5, %xmm8, %xmm5 - # rnd_1: 0 - 0 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $19, %xmm4, %xmm8 - vpsllq $45, %xmm4, %xmm9 - # rnd_1: 1 - 1 - addq 88(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm4, %xmm10 - vpsllq $3, %xmm4, %xmm11 - # rnd_1: 2 - 2 - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm4, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vpaddq %xmm5, %xmm8, %xmm5 - # msg_sched done: 10-13 - # msg_sched: 12-13 - # rnd_0: 0 - 0 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpalignr $8, %xmm6, %xmm7, %xmm12 - vpalignr $8, %xmm2, %xmm3, %xmm13 - # rnd_0: 1 - 1 - addq 96(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm6, %xmm13, %xmm6 - # rnd_0: 6 - 7 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - vpaddq %xmm6, %xmm8, %xmm6 - # rnd_1: 0 - 0 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpsrlq $19, %xmm5, %xmm8 - vpsllq $45, %xmm5, %xmm9 - # rnd_1: 1 - 1 - addq 104(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm5, %xmm10 - vpsllq $3, %xmm5, %xmm11 - # rnd_1: 2 - 2 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm5, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpaddq %xmm6, %xmm8, %xmm6 - # msg_sched done: 12-15 - # msg_sched: 14-15 - # rnd_0: 0 - 0 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpalignr $8, %xmm7, %xmm0, %xmm12 - vpalignr $8, %xmm3, %xmm4, %xmm13 - # rnd_0: 1 - 1 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpsrlq $0x01, %xmm12, %xmm8 - vpsllq $63, %xmm12, %xmm9 - # rnd_0: 2 - 2 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vpsrlq $8, %xmm12, %xmm10 - vpsllq $56, %xmm12, %xmm11 - # rnd_0: 3 - 3 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_0: 4 - 4 - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpsrlq $7, %xmm12, %xmm11 - vpxor %xmm10, %xmm8, %xmm8 - # rnd_0: 5 - 5 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpxor %xmm11, %xmm8, %xmm8 - vpaddq %xmm7, %xmm13, %xmm7 - # rnd_0: 6 - 7 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpaddq %xmm7, %xmm8, %xmm7 - # rnd_1: 0 - 0 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $19, %xmm6, %xmm8 - vpsllq $45, %xmm6, %xmm9 - # rnd_1: 1 - 1 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - vpsrlq $61, %xmm6, %xmm10 - vpsllq $3, %xmm6, %xmm11 - # rnd_1: 2 - 2 - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpor %xmm9, %xmm8, %xmm8 - vpor %xmm11, %xmm10, %xmm10 - # rnd_1: 3 - 4 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpxor %xmm10, %xmm8, %xmm8 - vpsrlq $6, %xmm6, %xmm11 - # rnd_1: 5 - 6 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - vpxor %xmm11, %xmm8, %xmm8 - # rnd_1: 7 - 7 - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vpaddq %xmm7, %xmm8, %xmm7 - # msg_sched done: 14-17 - movq 136(%rsp), %rcx - vpaddq (%rcx), %xmm0, %xmm8 - vpaddq 16(%rcx), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rcx), %xmm2, %xmm8 - vpaddq 48(%rcx), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rcx), %xmm4, %xmm8 - vpaddq 80(%rcx), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rcx), %xmm6, %xmm8 - vpaddq 112(%rcx), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - subl $0x01, 128(%rsp) - jne L_sha512_len_avx1_rorx_start - vpaddq (%rcx), %xmm0, %xmm8 - vpaddq 16(%rcx), %xmm1, %xmm9 - vmovdqu %xmm8, (%rsp) - vmovdqu %xmm9, 16(%rsp) - vpaddq 32(%rcx), %xmm2, %xmm8 - vpaddq 48(%rcx), %xmm3, %xmm9 - vmovdqu %xmm8, 32(%rsp) - vmovdqu %xmm9, 48(%rsp) - vpaddq 64(%rcx), %xmm4, %xmm8 - vpaddq 80(%rcx), %xmm5, %xmm9 - vmovdqu %xmm8, 64(%rsp) - vmovdqu %xmm9, 80(%rsp) - vpaddq 96(%rcx), %xmm6, %xmm8 - vpaddq 112(%rcx), %xmm7, %xmm9 - vmovdqu %xmm8, 96(%rsp) - vmovdqu %xmm9, 112(%rsp) - # rnd_all_2: 0-1 - # rnd_0: 0 - 7 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 2-3 - # rnd_0: 0 - 7 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 16(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 24(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 4-5 - # rnd_0: 0 - 7 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 32(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 40(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 6-7 - # rnd_0: 0 - 7 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 48(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 56(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - # rnd_all_2: 8-9 - # rnd_0: 0 - 7 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq 64(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 72(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - addq %r14, %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 10-11 - # rnd_0: 0 - 7 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 80(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 88(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - addq %r12, %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 12-13 - # rnd_0: 0 - 7 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 96(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 104(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - addq %r10, %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 14-15 - # rnd_0: 0 - 7 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - # rnd_1: 0 - 7 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - addq %r8, %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - addq %rdx, %r8 - addq (%rdi), %r8 - addq 8(%rdi), %r9 - addq 16(%rdi), %r10 - addq 24(%rdi), %r11 - addq 32(%rdi), %r12 - addq 40(%rdi), %r13 - addq 48(%rdi), %r14 - addq 56(%rdi), %r15 - leaq L_avx1_rorx_sha512_k(%rip), %rcx - addq $0x80, %rsi - subl $0x80, %ebp - movq %r8, (%rdi) - movq %r9, 8(%rdi) - movq %r10, 16(%rdi) - movq %r11, 24(%rdi) - movq %r12, 32(%rdi) - movq %r13, 40(%rdi) - movq %r14, 48(%rdi) - movq %r15, 56(%rdi) - jnz L_sha512_len_avx1_rorx_begin - xorq %rax, %rax - vzeroupper - addq $0x90, %rsp - popq %rbp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX1_RORX_Len,.-Transform_Sha512_AVX1_RORX_Len -#endif /* __APPLE__ */ -#endif /* HAVE_INTEL_AVX1 */ -#ifdef HAVE_INTEL_AVX2 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx2_sha512_k: -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx2_sha512_k_2: -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 8 -#else -.p2align 3 -#endif /* __APPLE__ */ -L_avx2_sha512_k_2_end: -.quad 1024+L_avx2_sha512_k_2 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 32 -#else -.p2align 5 -#endif /* __APPLE__ */ -L_avx2_sha512_flip_mask: -.quad 0x1020304050607, 0x8090a0b0c0d0e0f -.quad 0x1020304050607, 0x8090a0b0c0d0e0f -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX2 -.type Transform_Sha512_AVX2,@function -.align 4 -Transform_Sha512_AVX2: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX2 -.p2align 2 -_Transform_Sha512_AVX2: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - subq $0x88, %rsp - leaq 64(%rdi), %rax - vmovdqa L_avx2_sha512_flip_mask(%rip), %ymm15 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - vmovdqu (%rax), %ymm0 - vmovdqu 32(%rax), %ymm1 - vpshufb %ymm15, %ymm0, %ymm0 - vpshufb %ymm15, %ymm1, %ymm1 - vmovdqu 64(%rax), %ymm2 - vmovdqu 96(%rax), %ymm3 - vpshufb %ymm15, %ymm2, %ymm2 - vpshufb %ymm15, %ymm3, %ymm3 - movl $4, 128(%rsp) - leaq L_avx2_sha512_k(%rip), %rsi - movq %r9, %rbx - movq %r12, %rax - xorq %r10, %rbx - vpaddq (%rsi), %ymm0, %ymm8 - vpaddq 32(%rsi), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rsi), %ymm2, %ymm8 - vpaddq 96(%rsi), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - # Start of 16 rounds -L_sha256_avx2_start: - addq $0x80, %rsi - rorq $23, %rax - vpblendd $3, %ymm1, %ymm0, %ymm12 - vpblendd $3, %ymm3, %ymm2, %ymm13 - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - vpermq $57, %ymm12, %ymm12 - rorq $4, %rax - xorq %r14, %rcx - vpermq $57, %ymm13, %ymm13 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpsrlq $0x01, %ymm12, %ymm8 - addq %rax, %r15 - movq %r8, %rcx - vpsllq $63, %ymm12, %ymm9 - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $8, %ymm12, %ymm10 - xorq %r8, %rcx - xorq %r9, %rbx - vpsllq $56, %ymm12, %ymm11 - rorq $6, %rcx - addq %r15, %r11 - vpor %ymm9, %ymm8, %ymm8 - xorq %r8, %rcx - addq %rbx, %r15 - vpor %ymm11, %ymm10, %ymm10 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r15, %rbx - movq %r12, %rcx - vpxor %ymm10, %ymm8, %ymm8 - addq 8(%rsp), %r14 - xorq %r13, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r11, %rax - andq %r11, %rcx - vpaddq %ymm0, %ymm13, %ymm0 - rorq $4, %rax - xorq %r13, %rcx - vpaddq %ymm0, %ymm8, %ymm0 - xorq %r11, %rax - addq %rcx, %r14 - vperm2I128 $0x81, %ymm3, %ymm3, %ymm14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - vpsrlq $19, %ymm14, %ymm8 - xorq %r15, %rcx - xorq %r8, %rdx - vpsllq $45, %ymm14, %ymm9 - rorq $6, %rcx - addq %r14, %r10 - vpsrlq $61, %ymm14, %ymm10 - xorq %r15, %rcx - addq %rdx, %r14 - vpsllq $3, %ymm14, %ymm11 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - vpor %ymm9, %ymm8, %ymm8 - movq %r14, %rdx - movq %r11, %rcx - addq 16(%rsp), %r13 - xorq %r12, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r10, %rax - andq %r10, %rcx - vpxor %ymm10, %ymm8, %ymm8 - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $6, %ymm14, %ymm11 - xorq %r10, %rax - addq %rcx, %r13 - vpxor %ymm11, %ymm8, %ymm8 - rorq $14, %rax - xorq %r15, %rdx - vpaddq %ymm0, %ymm8, %ymm0 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vperm2I128 $8, %ymm0, %ymm0, %ymm14 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpsrlq $19, %ymm14, %ymm8 - xorq %r14, %rcx - addq %rbx, %r13 - vpsllq $45, %ymm14, %ymm9 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - vpsrlq $61, %ymm14, %ymm10 - movq %r13, %rbx - movq %r10, %rcx - addq 24(%rsp), %r12 - xorq %r11, %rcx - vpsllq $3, %ymm14, %ymm11 - xorq %r9, %rax - andq %r9, %rcx - vpor %ymm9, %ymm8, %ymm8 - rorq $4, %rax - xorq %r11, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r9, %rax - addq %rcx, %r12 - vpxor %ymm10, %ymm8, %ymm8 - rorq $14, %rax - xorq %r14, %rbx - vpsrlq $6, %ymm14, %ymm11 - addq %rax, %r12 - movq %r13, %rcx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - rorq $5, %rcx - vpaddq %ymm0, %ymm8, %ymm0 - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - vpblendd $3, %ymm2, %ymm1, %ymm12 - vpblendd $3, %ymm0, %ymm3, %ymm13 - movq %r12, %rdx - movq %r9, %rcx - addq 32(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - vpermq $57, %ymm12, %ymm12 - rorq $4, %rax - xorq %r10, %rcx - vpermq $57, %ymm13, %ymm13 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpsrlq $0x01, %ymm12, %ymm8 - addq %rax, %r11 - movq %r12, %rcx - vpsllq $63, %ymm12, %ymm9 - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $8, %ymm12, %ymm10 - xorq %r12, %rcx - xorq %r13, %rbx - vpsllq $56, %ymm12, %ymm11 - rorq $6, %rcx - addq %r11, %r15 - vpor %ymm9, %ymm8, %ymm8 - xorq %r12, %rcx - addq %rbx, %r11 - vpor %ymm11, %ymm10, %ymm10 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r11, %rbx - movq %r8, %rcx - vpxor %ymm10, %ymm8, %ymm8 - addq 40(%rsp), %r10 - xorq %r9, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r15, %rax - andq %r15, %rcx - vpaddq %ymm1, %ymm13, %ymm1 - rorq $4, %rax - xorq %r9, %rcx - vpaddq %ymm1, %ymm8, %ymm1 - xorq %r15, %rax - addq %rcx, %r10 - vperm2I128 $0x81, %ymm0, %ymm0, %ymm14 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - vpsrlq $19, %ymm14, %ymm8 - xorq %r11, %rcx - xorq %r12, %rdx - vpsllq $45, %ymm14, %ymm9 - rorq $6, %rcx - addq %r10, %r14 - vpsrlq $61, %ymm14, %ymm10 - xorq %r11, %rcx - addq %rdx, %r10 - vpsllq $3, %ymm14, %ymm11 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - vpor %ymm9, %ymm8, %ymm8 - movq %r10, %rdx - movq %r15, %rcx - addq 48(%rsp), %r9 - xorq %r8, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r14, %rax - andq %r14, %rcx - vpxor %ymm10, %ymm8, %ymm8 - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $6, %ymm14, %ymm11 - xorq %r14, %rax - addq %rcx, %r9 - vpxor %ymm11, %ymm8, %ymm8 - rorq $14, %rax - xorq %r11, %rdx - vpaddq %ymm1, %ymm8, %ymm1 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vperm2I128 $8, %ymm1, %ymm1, %ymm14 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpsrlq $19, %ymm14, %ymm8 - xorq %r10, %rcx - addq %rbx, %r9 - vpsllq $45, %ymm14, %ymm9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - vpsrlq $61, %ymm14, %ymm10 - movq %r9, %rbx - movq %r14, %rcx - addq 56(%rsp), %r8 - xorq %r15, %rcx - vpsllq $3, %ymm14, %ymm11 - xorq %r13, %rax - andq %r13, %rcx - vpor %ymm9, %ymm8, %ymm8 - rorq $4, %rax - xorq %r15, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r13, %rax - addq %rcx, %r8 - vpxor %ymm10, %ymm8, %ymm8 - rorq $14, %rax - xorq %r10, %rbx - vpsrlq $6, %ymm14, %ymm11 - addq %rax, %r8 - movq %r9, %rcx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - rorq $5, %rcx - vpaddq %ymm1, %ymm8, %ymm1 - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - rorq $23, %rax - vpblendd $3, %ymm3, %ymm2, %ymm12 - vpblendd $3, %ymm1, %ymm0, %ymm13 - movq %r8, %rdx - movq %r13, %rcx - addq 64(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - vpermq $57, %ymm12, %ymm12 - rorq $4, %rax - xorq %r14, %rcx - vpermq $57, %ymm13, %ymm13 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpsrlq $0x01, %ymm12, %ymm8 - addq %rax, %r15 - movq %r8, %rcx - vpsllq $63, %ymm12, %ymm9 - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $8, %ymm12, %ymm10 - xorq %r8, %rcx - xorq %r9, %rbx - vpsllq $56, %ymm12, %ymm11 - rorq $6, %rcx - addq %r15, %r11 - vpor %ymm9, %ymm8, %ymm8 - xorq %r8, %rcx - addq %rbx, %r15 - vpor %ymm11, %ymm10, %ymm10 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r15, %rbx - movq %r12, %rcx - vpxor %ymm10, %ymm8, %ymm8 - addq 72(%rsp), %r14 - xorq %r13, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r11, %rax - andq %r11, %rcx - vpaddq %ymm2, %ymm13, %ymm2 - rorq $4, %rax - xorq %r13, %rcx - vpaddq %ymm2, %ymm8, %ymm2 - xorq %r11, %rax - addq %rcx, %r14 - vperm2I128 $0x81, %ymm1, %ymm1, %ymm14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - vpsrlq $19, %ymm14, %ymm8 - xorq %r15, %rcx - xorq %r8, %rdx - vpsllq $45, %ymm14, %ymm9 - rorq $6, %rcx - addq %r14, %r10 - vpsrlq $61, %ymm14, %ymm10 - xorq %r15, %rcx - addq %rdx, %r14 - vpsllq $3, %ymm14, %ymm11 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - vpor %ymm9, %ymm8, %ymm8 - movq %r14, %rdx - movq %r11, %rcx - addq 80(%rsp), %r13 - xorq %r12, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r10, %rax - andq %r10, %rcx - vpxor %ymm10, %ymm8, %ymm8 - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $6, %ymm14, %ymm11 - xorq %r10, %rax - addq %rcx, %r13 - vpxor %ymm11, %ymm8, %ymm8 - rorq $14, %rax - xorq %r15, %rdx - vpaddq %ymm2, %ymm8, %ymm2 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vperm2I128 $8, %ymm2, %ymm2, %ymm14 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpsrlq $19, %ymm14, %ymm8 - xorq %r14, %rcx - addq %rbx, %r13 - vpsllq $45, %ymm14, %ymm9 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - vpsrlq $61, %ymm14, %ymm10 - movq %r13, %rbx - movq %r10, %rcx - addq 88(%rsp), %r12 - xorq %r11, %rcx - vpsllq $3, %ymm14, %ymm11 - xorq %r9, %rax - andq %r9, %rcx - vpor %ymm9, %ymm8, %ymm8 - rorq $4, %rax - xorq %r11, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r9, %rax - addq %rcx, %r12 - vpxor %ymm10, %ymm8, %ymm8 - rorq $14, %rax - xorq %r14, %rbx - vpsrlq $6, %ymm14, %ymm11 - addq %rax, %r12 - movq %r13, %rcx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - rorq $5, %rcx - vpaddq %ymm2, %ymm8, %ymm2 - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - vpblendd $3, %ymm0, %ymm3, %ymm12 - vpblendd $3, %ymm2, %ymm1, %ymm13 - movq %r12, %rdx - movq %r9, %rcx - addq 96(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - vpermq $57, %ymm12, %ymm12 - rorq $4, %rax - xorq %r10, %rcx - vpermq $57, %ymm13, %ymm13 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpsrlq $0x01, %ymm12, %ymm8 - addq %rax, %r11 - movq %r12, %rcx - vpsllq $63, %ymm12, %ymm9 - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $8, %ymm12, %ymm10 - xorq %r12, %rcx - xorq %r13, %rbx - vpsllq $56, %ymm12, %ymm11 - rorq $6, %rcx - addq %r11, %r15 - vpor %ymm9, %ymm8, %ymm8 - xorq %r12, %rcx - addq %rbx, %r11 - vpor %ymm11, %ymm10, %ymm10 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r11, %rbx - movq %r8, %rcx - vpxor %ymm10, %ymm8, %ymm8 - addq 104(%rsp), %r10 - xorq %r9, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r15, %rax - andq %r15, %rcx - vpaddq %ymm3, %ymm13, %ymm3 - rorq $4, %rax - xorq %r9, %rcx - vpaddq %ymm3, %ymm8, %ymm3 - xorq %r15, %rax - addq %rcx, %r10 - vperm2I128 $0x81, %ymm2, %ymm2, %ymm14 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - vpsrlq $19, %ymm14, %ymm8 - xorq %r11, %rcx - xorq %r12, %rdx - vpsllq $45, %ymm14, %ymm9 - rorq $6, %rcx - addq %r10, %r14 - vpsrlq $61, %ymm14, %ymm10 - xorq %r11, %rcx - addq %rdx, %r10 - vpsllq $3, %ymm14, %ymm11 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - vpor %ymm9, %ymm8, %ymm8 - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r14, %rax - andq %r14, %rcx - vpxor %ymm10, %ymm8, %ymm8 - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $6, %ymm14, %ymm11 - xorq %r14, %rax - addq %rcx, %r9 - vpxor %ymm11, %ymm8, %ymm8 - rorq $14, %rax - xorq %r11, %rdx - vpaddq %ymm3, %ymm8, %ymm3 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vperm2I128 $8, %ymm3, %ymm3, %ymm14 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpsrlq $19, %ymm14, %ymm8 - xorq %r10, %rcx - addq %rbx, %r9 - vpsllq $45, %ymm14, %ymm9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - vpsrlq $61, %ymm14, %ymm10 - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - vpsllq $3, %ymm14, %ymm11 - xorq %r13, %rax - andq %r13, %rcx - vpor %ymm9, %ymm8, %ymm8 - rorq $4, %rax - xorq %r15, %rcx - vpor %ymm11, %ymm10, %ymm10 - xorq %r13, %rax - addq %rcx, %r8 - vpxor %ymm10, %ymm8, %ymm8 - rorq $14, %rax - xorq %r10, %rbx - vpsrlq $6, %ymm14, %ymm11 - addq %rax, %r8 - movq %r9, %rcx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - rorq $5, %rcx - vpaddq %ymm3, %ymm8, %ymm3 - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq (%rsi), %ymm0, %ymm8 - vpaddq 32(%rsi), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rsi), %ymm2, %ymm8 - vpaddq 96(%rsi), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - subl $0x01, 128(%rsp) - jne L_sha256_avx2_start - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 16(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 24(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 32(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 40(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 48(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 56(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq 64(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 72(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 80(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 88(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 96(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 104(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - addq %r8, (%rdi) - addq %r9, 8(%rdi) - addq %r10, 16(%rdi) - addq %r11, 24(%rdi) - addq %r12, 32(%rdi) - addq %r13, 40(%rdi) - addq %r14, 48(%rdi) - addq %r15, 56(%rdi) - xorq %rax, %rax - vzeroupper - addq $0x88, %rsp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX2,.-Transform_Sha512_AVX2 -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX2_Len -.type Transform_Sha512_AVX2_Len,@function -.align 4 -Transform_Sha512_AVX2_Len: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX2_Len -.p2align 2 -_Transform_Sha512_AVX2_Len: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - pushq %rbp - movq %rsi, %rbp - testb $0x80, %bpl - je L_sha512_len_avx2_block - movq 224(%rdi), %rcx - vmovdqu (%rcx), %ymm0 - vmovdqu 32(%rcx), %ymm1 - vmovdqu 64(%rcx), %ymm2 - vmovdqu 96(%rcx), %ymm3 - vmovups %ymm0, 64(%rdi) - vmovups %ymm1, 96(%rdi) - vmovups %ymm2, 128(%rdi) - vmovups %ymm3, 160(%rdi) -#ifndef __APPLE__ - call Transform_Sha512_AVX2@plt -#else - call _Transform_Sha512_AVX2 -#endif /* __APPLE__ */ - addq $0x80, 224(%rdi) - subl $0x80, %ebp - jz L_sha512_len_avx2_done -L_sha512_len_avx2_block: - movq 224(%rdi), %rcx - vmovdqa L_avx2_sha512_flip_mask(%rip), %ymm15 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - # Start of loop processing two blocks -L_sha512_len_avx2_begin: - subq $0x540, %rsp - leaq L_avx2_sha512_k_2(%rip), %rsi - movq %r9, %rbx - movq %r12, %rax - vmovdqu (%rcx), %xmm0 - vmovdqu 16(%rcx), %xmm1 - vinserti128 $0x01, 128(%rcx), %ymm0, %ymm0 - vinserti128 $0x01, 144(%rcx), %ymm1, %ymm1 - vpshufb %ymm15, %ymm0, %ymm0 - vpshufb %ymm15, %ymm1, %ymm1 - vmovdqu 32(%rcx), %xmm2 - vmovdqu 48(%rcx), %xmm3 - vinserti128 $0x01, 160(%rcx), %ymm2, %ymm2 - vinserti128 $0x01, 176(%rcx), %ymm3, %ymm3 - vpshufb %ymm15, %ymm2, %ymm2 - vpshufb %ymm15, %ymm3, %ymm3 - vmovdqu 64(%rcx), %xmm4 - vmovdqu 80(%rcx), %xmm5 - vinserti128 $0x01, 192(%rcx), %ymm4, %ymm4 - vinserti128 $0x01, 208(%rcx), %ymm5, %ymm5 - vpshufb %ymm15, %ymm4, %ymm4 - vpshufb %ymm15, %ymm5, %ymm5 - vmovdqu 96(%rcx), %xmm6 - vmovdqu 112(%rcx), %xmm7 - vinserti128 $0x01, 224(%rcx), %ymm6, %ymm6 - vinserti128 $0x01, 240(%rcx), %ymm7, %ymm7 - vpshufb %ymm15, %ymm6, %ymm6 - vpshufb %ymm15, %ymm7, %ymm7 - xorq %r10, %rbx - # Start of 16 rounds -L_sha512_len_avx2_start: - vpaddq (%rsi), %ymm0, %ymm8 - vpaddq 32(%rsi), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rsi), %ymm2, %ymm8 - vpaddq 96(%rsi), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - vpaddq 128(%rsi), %ymm4, %ymm8 - vpaddq 160(%rsi), %ymm5, %ymm9 - vmovdqu %ymm8, 128(%rsp) - vmovdqu %ymm9, 160(%rsp) - vpaddq 192(%rsi), %ymm6, %ymm8 - vpaddq 224(%rsi), %ymm7, %ymm9 - vmovdqu %ymm8, 192(%rsp) - vmovdqu %ymm9, 224(%rsp) - # msg_sched: 0-1 - rorq $23, %rax - vpalignr $8, %ymm0, %ymm1, %ymm12 - vpalignr $8, %ymm4, %ymm5, %ymm13 - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm0, %ymm13, %ymm0 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - vpaddq %ymm0, %ymm8, %ymm0 - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - vpsrlq $19, %ymm7, %ymm8 - vpsllq $45, %ymm7, %ymm9 - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - vpsrlq $61, %ymm7, %ymm10 - vpsllq $3, %ymm7, %ymm11 - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm7, %ymm11 - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - vpaddq %ymm0, %ymm8, %ymm0 - # msg_sched done: 0-3 - # msg_sched: 4-5 - rorq $23, %rax - vpalignr $8, %ymm1, %ymm2, %ymm12 - vpalignr $8, %ymm5, %ymm6, %ymm13 - movq %r14, %rdx - movq %r11, %rcx - addq 32(%rsp), %r13 - xorq %r12, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm1, %ymm13, %ymm1 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - vpaddq %ymm1, %ymm8, %ymm1 - movq %r13, %rbx - movq %r10, %rcx - addq 40(%rsp), %r12 - xorq %r11, %rcx - vpsrlq $19, %ymm0, %ymm8 - vpsllq $45, %ymm0, %ymm9 - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - vpsrlq $61, %ymm0, %ymm10 - vpsllq $3, %ymm0, %ymm11 - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm0, %ymm11 - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - vpaddq %ymm1, %ymm8, %ymm1 - # msg_sched done: 4-7 - # msg_sched: 8-9 - rorq $23, %rax - vpalignr $8, %ymm2, %ymm3, %ymm12 - vpalignr $8, %ymm6, %ymm7, %ymm13 - movq %r12, %rdx - movq %r9, %rcx - addq 64(%rsp), %r11 - xorq %r10, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm2, %ymm13, %ymm2 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - vpaddq %ymm2, %ymm8, %ymm2 - movq %r11, %rbx - movq %r8, %rcx - addq 72(%rsp), %r10 - xorq %r9, %rcx - vpsrlq $19, %ymm1, %ymm8 - vpsllq $45, %ymm1, %ymm9 - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - vpsrlq $61, %ymm1, %ymm10 - vpsllq $3, %ymm1, %ymm11 - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm1, %ymm11 - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - vpaddq %ymm2, %ymm8, %ymm2 - # msg_sched done: 8-11 - # msg_sched: 12-13 - rorq $23, %rax - vpalignr $8, %ymm3, %ymm4, %ymm12 - vpalignr $8, %ymm7, %ymm0, %ymm13 - movq %r10, %rdx - movq %r15, %rcx - addq 96(%rsp), %r9 - xorq %r8, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm3, %ymm13, %ymm3 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - vpaddq %ymm3, %ymm8, %ymm3 - movq %r9, %rbx - movq %r14, %rcx - addq 104(%rsp), %r8 - xorq %r15, %rcx - vpsrlq $19, %ymm2, %ymm8 - vpsllq $45, %ymm2, %ymm9 - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - vpsrlq $61, %ymm2, %ymm10 - vpsllq $3, %ymm2, %ymm11 - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm2, %ymm11 - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq %ymm3, %ymm8, %ymm3 - # msg_sched done: 12-15 - # msg_sched: 16-17 - rorq $23, %rax - vpalignr $8, %ymm4, %ymm5, %ymm12 - vpalignr $8, %ymm0, %ymm1, %ymm13 - movq %r8, %rdx - movq %r13, %rcx - addq 128(%rsp), %r15 - xorq %r14, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm4, %ymm13, %ymm4 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - vpaddq %ymm4, %ymm8, %ymm4 - movq %r15, %rbx - movq %r12, %rcx - addq 136(%rsp), %r14 - xorq %r13, %rcx - vpsrlq $19, %ymm3, %ymm8 - vpsllq $45, %ymm3, %ymm9 - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - vpsrlq $61, %ymm3, %ymm10 - vpsllq $3, %ymm3, %ymm11 - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm3, %ymm11 - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - vpaddq %ymm4, %ymm8, %ymm4 - # msg_sched done: 16-19 - # msg_sched: 20-21 - rorq $23, %rax - vpalignr $8, %ymm5, %ymm6, %ymm12 - vpalignr $8, %ymm1, %ymm2, %ymm13 - movq %r14, %rdx - movq %r11, %rcx - addq 160(%rsp), %r13 - xorq %r12, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm5, %ymm13, %ymm5 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - vpaddq %ymm5, %ymm8, %ymm5 - movq %r13, %rbx - movq %r10, %rcx - addq 168(%rsp), %r12 - xorq %r11, %rcx - vpsrlq $19, %ymm4, %ymm8 - vpsllq $45, %ymm4, %ymm9 - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - vpsrlq $61, %ymm4, %ymm10 - vpsllq $3, %ymm4, %ymm11 - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm4, %ymm11 - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - vpaddq %ymm5, %ymm8, %ymm5 - # msg_sched done: 20-23 - # msg_sched: 24-25 - rorq $23, %rax - vpalignr $8, %ymm6, %ymm7, %ymm12 - vpalignr $8, %ymm2, %ymm3, %ymm13 - movq %r12, %rdx - movq %r9, %rcx - addq 192(%rsp), %r11 - xorq %r10, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm6, %ymm13, %ymm6 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - vpaddq %ymm6, %ymm8, %ymm6 - movq %r11, %rbx - movq %r8, %rcx - addq 200(%rsp), %r10 - xorq %r9, %rcx - vpsrlq $19, %ymm5, %ymm8 - vpsllq $45, %ymm5, %ymm9 - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - vpsrlq $61, %ymm5, %ymm10 - vpsllq $3, %ymm5, %ymm11 - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm5, %ymm11 - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - vpaddq %ymm6, %ymm8, %ymm6 - # msg_sched done: 24-27 - # msg_sched: 28-29 - rorq $23, %rax - vpalignr $8, %ymm7, %ymm0, %ymm12 - vpalignr $8, %ymm3, %ymm4, %ymm13 - movq %r10, %rdx - movq %r15, %rcx - addq 224(%rsp), %r9 - xorq %r8, %rcx - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm7, %ymm13, %ymm7 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - vpaddq %ymm7, %ymm8, %ymm7 - movq %r9, %rbx - movq %r14, %rcx - addq 232(%rsp), %r8 - xorq %r15, %rcx - vpsrlq $19, %ymm6, %ymm8 - vpsllq $45, %ymm6, %ymm9 - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - vpsrlq $61, %ymm6, %ymm10 - vpsllq $3, %ymm6, %ymm11 - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm6, %ymm11 - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - vpxor %ymm11, %ymm8, %ymm8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - vpaddq %ymm7, %ymm8, %ymm7 - # msg_sched done: 28-31 - addq $0x100, %rsi - addq $0x100, %rsp - cmpq L_avx2_sha512_k_2_end(%rip), %rsi - jne L_sha512_len_avx2_start - vpaddq (%rsi), %ymm0, %ymm8 - vpaddq 32(%rsi), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rsi), %ymm2, %ymm8 - vpaddq 96(%rsi), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - vpaddq 128(%rsi), %ymm4, %ymm8 - vpaddq 160(%rsi), %ymm5, %ymm9 - vmovdqu %ymm8, 128(%rsp) - vmovdqu %ymm9, 160(%rsp) - vpaddq 192(%rsi), %ymm6, %ymm8 - vpaddq 224(%rsi), %ymm7, %ymm9 - vmovdqu %ymm8, 192(%rsp) - vmovdqu %ymm9, 224(%rsp) - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq (%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 8(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 32(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 40(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 64(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 72(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 96(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 104(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq 128(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 136(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 160(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 168(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 192(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 200(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 224(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 232(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - subq $0x400, %rsp - addq (%rdi), %r8 - addq 8(%rdi), %r9 - addq 16(%rdi), %r10 - addq 24(%rdi), %r11 - addq 32(%rdi), %r12 - addq 40(%rdi), %r13 - addq 48(%rdi), %r14 - addq 56(%rdi), %r15 - movq %r8, (%rdi) - movq %r9, 8(%rdi) - movq %r10, 16(%rdi) - movq %r11, 24(%rdi) - movq %r12, 32(%rdi) - movq %r13, 40(%rdi) - movq %r14, 48(%rdi) - movq %r15, 56(%rdi) - movq %r9, %rbx - movq %r12, %rax - xorq %r10, %rbx - movq $5, %rsi -L_sha512_len_avx2_tail: - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq 16(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 24(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 48(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 56(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 80(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 88(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 112(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 120(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - rorq $23, %rax - movq %r8, %rdx - movq %r13, %rcx - addq 144(%rsp), %r15 - xorq %r14, %rcx - xorq %r12, %rax - andq %r12, %rcx - rorq $4, %rax - xorq %r14, %rcx - xorq %r12, %rax - addq %rcx, %r15 - rorq $14, %rax - xorq %r9, %rdx - addq %rax, %r15 - movq %r8, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r8, %rcx - xorq %r9, %rbx - rorq $6, %rcx - addq %r15, %r11 - xorq %r8, %rcx - addq %rbx, %r15 - rorq $28, %rcx - movq %r11, %rax - addq %rcx, %r15 - rorq $23, %rax - movq %r15, %rbx - movq %r12, %rcx - addq 152(%rsp), %r14 - xorq %r13, %rcx - xorq %r11, %rax - andq %r11, %rcx - rorq $4, %rax - xorq %r13, %rcx - xorq %r11, %rax - addq %rcx, %r14 - rorq $14, %rax - xorq %r8, %rbx - addq %rax, %r14 - movq %r15, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r15, %rcx - xorq %r8, %rdx - rorq $6, %rcx - addq %r14, %r10 - xorq %r15, %rcx - addq %rdx, %r14 - rorq $28, %rcx - movq %r10, %rax - addq %rcx, %r14 - rorq $23, %rax - movq %r14, %rdx - movq %r11, %rcx - addq 176(%rsp), %r13 - xorq %r12, %rcx - xorq %r10, %rax - andq %r10, %rcx - rorq $4, %rax - xorq %r12, %rcx - xorq %r10, %rax - addq %rcx, %r13 - rorq $14, %rax - xorq %r15, %rdx - addq %rax, %r13 - movq %r14, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r14, %rcx - xorq %r15, %rbx - rorq $6, %rcx - addq %r13, %r9 - xorq %r14, %rcx - addq %rbx, %r13 - rorq $28, %rcx - movq %r9, %rax - addq %rcx, %r13 - rorq $23, %rax - movq %r13, %rbx - movq %r10, %rcx - addq 184(%rsp), %r12 - xorq %r11, %rcx - xorq %r9, %rax - andq %r9, %rcx - rorq $4, %rax - xorq %r11, %rcx - xorq %r9, %rax - addq %rcx, %r12 - rorq $14, %rax - xorq %r14, %rbx - addq %rax, %r12 - movq %r13, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r13, %rcx - xorq %r14, %rdx - rorq $6, %rcx - addq %r12, %r8 - xorq %r13, %rcx - addq %rdx, %r12 - rorq $28, %rcx - movq %r8, %rax - addq %rcx, %r12 - rorq $23, %rax - movq %r12, %rdx - movq %r9, %rcx - addq 208(%rsp), %r11 - xorq %r10, %rcx - xorq %r8, %rax - andq %r8, %rcx - rorq $4, %rax - xorq %r10, %rcx - xorq %r8, %rax - addq %rcx, %r11 - rorq $14, %rax - xorq %r13, %rdx - addq %rax, %r11 - movq %r12, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r12, %rcx - xorq %r13, %rbx - rorq $6, %rcx - addq %r11, %r15 - xorq %r12, %rcx - addq %rbx, %r11 - rorq $28, %rcx - movq %r15, %rax - addq %rcx, %r11 - rorq $23, %rax - movq %r11, %rbx - movq %r8, %rcx - addq 216(%rsp), %r10 - xorq %r9, %rcx - xorq %r15, %rax - andq %r15, %rcx - rorq $4, %rax - xorq %r9, %rcx - xorq %r15, %rax - addq %rcx, %r10 - rorq $14, %rax - xorq %r12, %rbx - addq %rax, %r10 - movq %r11, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r11, %rcx - xorq %r12, %rdx - rorq $6, %rcx - addq %r10, %r14 - xorq %r11, %rcx - addq %rdx, %r10 - rorq $28, %rcx - movq %r14, %rax - addq %rcx, %r10 - rorq $23, %rax - movq %r10, %rdx - movq %r15, %rcx - addq 240(%rsp), %r9 - xorq %r8, %rcx - xorq %r14, %rax - andq %r14, %rcx - rorq $4, %rax - xorq %r8, %rcx - xorq %r14, %rax - addq %rcx, %r9 - rorq $14, %rax - xorq %r11, %rdx - addq %rax, %r9 - movq %r10, %rcx - andq %rdx, %rbx - rorq $5, %rcx - xorq %r10, %rcx - xorq %r11, %rbx - rorq $6, %rcx - addq %r9, %r13 - xorq %r10, %rcx - addq %rbx, %r9 - rorq $28, %rcx - movq %r13, %rax - addq %rcx, %r9 - rorq $23, %rax - movq %r9, %rbx - movq %r14, %rcx - addq 248(%rsp), %r8 - xorq %r15, %rcx - xorq %r13, %rax - andq %r13, %rcx - rorq $4, %rax - xorq %r15, %rcx - xorq %r13, %rax - addq %rcx, %r8 - rorq $14, %rax - xorq %r10, %rbx - addq %rax, %r8 - movq %r9, %rcx - andq %rbx, %rdx - rorq $5, %rcx - xorq %r9, %rcx - xorq %r10, %rdx - rorq $6, %rcx - addq %r8, %r12 - xorq %r9, %rcx - addq %rdx, %r8 - rorq $28, %rcx - movq %r12, %rax - addq %rcx, %r8 - addq $0x100, %rsp - subq $0x01, %rsi - jnz L_sha512_len_avx2_tail - addq (%rdi), %r8 - addq 8(%rdi), %r9 - addq 16(%rdi), %r10 - addq 24(%rdi), %r11 - addq 32(%rdi), %r12 - addq 40(%rdi), %r13 - addq 48(%rdi), %r14 - addq 56(%rdi), %r15 - movq 224(%rdi), %rcx - addq $0x40, %rsp - addq $0x100, %rcx - subl $0x100, %ebp - movq %rcx, 224(%rdi) - movq %r8, (%rdi) - movq %r9, 8(%rdi) - movq %r10, 16(%rdi) - movq %r11, 24(%rdi) - movq %r12, 32(%rdi) - movq %r13, 40(%rdi) - movq %r14, 48(%rdi) - movq %r15, 56(%rdi) - jnz L_sha512_len_avx2_begin -L_sha512_len_avx2_done: - xorq %rax, %rax - vzeroupper - popq %rbp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX2_Len,.-Transform_Sha512_AVX2_Len -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx2_rorx_sha512_k: -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 16 -#else -.p2align 4 -#endif /* __APPLE__ */ -L_avx2_rorx_sha512_k_2: -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0x428a2f98d728ae22,0x7137449123ef65cd -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x3956c25bf348b538,0x59f111f1b605d019 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0xd807aa98a3030242,0x12835b0145706fbe -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0x9bdc06a725c71235,0xc19bf174cf692694 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0xfc19dc68b8cd5b5,0x240ca1cc77ac9c65 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0x983e5152ee66dfab,0xa831c66d2db43210 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x6ca6351e003826f,0x142929670a0e6e70 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0x81c2c92e47edaee6,0x92722c851482353b -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xd192e819d6ef5218,0xd69906245565a910 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0xf40e35855771202a,0x106aa07032bbd1b8 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0x90befffa23631e28,0xa4506cebde82bde9 -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xca273eceea26619c,0xd186b8c721c0c207 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x6f067aa72176fba,0xa637dc5a2c898a6 -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x113f9804bef90dae,0x1b710b35131c471b -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x28db77f523047d84,0x32caab7b40c72493 -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 8 -#else -.p2align 3 -#endif /* __APPLE__ */ -L_avx2_rorx_sha512_k_2_end: -.quad 1024+L_avx2_rorx_sha512_k_2 -#ifndef __APPLE__ -.data -#else -.section __DATA,__data -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.align 32 -#else -.p2align 5 -#endif /* __APPLE__ */ -L_avx2_rorx_sha512_flip_mask: -.quad 0x1020304050607, 0x8090a0b0c0d0e0f -.quad 0x1020304050607, 0x8090a0b0c0d0e0f -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX2_RORX -.type Transform_Sha512_AVX2_RORX,@function -.align 4 -Transform_Sha512_AVX2_RORX: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX2_RORX -.p2align 2 -_Transform_Sha512_AVX2_RORX: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - subq $0x88, %rsp - leaq 64(%rdi), %rcx - vmovdqa L_avx2_rorx_sha512_flip_mask(%rip), %ymm15 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - vmovdqu (%rcx), %ymm0 - vmovdqu 32(%rcx), %ymm1 - vpshufb %ymm15, %ymm0, %ymm0 - vpshufb %ymm15, %ymm1, %ymm1 - vmovdqu 64(%rcx), %ymm2 - vmovdqu 96(%rcx), %ymm3 - vpshufb %ymm15, %ymm2, %ymm2 - vpshufb %ymm15, %ymm3, %ymm3 - movl $4, 128(%rsp) - leaq L_avx2_rorx_sha512_k(%rip), %rsi - movq %r9, %rbx - xorq %rdx, %rdx - xorq %r10, %rbx - # set_w_k: 0 - vpaddq (%rsi), %ymm0, %ymm8 - vpaddq 32(%rsi), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rsi), %ymm2, %ymm8 - vpaddq 96(%rsi), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - # Start of 16 rounds -L_sha256_len_avx2_rorx_start: - addq $0x80, %rsi - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpblendd $3, %ymm1, %ymm0, %ymm12 - vpblendd $3, %ymm3, %ymm2, %ymm13 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpermq $57, %ymm12, %ymm12 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpermq $57, %ymm13, %ymm13 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - vperm2I128 $0x81, %ymm3, %ymm3, %ymm14 - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpxor %ymm10, %ymm8, %ymm8 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpaddq %ymm0, %ymm13, %ymm0 - vpaddq %ymm0, %ymm8, %ymm0 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - vpor %ymm11, %ymm10, %ymm10 - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - vpxor %ymm10, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpsrlq $6, %ymm14, %ymm11 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpxor %ymm11, %ymm8, %ymm8 - addq 16(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpaddq %ymm0, %ymm8, %ymm0 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vperm2I128 $8, %ymm0, %ymm0, %ymm14 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - vpor %ymm11, %ymm10, %ymm10 - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpxor %ymm10, %ymm8, %ymm8 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $6, %ymm14, %ymm11 - addq 24(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpxor %ymm11, %ymm8, %ymm8 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpaddq %ymm0, %ymm8, %ymm0 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - vpaddq (%rsi), %ymm0, %ymm8 - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vmovdqu %ymm8, (%rsp) - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpblendd $3, %ymm2, %ymm1, %ymm12 - vpblendd $3, %ymm0, %ymm3, %ymm13 - addq 32(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpermq $57, %ymm12, %ymm12 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpermq $57, %ymm13, %ymm13 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - vperm2I128 $0x81, %ymm0, %ymm0, %ymm14 - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpxor %ymm10, %ymm8, %ymm8 - addq 40(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpaddq %ymm1, %ymm13, %ymm1 - vpaddq %ymm1, %ymm8, %ymm1 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - vpor %ymm11, %ymm10, %ymm10 - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - vpxor %ymm10, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpsrlq $6, %ymm14, %ymm11 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpxor %ymm11, %ymm8, %ymm8 - addq 48(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpaddq %ymm1, %ymm8, %ymm1 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vperm2I128 $8, %ymm1, %ymm1, %ymm14 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - vpor %ymm11, %ymm10, %ymm10 - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpxor %ymm10, %ymm8, %ymm8 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $6, %ymm14, %ymm11 - addq 56(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpxor %ymm11, %ymm8, %ymm8 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpaddq %ymm1, %ymm8, %ymm1 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - vpaddq 32(%rsi), %ymm1, %ymm8 - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vmovdqu %ymm8, 32(%rsp) - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpblendd $3, %ymm3, %ymm2, %ymm12 - vpblendd $3, %ymm1, %ymm0, %ymm13 - addq 64(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpermq $57, %ymm12, %ymm12 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpermq $57, %ymm13, %ymm13 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - vperm2I128 $0x81, %ymm1, %ymm1, %ymm14 - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpxor %ymm10, %ymm8, %ymm8 - addq 72(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpaddq %ymm2, %ymm13, %ymm2 - vpaddq %ymm2, %ymm8, %ymm2 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - vpor %ymm11, %ymm10, %ymm10 - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - vpxor %ymm10, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpsrlq $6, %ymm14, %ymm11 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpxor %ymm11, %ymm8, %ymm8 - addq 80(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpaddq %ymm2, %ymm8, %ymm2 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vperm2I128 $8, %ymm2, %ymm2, %ymm14 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - vpor %ymm11, %ymm10, %ymm10 - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpxor %ymm10, %ymm8, %ymm8 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $6, %ymm14, %ymm11 - addq 88(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpxor %ymm11, %ymm8, %ymm8 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpaddq %ymm2, %ymm8, %ymm2 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - vpaddq 64(%rsi), %ymm2, %ymm8 - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vmovdqu %ymm8, 64(%rsp) - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpblendd $3, %ymm0, %ymm3, %ymm12 - vpblendd $3, %ymm2, %ymm1, %ymm13 - addq 96(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpermq $57, %ymm12, %ymm12 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpermq $57, %ymm13, %ymm13 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - vperm2I128 $0x81, %ymm2, %ymm2, %ymm14 - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpxor %ymm10, %ymm8, %ymm8 - addq 104(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpxor %ymm11, %ymm8, %ymm8 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpaddq %ymm3, %ymm13, %ymm3 - vpaddq %ymm3, %ymm8, %ymm3 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - vpor %ymm11, %ymm10, %ymm10 - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - vpxor %ymm10, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpsrlq $6, %ymm14, %ymm11 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpxor %ymm11, %ymm8, %ymm8 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpaddq %ymm3, %ymm8, %ymm3 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vperm2I128 $8, %ymm3, %ymm3, %ymm14 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpsrlq $19, %ymm14, %ymm8 - vpsllq $45, %ymm14, %ymm9 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpsrlq $61, %ymm14, %ymm10 - vpsllq $3, %ymm14, %ymm11 - vpor %ymm9, %ymm8, %ymm8 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - vpor %ymm11, %ymm10, %ymm10 - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpxor %ymm10, %ymm8, %ymm8 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $6, %ymm14, %ymm11 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpxor %ymm11, %ymm8, %ymm8 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpaddq %ymm3, %ymm8, %ymm3 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - vpaddq 96(%rsi), %ymm3, %ymm8 - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vmovdqu %ymm8, 96(%rsp) - subl $0x01, 128(%rsp) - jne L_sha256_len_avx2_rorx_start - # rnd_all_4: 0-3 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 16(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 24(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_4: 4-7 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 32(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 40(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 48(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 56(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - # rnd_all_4: 8-11 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq 64(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 72(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 80(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 88(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_4: 12-15 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 96(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 104(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - addq %rdx, %r8 - addq %r8, (%rdi) - addq %r9, 8(%rdi) - addq %r10, 16(%rdi) - addq %r11, 24(%rdi) - addq %r12, 32(%rdi) - addq %r13, 40(%rdi) - addq %r14, 48(%rdi) - addq %r15, 56(%rdi) - xorq %rax, %rax - vzeroupper - addq $0x88, %rsp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX2_RORX,.-Transform_Sha512_AVX2_RORX -#endif /* __APPLE__ */ -#ifndef __APPLE__ -.text -.globl Transform_Sha512_AVX2_RORX_Len -.type Transform_Sha512_AVX2_RORX_Len,@function -.align 4 -Transform_Sha512_AVX2_RORX_Len: -#else -.section __TEXT,__text -.globl _Transform_Sha512_AVX2_RORX_Len -.p2align 2 -_Transform_Sha512_AVX2_RORX_Len: -#endif /* __APPLE__ */ - pushq %rbx - pushq %r12 - pushq %r13 - pushq %r14 - pushq %r15 - pushq %rbp - testb $0x80, %sil - je L_sha512_len_avx2_rorx_block - movq 224(%rdi), %rax - push %rsi - vmovdqu (%rax), %ymm0 - vmovdqu 32(%rax), %ymm1 - vmovdqu 64(%rax), %ymm2 - vmovdqu 96(%rax), %ymm3 - vmovups %ymm0, 64(%rdi) - vmovups %ymm1, 96(%rdi) - vmovups %ymm2, 128(%rdi) - vmovups %ymm3, 160(%rdi) -#ifndef __APPLE__ - call Transform_Sha512_AVX2_RORX@plt -#else - call _Transform_Sha512_AVX2_RORX -#endif /* __APPLE__ */ - pop %rsi - addq $0x80, 224(%rdi) - subl $0x80, %esi - jz L_sha512_len_avx2_rorx_done -L_sha512_len_avx2_rorx_block: - movq 224(%rdi), %rax - vmovdqa L_avx2_rorx_sha512_flip_mask(%rip), %ymm15 - movq (%rdi), %r8 - movq 8(%rdi), %r9 - movq 16(%rdi), %r10 - movq 24(%rdi), %r11 - movq 32(%rdi), %r12 - movq 40(%rdi), %r13 - movq 48(%rdi), %r14 - movq 56(%rdi), %r15 - # Start of loop processing two blocks -L_sha512_len_avx2_rorx_begin: - subq $0x540, %rsp - leaq L_avx2_rorx_sha512_k_2(%rip), %rbp - movq %r9, %rbx - xorq %rdx, %rdx - vmovdqu (%rax), %xmm0 - vmovdqu 16(%rax), %xmm1 - vinserti128 $0x01, 128(%rax), %ymm0, %ymm0 - vinserti128 $0x01, 144(%rax), %ymm1, %ymm1 - vpshufb %ymm15, %ymm0, %ymm0 - vpshufb %ymm15, %ymm1, %ymm1 - vmovdqu 32(%rax), %xmm2 - vmovdqu 48(%rax), %xmm3 - vinserti128 $0x01, 160(%rax), %ymm2, %ymm2 - vinserti128 $0x01, 176(%rax), %ymm3, %ymm3 - vpshufb %ymm15, %ymm2, %ymm2 - vpshufb %ymm15, %ymm3, %ymm3 - vmovdqu 64(%rax), %xmm4 - vmovdqu 80(%rax), %xmm5 - vinserti128 $0x01, 192(%rax), %ymm4, %ymm4 - vinserti128 $0x01, 208(%rax), %ymm5, %ymm5 - vpshufb %ymm15, %ymm4, %ymm4 - vpshufb %ymm15, %ymm5, %ymm5 - vmovdqu 96(%rax), %xmm6 - vmovdqu 112(%rax), %xmm7 - vinserti128 $0x01, 224(%rax), %ymm6, %ymm6 - vinserti128 $0x01, 240(%rax), %ymm7, %ymm7 - vpshufb %ymm15, %ymm6, %ymm6 - vpshufb %ymm15, %ymm7, %ymm7 - xorq %r10, %rbx - # Start of 16 rounds -L_sha512_len_avx2_rorx_start: - vpaddq (%rbp), %ymm0, %ymm8 - vpaddq 32(%rbp), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rbp), %ymm2, %ymm8 - vpaddq 96(%rbp), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - vpaddq 128(%rbp), %ymm4, %ymm8 - vpaddq 160(%rbp), %ymm5, %ymm9 - vmovdqu %ymm8, 128(%rsp) - vmovdqu %ymm9, 160(%rsp) - vpaddq 192(%rbp), %ymm6, %ymm8 - vpaddq 224(%rbp), %ymm7, %ymm9 - vmovdqu %ymm8, 192(%rsp) - vmovdqu %ymm9, 224(%rsp) - # msg_sched: 0-1 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpalignr $8, %ymm0, %ymm1, %ymm12 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm4, %ymm5, %ymm13 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm0, %ymm13, %ymm0 - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - vpaddq %ymm0, %ymm8, %ymm0 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpsrlq $19, %ymm7, %ymm8 - vpsllq $45, %ymm7, %ymm9 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm7, %ymm10 - vpsllq $3, %ymm7, %ymm11 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm7, %ymm11 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpaddq %ymm0, %ymm8, %ymm0 - # msg_sched done: 0-3 - # msg_sched: 4-5 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpalignr $8, %ymm1, %ymm2, %ymm12 - addq 32(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm5, %ymm6, %ymm13 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm1, %ymm13, %ymm1 - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpaddq %ymm1, %ymm8, %ymm1 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $19, %ymm0, %ymm8 - vpsllq $45, %ymm0, %ymm9 - addq 40(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm0, %ymm10 - vpsllq $3, %ymm0, %ymm11 - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm0, %ymm11 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vpaddq %ymm1, %ymm8, %ymm1 - # msg_sched done: 4-7 - # msg_sched: 8-9 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpalignr $8, %ymm2, %ymm3, %ymm12 - addq 64(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm6, %ymm7, %ymm13 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm2, %ymm13, %ymm2 - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - vpaddq %ymm2, %ymm8, %ymm2 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpsrlq $19, %ymm1, %ymm8 - vpsllq $45, %ymm1, %ymm9 - addq 72(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm1, %ymm10 - vpsllq $3, %ymm1, %ymm11 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm1, %ymm11 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpaddq %ymm2, %ymm8, %ymm2 - # msg_sched done: 8-11 - # msg_sched: 12-13 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpalignr $8, %ymm3, %ymm4, %ymm12 - addq 96(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm7, %ymm0, %ymm13 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm3, %ymm13, %ymm3 - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpaddq %ymm3, %ymm8, %ymm3 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $19, %ymm2, %ymm8 - vpsllq $45, %ymm2, %ymm9 - addq 104(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm2, %ymm10 - vpsllq $3, %ymm2, %ymm11 - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm2, %ymm11 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vpaddq %ymm3, %ymm8, %ymm3 - # msg_sched done: 12-15 - # msg_sched: 16-17 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - vpalignr $8, %ymm4, %ymm5, %ymm12 - addq 128(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm0, %ymm1, %ymm13 - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm4, %ymm13, %ymm4 - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - vpaddq %ymm4, %ymm8, %ymm4 - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - vpsrlq $19, %ymm3, %ymm8 - vpsllq $45, %ymm3, %ymm9 - addq 136(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm3, %ymm10 - vpsllq $3, %ymm3, %ymm11 - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm3, %ymm11 - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - vpaddq %ymm4, %ymm8, %ymm4 - # msg_sched done: 16-19 - # msg_sched: 20-21 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - vpalignr $8, %ymm5, %ymm6, %ymm12 - addq 160(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm1, %ymm2, %ymm13 - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm5, %ymm13, %ymm5 - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - vpaddq %ymm5, %ymm8, %ymm5 - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - vpsrlq $19, %ymm4, %ymm8 - vpsllq $45, %ymm4, %ymm9 - addq 168(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm4, %ymm10 - vpsllq $3, %ymm4, %ymm11 - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm4, %ymm11 - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - vpaddq %ymm5, %ymm8, %ymm5 - # msg_sched done: 20-23 - # msg_sched: 24-25 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - vpalignr $8, %ymm6, %ymm7, %ymm12 - addq 192(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm2, %ymm3, %ymm13 - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm6, %ymm13, %ymm6 - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - vpaddq %ymm6, %ymm8, %ymm6 - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - vpsrlq $19, %ymm5, %ymm8 - vpsllq $45, %ymm5, %ymm9 - addq 200(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm5, %ymm10 - vpsllq $3, %ymm5, %ymm11 - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm5, %ymm11 - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - vpaddq %ymm6, %ymm8, %ymm6 - # msg_sched done: 24-27 - # msg_sched: 28-29 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - vpalignr $8, %ymm7, %ymm0, %ymm12 - addq 224(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - vpalignr $8, %ymm3, %ymm4, %ymm13 - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - vpsrlq $0x01, %ymm12, %ymm8 - vpsllq $63, %ymm12, %ymm9 - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - vpsrlq $8, %ymm12, %ymm10 - vpsllq $56, %ymm12, %ymm11 - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - vpsrlq $7, %ymm12, %ymm11 - vpxor %ymm10, %ymm8, %ymm8 - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - vpxor %ymm11, %ymm8, %ymm8 - vpaddq %ymm7, %ymm13, %ymm7 - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - vpaddq %ymm7, %ymm8, %ymm7 - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - vpsrlq $19, %ymm6, %ymm8 - vpsllq $45, %ymm6, %ymm9 - addq 232(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - vpsrlq $61, %ymm6, %ymm10 - vpsllq $3, %ymm6, %ymm11 - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - vpor %ymm9, %ymm8, %ymm8 - vpor %ymm11, %ymm10, %ymm10 - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - vpxor %ymm10, %ymm8, %ymm8 - vpsrlq $6, %ymm6, %ymm11 - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - vpxor %ymm11, %ymm8, %ymm8 - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - vpaddq %ymm7, %ymm8, %ymm7 - # msg_sched done: 28-31 - addq $0x100, %rbp - addq $0x100, %rsp - cmpq L_avx2_rorx_sha512_k_2_end(%rip), %rbp - jne L_sha512_len_avx2_rorx_start - vpaddq (%rbp), %ymm0, %ymm8 - vpaddq 32(%rbp), %ymm1, %ymm9 - vmovdqu %ymm8, (%rsp) - vmovdqu %ymm9, 32(%rsp) - vpaddq 64(%rbp), %ymm2, %ymm8 - vpaddq 96(%rbp), %ymm3, %ymm9 - vmovdqu %ymm8, 64(%rsp) - vmovdqu %ymm9, 96(%rsp) - vpaddq 128(%rbp), %ymm4, %ymm8 - vpaddq 160(%rbp), %ymm5, %ymm9 - vmovdqu %ymm8, 128(%rsp) - vmovdqu %ymm9, 160(%rsp) - vpaddq 192(%rbp), %ymm6, %ymm8 - vpaddq 224(%rbp), %ymm7, %ymm9 - vmovdqu %ymm8, 192(%rsp) - vmovdqu %ymm9, 224(%rsp) - # rnd_all_2: 0-1 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq (%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 8(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 4-5 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 32(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 40(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 8-9 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 64(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 72(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 12-13 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 96(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 104(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - # rnd_all_2: 16-17 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq 128(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 136(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 20-21 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 160(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 168(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 24-25 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 192(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 200(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 28-29 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 224(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 232(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - addq %rdx, %r8 - subq $0x400, %rsp - addq (%rdi), %r8 - addq 8(%rdi), %r9 - addq 16(%rdi), %r10 - addq 24(%rdi), %r11 - addq 32(%rdi), %r12 - addq 40(%rdi), %r13 - addq 48(%rdi), %r14 - addq 56(%rdi), %r15 - movq %r8, (%rdi) - movq %r9, 8(%rdi) - movq %r10, 16(%rdi) - movq %r11, 24(%rdi) - movq %r12, 32(%rdi) - movq %r13, 40(%rdi) - movq %r14, 48(%rdi) - movq %r15, 56(%rdi) - movq %r9, %rbx - xorq %rdx, %rdx - xorq %r10, %rbx - movq $5, %rbp -L_sha512_len_avx2_rorx_tail: - # rnd_all_2: 2-3 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq 16(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 24(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 6-7 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 48(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 56(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 10-11 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 80(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 88(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 14-15 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 112(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 120(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - # rnd_all_2: 18-19 - rorxq $14, %r12, %rax - rorxq $18, %r12, %rcx - addq %rdx, %r8 - addq 144(%rsp), %r15 - movq %r13, %rdx - xorq %rax, %rcx - xorq %r14, %rdx - rorxq $41, %r12, %rax - xorq %rcx, %rax - andq %r12, %rdx - addq %rax, %r15 - rorxq $28, %r8, %rax - rorxq $34, %r8, %rcx - xorq %r14, %rdx - xorq %rax, %rcx - rorxq $39, %r8, %rax - addq %rdx, %r15 - xorq %rcx, %rax - movq %r9, %rdx - addq %r15, %r11 - xorq %r8, %rdx - andq %rdx, %rbx - addq %rax, %r15 - xorq %r9, %rbx - rorxq $14, %r11, %rax - rorxq $18, %r11, %rcx - addq %rbx, %r15 - addq 152(%rsp), %r14 - movq %r12, %rbx - xorq %rax, %rcx - xorq %r13, %rbx - rorxq $41, %r11, %rax - xorq %rcx, %rax - andq %r11, %rbx - addq %rax, %r14 - rorxq $28, %r15, %rax - rorxq $34, %r15, %rcx - xorq %r13, %rbx - xorq %rax, %rcx - rorxq $39, %r15, %rax - addq %rbx, %r14 - xorq %rcx, %rax - movq %r8, %rbx - leaq (%r10,%r14,1), %r10 - xorq %r15, %rbx - andq %rbx, %rdx - addq %rax, %r14 - xorq %r8, %rdx - # rnd_all_2: 22-23 - rorxq $14, %r10, %rax - rorxq $18, %r10, %rcx - addq %rdx, %r14 - addq 176(%rsp), %r13 - movq %r11, %rdx - xorq %rax, %rcx - xorq %r12, %rdx - rorxq $41, %r10, %rax - xorq %rcx, %rax - andq %r10, %rdx - addq %rax, %r13 - rorxq $28, %r14, %rax - rorxq $34, %r14, %rcx - xorq %r12, %rdx - xorq %rax, %rcx - rorxq $39, %r14, %rax - addq %rdx, %r13 - xorq %rcx, %rax - movq %r15, %rdx - addq %r13, %r9 - xorq %r14, %rdx - andq %rdx, %rbx - addq %rax, %r13 - xorq %r15, %rbx - rorxq $14, %r9, %rax - rorxq $18, %r9, %rcx - addq %rbx, %r13 - addq 184(%rsp), %r12 - movq %r10, %rbx - xorq %rax, %rcx - xorq %r11, %rbx - rorxq $41, %r9, %rax - xorq %rcx, %rax - andq %r9, %rbx - addq %rax, %r12 - rorxq $28, %r13, %rax - rorxq $34, %r13, %rcx - xorq %r11, %rbx - xorq %rax, %rcx - rorxq $39, %r13, %rax - addq %rbx, %r12 - xorq %rcx, %rax - movq %r14, %rbx - leaq (%r8,%r12,1), %r8 - xorq %r13, %rbx - andq %rbx, %rdx - addq %rax, %r12 - xorq %r14, %rdx - # rnd_all_2: 26-27 - rorxq $14, %r8, %rax - rorxq $18, %r8, %rcx - addq %rdx, %r12 - addq 208(%rsp), %r11 - movq %r9, %rdx - xorq %rax, %rcx - xorq %r10, %rdx - rorxq $41, %r8, %rax - xorq %rcx, %rax - andq %r8, %rdx - addq %rax, %r11 - rorxq $28, %r12, %rax - rorxq $34, %r12, %rcx - xorq %r10, %rdx - xorq %rax, %rcx - rorxq $39, %r12, %rax - addq %rdx, %r11 - xorq %rcx, %rax - movq %r13, %rdx - addq %r11, %r15 - xorq %r12, %rdx - andq %rdx, %rbx - addq %rax, %r11 - xorq %r13, %rbx - rorxq $14, %r15, %rax - rorxq $18, %r15, %rcx - addq %rbx, %r11 - addq 216(%rsp), %r10 - movq %r8, %rbx - xorq %rax, %rcx - xorq %r9, %rbx - rorxq $41, %r15, %rax - xorq %rcx, %rax - andq %r15, %rbx - addq %rax, %r10 - rorxq $28, %r11, %rax - rorxq $34, %r11, %rcx - xorq %r9, %rbx - xorq %rax, %rcx - rorxq $39, %r11, %rax - addq %rbx, %r10 - xorq %rcx, %rax - movq %r12, %rbx - leaq (%r14,%r10,1), %r14 - xorq %r11, %rbx - andq %rbx, %rdx - addq %rax, %r10 - xorq %r12, %rdx - # rnd_all_2: 30-31 - rorxq $14, %r14, %rax - rorxq $18, %r14, %rcx - addq %rdx, %r10 - addq 240(%rsp), %r9 - movq %r15, %rdx - xorq %rax, %rcx - xorq %r8, %rdx - rorxq $41, %r14, %rax - xorq %rcx, %rax - andq %r14, %rdx - addq %rax, %r9 - rorxq $28, %r10, %rax - rorxq $34, %r10, %rcx - xorq %r8, %rdx - xorq %rax, %rcx - rorxq $39, %r10, %rax - addq %rdx, %r9 - xorq %rcx, %rax - movq %r11, %rdx - addq %r9, %r13 - xorq %r10, %rdx - andq %rdx, %rbx - addq %rax, %r9 - xorq %r11, %rbx - rorxq $14, %r13, %rax - rorxq $18, %r13, %rcx - addq %rbx, %r9 - addq 248(%rsp), %r8 - movq %r14, %rbx - xorq %rax, %rcx - xorq %r15, %rbx - rorxq $41, %r13, %rax - xorq %rcx, %rax - andq %r13, %rbx - addq %rax, %r8 - rorxq $28, %r9, %rax - rorxq $34, %r9, %rcx - xorq %r15, %rbx - xorq %rax, %rcx - rorxq $39, %r9, %rax - addq %rbx, %r8 - xorq %rcx, %rax - movq %r10, %rbx - leaq (%r12,%r8,1), %r12 - xorq %r9, %rbx - andq %rbx, %rdx - addq %rax, %r8 - xorq %r10, %rdx - addq $0x100, %rsp - subq $0x01, %rbp - jnz L_sha512_len_avx2_rorx_tail - addq %rdx, %r8 - addq (%rdi), %r8 - addq 8(%rdi), %r9 - addq 16(%rdi), %r10 - addq 24(%rdi), %r11 - addq 32(%rdi), %r12 - addq 40(%rdi), %r13 - addq 48(%rdi), %r14 - addq 56(%rdi), %r15 - movq 224(%rdi), %rax - addq $0x40, %rsp - addq $0x100, %rax - subl $0x100, %esi - movq %rax, 224(%rdi) - movq %r8, (%rdi) - movq %r9, 8(%rdi) - movq %r10, 16(%rdi) - movq %r11, 24(%rdi) - movq %r12, 32(%rdi) - movq %r13, 40(%rdi) - movq %r14, 48(%rdi) - movq %r15, 56(%rdi) - jnz L_sha512_len_avx2_rorx_begin -L_sha512_len_avx2_rorx_done: - xorq %rax, %rax - vzeroupper - popq %rbp - popq %r15 - popq %r14 - popq %r13 - popq %r12 - popq %rbx - repz retq -#ifndef __APPLE__ -.size Transform_Sha512_AVX2_RORX_Len,.-Transform_Sha512_AVX2_RORX_Len -#endif /* __APPLE__ */ -#endif /* HAVE_INTEL_AVX2 */ |