aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcryptobox/blake2/avx.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcryptobox/blake2/avx.S')
-rw-r--r--src/libcryptobox/blake2/avx.S689
1 files changed, 0 insertions, 689 deletions
diff --git a/src/libcryptobox/blake2/avx.S b/src/libcryptobox/blake2/avx.S
deleted file mode 100644
index e569f0ba7..000000000
--- a/src/libcryptobox/blake2/avx.S
+++ /dev/null
@@ -1,689 +0,0 @@
-#include "../macro.S"
-#include "constants.S"
-
-SECTION_TEXT
-
-GLOBAL_HIDDEN_FN_EXT blake2b_blocks_avx, 4, 16
-pushq %rbp
-movq %rsp, %rbp
-andq $-64, %rsp
-pushq %r12
-pushq %r13
-pushq %r14
-pushq %r15
-pushq %rbx
-subq $344, %rsp
-LOAD_VAR_PIC 48+blake2b_constants, %r9
-LOAD_VAR_PIC blake2b_constants_ssse3, %rax
-leaq 16(%rax), %r8
-vmovdqu 80(%rdi), %xmm0
-cmpq $128, %rdx
-vpxor (%r9), %xmm0, %xmm0
-movl $128, %r9d
-vmovdqu (%rax), %xmm12
-cmovbe %rdx, %r9
-vmovdqu (%r8), %xmm1
-movq 64(%rdi), %r8
-movq 72(%rdi), %rax
-cmpq $0, 80(%rdi)
-je blake2b_blocks_avx_L21
-blake2b_blocks_avx_L2:
-cmpq $128, %rdx
-je blake2b_blocks_avx_L21
-blake2b_blocks_avx_L3:
-lea (%rsp), %r10
-testq $64, %rdx
-je blake2b_blocks_avx_L5
-blake2b_blocks_avx_L4:
-vmovdqu (%rsi), %xmm2
-vmovdqu %xmm2, (%rsp)
-lea 64(%rsp), %r10
-vmovdqu 16(%rsi), %xmm3
-vmovdqu %xmm3, 16(%rsp)
-vpxor %xmm2, %xmm2, %xmm2
-vmovdqu 32(%rsi), %xmm4
-vmovdqu %xmm4, 32(%rsp)
-vmovdqu 48(%rsi), %xmm5
-vmovdqu %xmm5, 48(%rsp)
-addq $64, %rsi
-jmp blake2b_blocks_avx_L6
-blake2b_blocks_avx_L5:
-vpxor %xmm2, %xmm2, %xmm2
-vmovdqu %xmm2, 64(%rsp)
-vmovdqu %xmm2, 80(%rsp)
-vmovdqu %xmm2, 96(%rsp)
-vmovdqu %xmm2, 112(%rsp)
-blake2b_blocks_avx_L6:
-vmovdqu %xmm2, (%r10)
-vmovdqu %xmm2, 16(%r10)
-vmovdqu %xmm2, 32(%r10)
-vmovdqu %xmm2, 48(%r10)
-testq $32, %rdx
-je blake2b_blocks_avx_L8
-blake2b_blocks_avx_L7:
-vmovdqu (%rsi), %xmm2
-vmovdqu %xmm2, (%r10)
-vmovdqu 16(%rsi), %xmm3
-vmovdqu %xmm3, 16(%r10)
-addq $32, %rsi
-addq $32, %r10
-blake2b_blocks_avx_L8:
-testq $16, %rdx
-je blake2b_blocks_avx_L10
-blake2b_blocks_avx_L9:
-vmovdqu (%rsi), %xmm2
-vmovdqu %xmm2, (%r10)
-addq $16, %rsi
-addq $16, %r10
-blake2b_blocks_avx_L10:
-testq $8, %rdx
-je blake2b_blocks_avx_L12
-blake2b_blocks_avx_L11:
-movq (%rsi), %r11
-addq $8, %rsi
-movq %r11, (%r10)
-addq $8, %r10
-blake2b_blocks_avx_L12:
-testq $4, %rdx
-je blake2b_blocks_avx_L14
-blake2b_blocks_avx_L13:
-movl (%rsi), %r11d
-addq $4, %rsi
-movl %r11d, (%r10)
-addq $4, %r10
-blake2b_blocks_avx_L14:
-testq $2, %rdx
-je blake2b_blocks_avx_L16
-blake2b_blocks_avx_L15:
-movzwl (%rsi), %r11d
-addq $2, %rsi
-movw %r11w, (%r10)
-addq $2, %r10
-blake2b_blocks_avx_L16:
-testq $1, %rdx
-je blake2b_blocks_avx_L18
-blake2b_blocks_avx_L17:
-movb (%rsi), %sil
-movb %sil, (%r10)
-blake2b_blocks_avx_L18:
-lea (%rsp), %rsi
-blake2b_blocks_avx_L21:
-LOAD_VAR_PIC 32+blake2b_constants, %r10
-LOAD_VAR_PIC blake2b_constants, %r11
-vmovdqu (%rdi), %xmm5
-vmovdqu 16(%rdi), %xmm6
-vmovdqu 32(%rdi), %xmm7
-vmovdqu (%r10), %xmm4
-LOAD_VAR_PIC 16+blake2b_constants, %r10
-vmovdqu 48(%rdi), %xmm8
-vmovdqu (%r11), %xmm3
-vmovdqu %xmm3, 176(%rsp)
-vmovdqu (%r10), %xmm2
-vmovdqu %xmm2, 160(%rsp)
-vmovdqu %xmm4, 144(%rsp)
-vmovdqu %xmm8, 240(%rsp)
-vmovdqu %xmm7, 256(%rsp)
-vmovdqu %xmm6, 224(%rsp)
-vmovdqu %xmm5, 208(%rsp)
-vmovdqu %xmm0, 192(%rsp)
-movq %r9, 272(%rsp)
-movq %rdi, 128(%rsp)
-movq %rcx, 136(%rsp)
-jmp blake2b_blocks_avx_L22
-# align to 31 mod 64
-.p2align 6
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-nop
-blake2b_blocks_avx_L25:
-addq 136(%rsp), %rsi
-addq $-128, %rdx
-blake2b_blocks_avx_L22:
-movq 272(%rsp), %rcx
-addq %rcx, %r8
-cmpq %rcx, %r8
-lea 1(%rax), %rbx
-vmovdqu (%rsi), %xmm15
-vmovdqu 16(%rsi), %xmm5
-vmovdqu 32(%rsi), %xmm3
-vmovdqu 48(%rsi), %xmm6
-cmovb %rbx, %rax
-vmovd %r8, %xmm7
-vpunpcklqdq %xmm5, %xmm15, %xmm2
-LOAD_VAR_PIC 96+blake2b_constants, %rcx
-vpunpcklqdq %xmm6, %xmm3, %xmm8
-LOAD_VAR_PIC 224+blake2b_constants, %rbx
-vpaddq 208(%rsp), %xmm2, %xmm0
-vpaddq 224(%rsp), %xmm8, %xmm10
-vmovd %rax, %xmm14
-vmovdqu 256(%rsp), %xmm4
-vmovdqu 240(%rsp), %xmm11
-vpunpcklqdq %xmm14, %xmm7, %xmm9
-vpaddq %xmm4, %xmm0, %xmm13
-vpaddq %xmm11, %xmm10, %xmm2
-vpxor 144(%rsp), %xmm9, %xmm0
-vpxor 192(%rsp), %xmm2, %xmm10
-vpxor %xmm13, %xmm0, %xmm8
-vpshufd $177, %xmm8, %xmm8
-vpshufd $177, %xmm10, %xmm7
-vpaddq 176(%rsp), %xmm8, %xmm14
-vpaddq 160(%rsp), %xmm7, %xmm9
-vpxor %xmm14, %xmm4, %xmm4
-vpxor %xmm9, %xmm11, %xmm11
-vpshufb %xmm1, %xmm4, %xmm4
-vpshufb %xmm1, %xmm11, %xmm0
-vpunpckhqdq %xmm5, %xmm15, %xmm15
-vpunpckhqdq %xmm6, %xmm3, %xmm6
-vpaddq %xmm15, %xmm13, %xmm13
-vpaddq %xmm6, %xmm2, %xmm6
-vpaddq %xmm4, %xmm13, %xmm10
-vpaddq %xmm0, %xmm6, %xmm15
-vpxor %xmm10, %xmm8, %xmm2
-vpxor %xmm15, %xmm7, %xmm8
-vpshufb %xmm12, %xmm2, %xmm5
-vpshufb %xmm12, %xmm8, %xmm2
-vpaddq %xmm5, %xmm14, %xmm6
-vpaddq %xmm2, %xmm9, %xmm7
-vpxor %xmm6, %xmm4, %xmm4
-vpxor %xmm7, %xmm0, %xmm9
-vpaddq %xmm4, %xmm4, %xmm14
-vpaddq %xmm9, %xmm9, %xmm13
-vpsrlq $63, %xmm4, %xmm0
-vpsrlq $63, %xmm9, %xmm11
-vpor %xmm14, %xmm0, %xmm8
-vpor %xmm13, %xmm11, %xmm4
-vpalignr $8, %xmm8, %xmm4, %xmm0
-vpalignr $8, %xmm4, %xmm8, %xmm14
-vmovdqu 64(%rsi), %xmm9
-vmovdqu 80(%rsi), %xmm8
-vmovdqu 96(%rsi), %xmm4
-vpunpcklqdq %xmm8, %xmm9, %xmm11
-vpaddq %xmm11, %xmm10, %xmm10
-vmovdqu 112(%rsi), %xmm11
-vpaddq %xmm0, %xmm10, %xmm13
-vpunpcklqdq %xmm11, %xmm4, %xmm10
-vpaddq %xmm10, %xmm15, %xmm15
-vpaddq %xmm14, %xmm15, %xmm15
-vpalignr $8, %xmm2, %xmm5, %xmm10
-vpalignr $8, %xmm5, %xmm2, %xmm5
-vpxor %xmm13, %xmm10, %xmm10
-vpxor %xmm15, %xmm5, %xmm2
-vpshufd $177, %xmm10, %xmm10
-vpshufd $177, %xmm2, %xmm2
-vpaddq %xmm10, %xmm7, %xmm7
-vpaddq %xmm2, %xmm6, %xmm5
-vpxor %xmm7, %xmm0, %xmm6
-vpxor %xmm5, %xmm14, %xmm14
-vpshufb %xmm1, %xmm6, %xmm0
-vpshufb %xmm1, %xmm14, %xmm6
-vpunpckhqdq %xmm8, %xmm9, %xmm14
-vpaddq %xmm14, %xmm13, %xmm13
-vpaddq %xmm0, %xmm13, %xmm14
-vpunpckhqdq %xmm11, %xmm4, %xmm13
-vpxor %xmm14, %xmm10, %xmm10
-vpaddq %xmm13, %xmm15, %xmm15
-vpshufb %xmm12, %xmm10, %xmm13
-vpaddq %xmm6, %xmm15, %xmm15
-vpaddq %xmm13, %xmm7, %xmm10
-vpxor %xmm15, %xmm2, %xmm2
-vpxor %xmm10, %xmm0, %xmm0
-vpshufb %xmm12, %xmm2, %xmm2
-vpaddq %xmm2, %xmm5, %xmm5
-vpxor %xmm5, %xmm6, %xmm7
-vpsrlq $63, %xmm0, %xmm6
-vpaddq %xmm0, %xmm0, %xmm0
-vpor %xmm0, %xmm6, %xmm6
-vpsrlq $63, %xmm7, %xmm0
-vpaddq %xmm7, %xmm7, %xmm7
-vpor %xmm7, %xmm0, %xmm0
-vpalignr $8, %xmm0, %xmm6, %xmm7
-vpalignr $8, %xmm6, %xmm0, %xmm6
-vpunpcklqdq %xmm3, %xmm11, %xmm0
-vpaddq %xmm0, %xmm14, %xmm14
-vpaddq %xmm7, %xmm14, %xmm0
-vpunpckhqdq %xmm4, %xmm9, %xmm14
-vpaddq %xmm14, %xmm15, %xmm15
-vpaddq %xmm6, %xmm15, %xmm14
-vpalignr $8, %xmm13, %xmm2, %xmm15
-vpxor %xmm0, %xmm15, %xmm15
-vpshufd $177, %xmm15, %xmm15
-vpalignr $8, %xmm2, %xmm13, %xmm2
-vpxor %xmm14, %xmm2, %xmm13
-vpaddq %xmm15, %xmm5, %xmm2
-vpshufd $177, %xmm13, %xmm13
-vpxor %xmm2, %xmm7, %xmm5
-vpunpcklqdq %xmm9, %xmm8, %xmm7
-vpaddq %xmm13, %xmm10, %xmm10
-vpaddq %xmm7, %xmm0, %xmm9
-vmovdqu 48(%rsi), %xmm0
-vpshufb %xmm1, %xmm5, %xmm5
-vpxor %xmm10, %xmm6, %xmm6
-vpshufb %xmm1, %xmm6, %xmm6
-vpaddq %xmm5, %xmm9, %xmm9
-vpalignr $8, %xmm11, %xmm0, %xmm11
-vpxor %xmm9, %xmm15, %xmm15
-vpaddq %xmm11, %xmm14, %xmm7
-vpshufb %xmm12, %xmm15, %xmm11
-vpaddq %xmm6, %xmm7, %xmm14
-vpaddq %xmm11, %xmm2, %xmm2
-vpxor %xmm14, %xmm13, %xmm13
-vpxor %xmm2, %xmm5, %xmm5
-vpshufb %xmm12, %xmm13, %xmm13
-vpaddq %xmm13, %xmm10, %xmm10
-vpxor %xmm10, %xmm6, %xmm15
-vpsrlq $63, %xmm5, %xmm6
-vpaddq %xmm5, %xmm5, %xmm5
-vpsrlq $63, %xmm15, %xmm7
-vpor %xmm5, %xmm6, %xmm6
-vpaddq %xmm15, %xmm15, %xmm15
-vpor %xmm15, %xmm7, %xmm5
-vpalignr $8, %xmm6, %xmm5, %xmm15
-vpalignr $8, %xmm5, %xmm6, %xmm5
-vpshufd $78, (%rsi), %xmm6
-vpaddq %xmm6, %xmm9, %xmm9
-vpunpckhqdq %xmm3, %xmm8, %xmm3
-vpaddq %xmm3, %xmm14, %xmm6
-vpaddq %xmm15, %xmm9, %xmm9
-vpaddq %xmm5, %xmm6, %xmm8
-vpalignr $8, %xmm13, %xmm11, %xmm3
-vpalignr $8, %xmm11, %xmm13, %xmm11
-vpxor %xmm9, %xmm3, %xmm7
-vpshufd $177, %xmm7, %xmm14
-vpxor %xmm8, %xmm11, %xmm13
-vpshufd $177, %xmm13, %xmm3
-vpaddq %xmm14, %xmm10, %xmm6
-vpaddq %xmm3, %xmm2, %xmm10
-vpxor %xmm6, %xmm15, %xmm2
-vmovdqu 16(%rsi), %xmm15
-vpshufb %xmm1, %xmm2, %xmm7
-vpxor %xmm10, %xmm5, %xmm2
-vpshufb %xmm1, %xmm2, %xmm5
-vpunpcklqdq %xmm15, %xmm4, %xmm4
-vpunpckhqdq %xmm15, %xmm0, %xmm0
-vpaddq %xmm4, %xmm9, %xmm2
-vpaddq %xmm0, %xmm8, %xmm8
-vpaddq %xmm7, %xmm2, %xmm2
-vpaddq %xmm5, %xmm8, %xmm0
-vpxor %xmm2, %xmm14, %xmm15
-vpxor %xmm0, %xmm3, %xmm9
-vpshufb %xmm12, %xmm15, %xmm15
-vpshufb %xmm12, %xmm9, %xmm3
-vpaddq %xmm15, %xmm6, %xmm8
-vpaddq %xmm3, %xmm10, %xmm6
-vpxor %xmm8, %xmm7, %xmm10
-vpxor %xmm6, %xmm5, %xmm5
-vpaddq %xmm5, %xmm5, %xmm9
-vpsrlq $63, %xmm10, %xmm4
-vpsrlq $63, %xmm5, %xmm7
-vpaddq %xmm10, %xmm10, %xmm10
-vpor %xmm10, %xmm4, %xmm13
-vpor %xmm9, %xmm7, %xmm11
-vpalignr $8, %xmm11, %xmm13, %xmm4
-vpalignr $8, %xmm13, %xmm11, %xmm7
-vpalignr $8, %xmm15, %xmm3, %xmm9
-vpalignr $8, %xmm3, %xmm15, %xmm10
-blake2b_blocks_avx_L23:
-movzbl (%rcx), %edi
-movzbl 2(%rcx), %r9d
-movzbl 4(%rcx), %r10d
-movzbl 6(%rcx), %r11d
-vmovq (%rdi,%rsi), %xmm5
-vpinsrq $1, (%r9,%rsi), %xmm5, %xmm14
-vmovq (%r10,%rsi), %xmm3
-vpinsrq $1, (%r11,%rsi), %xmm3, %xmm15
-vpaddq %xmm14, %xmm2, %xmm2
-vpaddq %xmm15, %xmm0, %xmm0
-vpaddq %xmm4, %xmm2, %xmm2
-vpaddq %xmm7, %xmm0, %xmm0
-vpxor %xmm2, %xmm9, %xmm11
-vpxor %xmm0, %xmm10, %xmm10
-vpshufd $177, %xmm11, %xmm3
-movzbl 1(%rcx), %r12d
-movzbl 5(%rcx), %r14d
-vpshufd $177, %xmm10, %xmm5
-vpaddq %xmm3, %xmm6, %xmm6
-vpaddq %xmm5, %xmm8, %xmm9
-movzbl 3(%rcx), %r13d
-vpxor %xmm6, %xmm4, %xmm14
-movzbl 7(%rcx), %r15d
-vpxor %xmm9, %xmm7, %xmm15
-vmovq (%r12,%rsi), %xmm4
-vmovq (%r14,%rsi), %xmm11
-vpinsrq $1, (%r13,%rsi), %xmm4, %xmm7
-vpinsrq $1, (%r15,%rsi), %xmm11, %xmm13
-vpshufb %xmm1, %xmm14, %xmm8
-vpshufb %xmm1, %xmm15, %xmm14
-vpaddq %xmm7, %xmm2, %xmm2
-vpaddq %xmm13, %xmm0, %xmm0
-vpaddq %xmm8, %xmm2, %xmm4
-vpaddq %xmm14, %xmm0, %xmm7
-vpxor %xmm4, %xmm3, %xmm10
-vpxor %xmm7, %xmm5, %xmm3
-vpshufb %xmm12, %xmm10, %xmm11
-vpshufb %xmm12, %xmm3, %xmm10
-vpaddq %xmm11, %xmm6, %xmm13
-vpaddq %xmm10, %xmm9, %xmm9
-movzbl 8(%rcx), %edi
-vpxor %xmm13, %xmm8, %xmm8
-movzbl 12(%rcx), %r10d
-vpxor %xmm9, %xmm14, %xmm2
-movzbl 10(%rcx), %r9d
-vpsrlq $63, %xmm8, %xmm6
-movzbl 14(%rcx), %r11d
-vpsrlq $63, %xmm2, %xmm0
-vpaddq %xmm8, %xmm8, %xmm5
-vpaddq %xmm2, %xmm2, %xmm14
-vmovq (%rdi,%rsi), %xmm15
-vpor %xmm5, %xmm6, %xmm8
-vmovq (%r10,%rsi), %xmm3
-vpor %xmm14, %xmm0, %xmm6
-vpinsrq $1, (%r9,%rsi), %xmm15, %xmm5
-vpinsrq $1, (%r11,%rsi), %xmm3, %xmm0
-vpalignr $8, %xmm8, %xmm6, %xmm2
-vpalignr $8, %xmm6, %xmm8, %xmm14
-vpalignr $8, %xmm10, %xmm11, %xmm8
-vpalignr $8, %xmm11, %xmm10, %xmm11
-vpaddq %xmm5, %xmm4, %xmm4
-vpaddq %xmm0, %xmm7, %xmm7
-vpaddq %xmm2, %xmm4, %xmm15
-vpaddq %xmm14, %xmm7, %xmm0
-vpxor %xmm15, %xmm8, %xmm6
-vpxor %xmm0, %xmm11, %xmm10
-vpshufd $177, %xmm6, %xmm6
-vpshufd $177, %xmm10, %xmm8
-movzbl 9(%rcx), %r12d
-movzbl 13(%rcx), %r14d
-vpaddq %xmm6, %xmm9, %xmm4
-vpaddq %xmm8, %xmm13, %xmm7
-movzbl 11(%rcx), %r13d
-vpxor %xmm4, %xmm2, %xmm9
-movzbl 15(%rcx), %r15d
-vpxor %xmm7, %xmm14, %xmm2
-vmovq (%r12,%rsi), %xmm14
-addq $16, %rcx
-vmovq (%r14,%rsi), %xmm3
-vpshufb %xmm1, %xmm9, %xmm13
-vpinsrq $1, (%r13,%rsi), %xmm14, %xmm5
-vpinsrq $1, (%r15,%rsi), %xmm3, %xmm9
-vpshufb %xmm1, %xmm2, %xmm11
-vpaddq %xmm5, %xmm15, %xmm15
-vpaddq %xmm9, %xmm0, %xmm0
-vpaddq %xmm13, %xmm15, %xmm2
-vpaddq %xmm11, %xmm0, %xmm0
-vpxor %xmm2, %xmm6, %xmm6
-vpxor %xmm0, %xmm8, %xmm8
-vpshufb %xmm12, %xmm6, %xmm14
-vpshufb %xmm12, %xmm8, %xmm15
-vpaddq %xmm14, %xmm4, %xmm8
-vpaddq %xmm15, %xmm7, %xmm6
-vpxor %xmm8, %xmm13, %xmm4
-vpxor %xmm6, %xmm11, %xmm11
-vpaddq %xmm4, %xmm4, %xmm10
-vpsrlq $63, %xmm4, %xmm7
-vpsrlq $63, %xmm11, %xmm13
-vpaddq %xmm11, %xmm11, %xmm4
-vpor %xmm10, %xmm7, %xmm3
-vpor %xmm4, %xmm13, %xmm11
-vpalignr $8, %xmm11, %xmm3, %xmm4
-vpalignr $8, %xmm3, %xmm11, %xmm7
-vpalignr $8, %xmm15, %xmm14, %xmm10
-vpalignr $8, %xmm14, %xmm15, %xmm9
-cmpq %rbx, %rcx
-jb blake2b_blocks_avx_L23
-blake2b_blocks_avx_L24:
-movq 32(%rsi), %r13
-movq (%rsi), %r10
-movq 48(%rsi), %r9
-vmovd %r13, %xmm13
-vpinsrq $1, %r9, %xmm13, %xmm14
-vmovd %r10, %xmm3
-movq 16(%rsi), %rbx
-vpinsrq $1, %rbx, %xmm3, %xmm15
-vpaddq %xmm14, %xmm0, %xmm0
-vpaddq %xmm7, %xmm0, %xmm3
-vpxor %xmm3, %xmm10, %xmm10
-vpaddq %xmm15, %xmm2, %xmm2
-vpaddq %xmm4, %xmm2, %xmm5
-vpshufd $177, %xmm10, %xmm15
-vpxor %xmm5, %xmm9, %xmm9
-vpshufd $177, %xmm9, %xmm9
-vpaddq %xmm15, %xmm8, %xmm14
-vpaddq %xmm9, %xmm6, %xmm0
-vpxor %xmm14, %xmm7, %xmm7
-vpxor %xmm0, %xmm4, %xmm8
-vpshufb %xmm1, %xmm7, %xmm4
-vpshufb %xmm1, %xmm8, %xmm2
-vmovq 8(%rsi), %xmm7
-movq %r8, 288(%rsp)
-movq 24(%rsi), %r8
-vpinsrq $1, %r8, %xmm7, %xmm6
-vpinsrq $1, %r10, %xmm7, %xmm7
-vpaddq %xmm6, %xmm5, %xmm13
-movq 40(%rsi), %rcx
-movq 56(%rsi), %rdi
-vpaddq %xmm2, %xmm13, %xmm13
-vmovd %rcx, %xmm5
-vpxor %xmm13, %xmm9, %xmm9
-vpinsrq $1, %rdi, %xmm5, %xmm10
-vpshufb %xmm12, %xmm9, %xmm5
-vpaddq %xmm10, %xmm3, %xmm3
-vpaddq %xmm4, %xmm3, %xmm11
-vpaddq %xmm5, %xmm0, %xmm3
-vpxor %xmm11, %xmm15, %xmm8
-vpshufb %xmm12, %xmm8, %xmm10
-vpaddq %xmm10, %xmm14, %xmm8
-vpxor %xmm3, %xmm2, %xmm14
-vpxor %xmm8, %xmm4, %xmm9
-vpsrlq $63, %xmm14, %xmm4
-vpsrlq $63, %xmm9, %xmm0
-vpaddq %xmm14, %xmm14, %xmm14
-movq 64(%rsi), %r15
-vpor %xmm14, %xmm4, %xmm6
-vpaddq %xmm9, %xmm9, %xmm4
-vmovq 96(%rsi), %xmm9
-vpor %xmm4, %xmm0, %xmm2
-movq 112(%rsi), %r14
-vmovd %r15, %xmm15
-vpinsrq $1, %r14, %xmm9, %xmm0
-vpinsrq $1, %rbx, %xmm9, %xmm9
-vpalignr $8, %xmm6, %xmm2, %xmm4
-vpalignr $8, %xmm2, %xmm6, %xmm2
-vpaddq %xmm0, %xmm11, %xmm11
-movq 80(%rsi), %r11
-vpinsrq $1, %r11, %xmm15, %xmm14
-vpaddq %xmm2, %xmm11, %xmm11
-vpalignr $8, %xmm10, %xmm5, %xmm15
-vpalignr $8, %xmm5, %xmm10, %xmm5
-vpxor %xmm11, %xmm5, %xmm10
-vpaddq %xmm14, %xmm13, %xmm13
-vpaddq %xmm4, %xmm13, %xmm6
-vpshufd $177, %xmm10, %xmm14
-vpxor %xmm6, %xmm15, %xmm13
-vpaddq %xmm14, %xmm3, %xmm0
-vpshufd $177, %xmm13, %xmm13
-vpaddq %xmm13, %xmm8, %xmm15
-vpxor %xmm0, %xmm2, %xmm8
-vpxor %xmm15, %xmm4, %xmm3
-vpshufb %xmm1, %xmm8, %xmm5
-vpshufb %xmm1, %xmm3, %xmm4
-vmovq 72(%rsi), %xmm8
-movq %rax, 296(%rsp)
-movq 88(%rsi), %rax
-vpinsrq $1, %rax, %xmm8, %xmm2
-movq 104(%rsi), %r12
-vpaddq %xmm2, %xmm6, %xmm6
-vpinsrq $1, %r12, %xmm8, %xmm8
-vmovd %r12, %xmm3
-vpaddq %xmm4, %xmm6, %xmm10
-vpxor %xmm10, %xmm13, %xmm13
-movq %rsi, 280(%rsp)
-movq 120(%rsi), %rsi
-vpinsrq $1, %rsi, %xmm3, %xmm6
-vpshufb %xmm12, %xmm13, %xmm3
-vpaddq %xmm6, %xmm11, %xmm11
-vpaddq %xmm5, %xmm11, %xmm6
-vpxor %xmm6, %xmm14, %xmm14
-vpshufb %xmm12, %xmm14, %xmm2
-vpaddq %xmm3, %xmm15, %xmm14
-vpaddq %xmm2, %xmm0, %xmm0
-vpaddq %xmm8, %xmm6, %xmm6
-vpxor %xmm14, %xmm4, %xmm4
-vpxor %xmm0, %xmm5, %xmm13
-vpsrlq $63, %xmm4, %xmm5
-vpsrlq $63, %xmm13, %xmm15
-vpaddq %xmm4, %xmm4, %xmm4
-vpaddq %xmm13, %xmm13, %xmm13
-vpor %xmm4, %xmm5, %xmm11
-vpor %xmm13, %xmm15, %xmm5
-vpalignr $8, %xmm5, %xmm11, %xmm15
-vmovd %r11, %xmm4
-vpalignr $8, %xmm11, %xmm5, %xmm5
-vmovd %r14, %xmm11
-vpinsrq $1, %r13, %xmm11, %xmm13
-vpinsrq $1, %r15, %xmm4, %xmm11
-vpaddq %xmm5, %xmm6, %xmm6
-vpaddq %xmm13, %xmm10, %xmm10
-vpaddq %xmm15, %xmm10, %xmm10
-vpalignr $8, %xmm3, %xmm2, %xmm13
-vpxor %xmm10, %xmm13, %xmm8
-vmovd %rsi, %xmm13
-vpshufd $177, %xmm8, %xmm8
-vpalignr $8, %xmm2, %xmm3, %xmm3
-vpxor %xmm6, %xmm3, %xmm2
-vpaddq %xmm8, %xmm0, %xmm3
-vpaddq %xmm11, %xmm10, %xmm10
-vpxor %xmm3, %xmm15, %xmm0
-vpshufd $177, %xmm2, %xmm2
-vpshufb %xmm1, %xmm0, %xmm0
-vpaddq %xmm2, %xmm14, %xmm14
-vpxor %xmm14, %xmm5, %xmm5
-vpshufb %xmm1, %xmm5, %xmm15
-vpaddq %xmm0, %xmm10, %xmm5
-vpinsrq $1, %r9, %xmm13, %xmm10
-vpaddq %xmm10, %xmm6, %xmm6
-vpaddq %xmm15, %xmm6, %xmm13
-vpxor %xmm5, %xmm8, %xmm10
-vpxor %xmm13, %xmm2, %xmm8
-vpshufb %xmm12, %xmm10, %xmm4
-vpshufb %xmm12, %xmm8, %xmm6
-vpaddq %xmm4, %xmm3, %xmm8
-vpaddq %xmm6, %xmm14, %xmm2
-vpxor %xmm8, %xmm0, %xmm14
-vpxor %xmm2, %xmm15, %xmm15
-vpaddq %xmm14, %xmm14, %xmm0
-vpsrlq $63, %xmm14, %xmm3
-vpsrlq $63, %xmm15, %xmm14
-vpor %xmm0, %xmm3, %xmm10
-vpaddq %xmm15, %xmm15, %xmm3
-vpor %xmm3, %xmm14, %xmm0
-vpaddq %xmm7, %xmm5, %xmm14
-vpalignr $8, %xmm10, %xmm0, %xmm11
-vmovd %rax, %xmm5
-vpaddq %xmm11, %xmm14, %xmm7
-vpinsrq $1, %rcx, %xmm5, %xmm14
-vpalignr $8, %xmm0, %xmm10, %xmm15
-vpaddq %xmm9, %xmm7, %xmm3
-vmovd %rdi, %xmm9
-vpinsrq $1, %r8, %xmm9, %xmm10
-vpaddq %xmm14, %xmm13, %xmm13
-vpaddq %xmm15, %xmm13, %xmm5
-vpalignr $8, %xmm6, %xmm4, %xmm13
-vpalignr $8, %xmm4, %xmm6, %xmm4
-vpxor %xmm7, %xmm13, %xmm14
-vpxor %xmm5, %xmm4, %xmm6
-vpshufd $177, %xmm14, %xmm13
-vpshufd $177, %xmm6, %xmm14
-vpaddq %xmm13, %xmm2, %xmm6
-vpaddq %xmm14, %xmm8, %xmm4
-vpaddq %xmm10, %xmm5, %xmm5
-vpxor %xmm6, %xmm11, %xmm2
-vpxor %xmm4, %xmm15, %xmm8
-vpshufb %xmm1, %xmm2, %xmm2
-vpshufb %xmm1, %xmm8, %xmm8
-vpaddq %xmm2, %xmm3, %xmm7
-vpaddq %xmm8, %xmm5, %xmm5
-vpxor %xmm7, %xmm13, %xmm13
-vpxor %xmm5, %xmm14, %xmm14
-vpshufb %xmm12, %xmm13, %xmm13
-vpshufb %xmm12, %xmm14, %xmm14
-vpaddq %xmm13, %xmm6, %xmm10
-vpaddq %xmm14, %xmm4, %xmm0
-vpxor %xmm10, %xmm2, %xmm2
-vpxor %xmm0, %xmm8, %xmm8
-vpaddq %xmm2, %xmm2, %xmm6
-vpaddq %xmm8, %xmm8, %xmm15
-vpsrlq $63, %xmm2, %xmm4
-vpsrlq $63, %xmm8, %xmm11
-vpor %xmm6, %xmm4, %xmm3
-vpor %xmm15, %xmm11, %xmm9
-vpxor %xmm0, %xmm7, %xmm0
-vpxor 208(%rsp), %xmm0, %xmm7
-vpxor %xmm10, %xmm5, %xmm0
-vpalignr $8, %xmm9, %xmm3, %xmm4
-vpalignr $8, %xmm13, %xmm14, %xmm5
-vpalignr $8, %xmm3, %xmm9, %xmm3
-vpxor %xmm5, %xmm4, %xmm6
-vpalignr $8, %xmm14, %xmm13, %xmm8
-vpxor %xmm8, %xmm3, %xmm9
-vmovdqu %xmm7, 208(%rsp)
-vpxor 224(%rsp), %xmm0, %xmm2
-vpxor 256(%rsp), %xmm6, %xmm7
-vpxor 240(%rsp), %xmm9, %xmm10
-movq 296(%rsp), %rax
-movq 288(%rsp), %r8
-movq 280(%rsp), %rsi
-vmovdqu %xmm2, 224(%rsp)
-vmovdqu %xmm7, 256(%rsp)
-vmovdqu %xmm10, 240(%rsp)
-cmpq $128, %rdx
-ja blake2b_blocks_avx_L25
-blake2b_blocks_avx_L26:
-vmovdqu 240(%rsp), %xmm8
-vmovdqu 256(%rsp), %xmm7
-vmovdqu 224(%rsp), %xmm6
-vmovdqu 208(%rsp), %xmm5
-movq 128(%rsp), %rdi
-vmovdqu %xmm5, (%rdi)
-vmovdqu %xmm6, 16(%rdi)
-vmovdqu %xmm7, 32(%rdi)
-vmovdqu %xmm8, 48(%rdi)
-movq %r8, 64(%rdi)
-movq %rax, 72(%rdi)
-addq $344, %rsp
-popq %rbx
-popq %r15
-popq %r14
-popq %r13
-popq %r12
-movq %rbp, %rsp
-popq %rbp
-ret
-FN_END blake2b_blocks_avx \ No newline at end of file