aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcryptobox/poly1305/sse2.S
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-07-08 17:41:31 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-07-08 17:41:31 +0100
commit9026da71bb262886a275a3e24b1db51ab3395240 (patch)
tree6050f1a73472b3251b9fd18db7e8c96a7cca276c /src/libcryptobox/poly1305/sse2.S
parentc271eb36656a4ff88a9c8c1d59934949260275a3 (diff)
downloadrspamd-9026da71bb262886a275a3e24b1db51ab3395240.tar.gz
rspamd-9026da71bb262886a275a3e24b1db51ab3395240.zip
[Rework] Use libsodium instead of hand crafted crypto implementations
Diffstat (limited to 'src/libcryptobox/poly1305/sse2.S')
-rw-r--r--src/libcryptobox/poly1305/sse2.S969
1 files changed, 0 insertions, 969 deletions
diff --git a/src/libcryptobox/poly1305/sse2.S b/src/libcryptobox/poly1305/sse2.S
deleted file mode 100644
index 038961899..000000000
--- a/src/libcryptobox/poly1305/sse2.S
+++ /dev/null
@@ -1,969 +0,0 @@
-#include "../macro.S"
-#include "constants.S"
-
-SECTION_TEXT
-
-GLOBAL_HIDDEN_FN poly1305_block_size_sse2
-movl $32, %eax
-ret
-FN_END poly1305_block_size_sse2
-
-GLOBAL_HIDDEN_FN poly1305_init_ext_sse2
-poly1305_init_ext_sse2_local:
-pushq %r15
-xorps %xmm0, %xmm0
-testq %rdx, %rdx
-pushq %r14
-movq %rdx, %r11
-movq $-1, %rax
-cmove %rax, %r11
-pushq %r13
-movabsq $17575274610687, %r9
-pushq %r12
-pushq %rbp
-movq %r11, %r13
-movabsq $17592186044415, %rbp
-pushq %rbx
-xorl %ebx, %ebx
-movdqu %xmm0, 32(%rdi)
-movdqu %xmm0, (%rdi)
-movdqu %xmm0, 16(%rdi)
-movq 8(%rsi), %rcx
-movq (%rsi), %rax
-movq %rcx, %rdx
-shrq $24, %rcx
-andq %rax, %r9
-salq $20, %rdx
-shrq $44, %rax
-movq %r9, %r8
-orq %rax, %rdx
-shrq $26, %r8
-movabsq $17592181915647, %rax
-andq %rax, %rdx
-movabsq $68719475727, %rax
-andq %rax, %rcx
-movl %r9d, %eax
-andl $67108863, %eax
-movl %eax, 40(%rdi)
-movl %edx, %eax
-sall $18, %eax
-orl %r8d, %eax
-movq %rdx, %r8
-andl $67108863, %eax
-shrq $34, %r8
-movl %eax, 44(%rdi)
-movq %rdx, %rax
-shrq $8, %rax
-andl $67108863, %eax
-movl %eax, 48(%rdi)
-movl %ecx, %eax
-sall $10, %eax
-orl %r8d, %eax
-movq %rdi, %r8
-andl $67108863, %eax
-movl %eax, 52(%rdi)
-movq %rcx, %rax
-shrq $16, %rax
-movl %eax, 56(%rdi)
-movq 16(%rsi), %rax
-movq %rax, 104(%rdi)
-movq 24(%rsi), %rax
-movq %rdx, %rsi
-movq %rax, 112(%rdi)
-poly1305_init_ext_sse2_7:
-testq %rbx, %rbx
-jne poly1305_init_ext_sse2_4
-cmpq $16, %r13
-jbe poly1305_init_ext_sse2_5
-leaq 60(%r8), %rdi
-jmp poly1305_init_ext_sse2_6
-poly1305_init_ext_sse2_4:
-cmpq $96, %r13
-jb poly1305_init_ext_sse2_5
-leaq 80(%r8), %rdi
-poly1305_init_ext_sse2_6:
-imulq $20, %rcx, %r10
-movq $0, -48(%rsp)
-movq $0, -32(%rsp)
-leaq (%rsi,%rsi), %r14
-leaq (%r9,%r9), %r11
-movq %r10, %rax
-mulq %r14
-movq %rax, %r14
-movq %r9, %rax
-movq %rdx, %r15
-mulq %r9
-addq %rax, %r14
-movq %r14, %rax
-adcq %rdx, %r15
-leaq (%rcx,%rcx), %rdx
-andq %rbp, %rax
-movq %rax, -16(%rsp)
-movq %r11, %rax
-movq %rdx, -24(%rsp)
-mulq %rsi
-movq %rax, %r11
-movq %r10, %rax
-movq %rdx, %r12
-mulq %rcx
-movq -16(%rsp), %rcx
-addq %rax, %r11
-movq %r14, %rax
-adcq %rdx, %r12
-shrdq $44, %r15, %rax
-movq %rax, -56(%rsp)
-movq -24(%rsp), %rax
-addq -56(%rsp), %r11
-adcq -48(%rsp), %r12
-mulq %r9
-movq %r11, %r14
-andq %rbp, %r14
-movq %rax, %r9
-movq %rsi, %rax
-movq %rdx, %r10
-mulq %rsi
-addq %rax, %r9
-movq %r11, %rax
-adcq %rdx, %r10
-shrdq $44, %r12, %rax
-movq %rax, -40(%rsp)
-movabsq $4398046511103, %rax
-addq -40(%rsp), %r9
-adcq -32(%rsp), %r10
-andq %r9, %rax
-incq %rbx
-shrdq $42, %r10, %r9
-leaq (%r9,%r9,4), %r9
-addq %r9, %rcx
-movq %rcx, %r9
-shrq $44, %rcx
-addq %r14, %rcx
-andq %rbp, %r9
-movq %rcx, %rsi
-shrq $44, %rcx
-movq %r9, %rdx
-addq %rax, %rcx
-movl %r9d, %eax
-andq %rbp, %rsi
-andl $67108863, %eax
-shrq $26, %rdx
-movl %eax, (%rdi)
-movl %esi, %eax
-sall $18, %eax
-orl %edx, %eax
-movq %rsi, %rdx
-andl $67108863, %eax
-shrq $34, %rdx
-movl %eax, 4(%rdi)
-movq %rsi, %rax
-shrq $8, %rax
-andl $67108863, %eax
-movl %eax, 8(%rdi)
-movl %ecx, %eax
-sall $10, %eax
-orl %edx, %eax
-andl $67108863, %eax
-movl %eax, 12(%rdi)
-movq %rcx, %rax
-shrq $16, %rax
-cmpq $2, %rbx
-movl %eax, 16(%rdi)
-jne poly1305_init_ext_sse2_7
-poly1305_init_ext_sse2_5:
-movq $0, 120(%r8)
-popq %rbx
-popq %rbp
-popq %r12
-popq %r13
-popq %r14
-popq %r15
-ret
-FN_END poly1305_init_ext_sse2
-
-
-GLOBAL_HIDDEN_FN poly1305_blocks_sse2
-poly1305_blocks_sse2_local:
-pushq %rbp
-movq %rsp, %rbp
-pushq %rbx
-andq $-64, %rsp
-subq $328, %rsp
-movq $(1 << 24), %rax
-movd %rax, %xmm1
-movq $((1 << 26) - 1), %rax
-movd %rax, %xmm0
-pshufd $68, %xmm1, %xmm1
-pshufd $68, %xmm0, %xmm0
-movq 120(%rdi), %rax
-movaps %xmm1, 312(%rsp)
-testb $4, %al
-je poly1305_blocks_sse2_11
-movaps 312(%rsp), %xmm1
-psrldq $8, %xmm1
-movaps %xmm1, 312(%rsp)
-poly1305_blocks_sse2_11:
-testb $8, %al
-je poly1305_blocks_sse2_12
-xorps %xmm1, %xmm1
-movaps %xmm1, 312(%rsp)
-poly1305_blocks_sse2_12:
-testb $1, %al
-jne poly1305_blocks_sse2_13
-movq 16(%rsi), %xmm1
-movaps %xmm0, %xmm3
-movaps %xmm0, %xmm9
-movq (%rsi), %xmm15
-orq $1, %rax
-subq $32, %rdx
-movq 8(%rsi), %xmm12
-punpcklqdq %xmm1, %xmm15
-movq 24(%rsi), %xmm1
-movaps %xmm15, %xmm8
-pand %xmm15, %xmm3
-psrlq $52, %xmm15
-addq $32, %rsi
-punpcklqdq %xmm1, %xmm12
-movaps %xmm12, %xmm1
-psrlq $26, %xmm8
-psllq $12, %xmm1
-pand %xmm0, %xmm8
-movq %rax, 120(%rdi)
-por %xmm1, %xmm15
-psrlq $40, %xmm12
-pand %xmm15, %xmm9
-por 312(%rsp), %xmm12
-psrlq $26, %xmm15
-pand %xmm0, %xmm15
-jmp poly1305_blocks_sse2_14
-poly1305_blocks_sse2_13:
-movdqu (%rdi), %xmm8
-movdqu 16(%rdi), %xmm15
-movdqu 32(%rdi), %xmm12
-pshufd $80, %xmm8, %xmm3
-pshufd $250, %xmm8, %xmm8
-pshufd $80, %xmm15, %xmm9
-pshufd $250, %xmm15, %xmm15
-pshufd $80, %xmm12, %xmm12
-poly1305_blocks_sse2_14:
-movq 120(%rdi), %rax
-testb $48, %al
-je poly1305_blocks_sse2_15
-testb $16, %al
-movd 56(%rdi), %xmm2
-leaq 40(%rdi), %rax
-je poly1305_blocks_sse2_16
-movdqu 60(%rdi), %xmm1
-movdqu (%rax), %xmm4
-movd %xmm2, %eax
-movd 76(%rdi), %xmm2
-movaps %xmm1, %xmm7
-movd %eax, %xmm5
-punpckldq %xmm4, %xmm7
-punpckhdq %xmm4, %xmm1
-punpcklqdq %xmm5, %xmm2
-jmp poly1305_blocks_sse2_17
-poly1305_blocks_sse2_16:
-movdqu (%rax), %xmm1
-movl $1, %r8d
-movd %r8d, %xmm4
-movaps %xmm1, %xmm7
-punpckldq %xmm4, %xmm7
-punpckhdq %xmm4, %xmm1
-poly1305_blocks_sse2_17:
-pshufd $80, %xmm7, %xmm11
-pshufd $80, %xmm1, %xmm4
-pshufd $250, %xmm7, %xmm7
-movaps %xmm11, 168(%rsp)
-pshufd $250, %xmm1, %xmm1
-jmp poly1305_blocks_sse2_18
-poly1305_blocks_sse2_15:
-movdqu 60(%rdi), %xmm1
-movd 76(%rdi), %xmm2
-pshufd $0, %xmm2, %xmm2
-pshufd $0, %xmm1, %xmm11
-pshufd $85, %xmm1, %xmm7
-pshufd $170, %xmm1, %xmm4
-movaps %xmm11, 168(%rsp)
-pshufd $255, %xmm1, %xmm1
-poly1305_blocks_sse2_18:
-movaps %xmm1, %xmm14
-movaps %xmm7, %xmm5
-movaps %xmm4, %xmm13
-movaps %xmm1, 264(%rsp)
-movaps %xmm2, %xmm1
-cmpq $63, %rdx
-movq $(5), %r8
-movd %r8, %xmm6
-pshufd $68, %xmm6, %xmm6
-pmuludq %xmm6, %xmm5
-movaps %xmm4, 296(%rsp)
-pmuludq %xmm6, %xmm13
-movaps %xmm2, 152(%rsp)
-pmuludq %xmm6, %xmm14
-pmuludq %xmm6, %xmm1
-movaps %xmm5, 88(%rsp)
-movaps %xmm13, 72(%rsp)
-movaps %xmm14, 56(%rsp)
-movaps %xmm1, 40(%rsp)
-jbe poly1305_blocks_sse2_19
-movdqu 80(%rdi), %xmm1
-movd 96(%rdi), %xmm2
-movq %rdx, %rcx
-pshufd $0, %xmm2, %xmm2
-movaps %xmm2, 24(%rsp)
-pmuludq %xmm6, %xmm2
-pshufd $85, %xmm1, %xmm4
-movaps %xmm4, 280(%rsp)
-pmuludq %xmm6, %xmm4
-pshufd $255, %xmm1, %xmm13
-pshufd $170, %xmm1, %xmm5
-movaps 72(%rsp), %xmm14
-movaps %xmm5, 216(%rsp)
-pmuludq %xmm6, %xmm5
-movq %rsi, %rax
-movaps %xmm4, -24(%rsp)
-movaps %xmm13, %xmm4
-pshufd $0, %xmm1, %xmm1
-pmuludq %xmm6, %xmm4
-movaps %xmm14, -8(%rsp)
-movaps %xmm5, 8(%rsp)
-movaps 168(%rsp), %xmm5
-movaps %xmm1, 248(%rsp)
-movaps 56(%rsp), %xmm1
-movaps %xmm4, 120(%rsp)
-movaps 40(%rsp), %xmm4
-movaps %xmm13, 136(%rsp)
-movaps %xmm2, 200(%rsp)
-movaps %xmm1, 104(%rsp)
-movaps %xmm4, 184(%rsp)
-movaps %xmm5, 232(%rsp)
-jmp poly1305_blocks_sse2_20
-.p2align 6
-poly1305_blocks_sse2_20:
-movaps -24(%rsp), %xmm5
-movaps %xmm8, %xmm13
-subq $64, %rcx
-movaps 8(%rsp), %xmm4
-movaps 120(%rsp), %xmm10
-pmuludq %xmm12, %xmm5
-pmuludq %xmm15, %xmm4
-movaps 8(%rsp), %xmm2
-pmuludq %xmm9, %xmm10
-movaps 120(%rsp), %xmm11
-movaps 200(%rsp), %xmm14
-pmuludq %xmm12, %xmm2
-paddq %xmm4, %xmm5
-pmuludq %xmm15, %xmm11
-movaps 120(%rsp), %xmm1
-paddq %xmm10, %xmm5
-pmuludq %xmm8, %xmm14
-movaps 200(%rsp), %xmm10
-movaps 200(%rsp), %xmm4
-pmuludq %xmm12, %xmm1
-movaps 248(%rsp), %xmm8
-pmuludq %xmm15, %xmm10
-paddq %xmm11, %xmm2
-pmuludq %xmm12, %xmm4
-paddq %xmm14, %xmm5
-movaps 200(%rsp), %xmm11
-movaps 248(%rsp), %xmm14
-pmuludq %xmm15, %xmm8
-pmuludq 248(%rsp), %xmm12
-pmuludq %xmm9, %xmm11
-paddq %xmm10, %xmm1
-movaps 248(%rsp), %xmm10
-pmuludq 280(%rsp), %xmm15
-pmuludq %xmm3, %xmm14
-paddq %xmm15, %xmm12
-paddq %xmm8, %xmm4
-pmuludq %xmm13, %xmm10
-movq 24(%rax), %xmm15
-movaps 248(%rsp), %xmm8
-paddq %xmm11, %xmm2
-movaps %xmm3, %xmm11
-movaps 280(%rsp), %xmm3
-paddq %xmm14, %xmm5
-pmuludq %xmm9, %xmm8
-paddq %xmm10, %xmm2
-movq 16(%rax), %xmm14
-movaps 280(%rsp), %xmm10
-pmuludq %xmm9, %xmm3
-pmuludq 216(%rsp), %xmm9
-paddq %xmm9, %xmm12
-paddq %xmm8, %xmm1
-movq (%rax), %xmm8
-pmuludq %xmm11, %xmm10
-paddq %xmm3, %xmm4
-movaps 216(%rsp), %xmm3
-punpcklqdq %xmm14, %xmm8
-movaps 280(%rsp), %xmm14
-pmuludq %xmm13, %xmm3
-paddq %xmm10, %xmm2
-movq 8(%rax), %xmm10
-pmuludq %xmm13, %xmm14
-pmuludq 136(%rsp), %xmm13
-paddq %xmm13, %xmm12
-punpcklqdq %xmm15, %xmm10
-movaps %xmm10, %xmm9
-movaps 216(%rsp), %xmm15
-paddq %xmm3, %xmm4
-psllq $12, %xmm9
-movaps %xmm0, %xmm3
-paddq %xmm14, %xmm1
-pmuludq %xmm11, %xmm15
-pand %xmm8, %xmm3
-movaps 136(%rsp), %xmm14
-movaps %xmm3, -40(%rsp)
-movaps %xmm8, %xmm3
-movdqu 48(%rax), %xmm13
-psrlq $52, %xmm8
-pmuludq %xmm11, %xmm14
-paddq %xmm15, %xmm1
-por %xmm9, %xmm8
-pmuludq 24(%rsp), %xmm11
-paddq %xmm11, %xmm12
-movdqu 32(%rax), %xmm11
-movaps %xmm10, %xmm9
-psrlq $40, %xmm10
-pand %xmm0, %xmm8
-movaps %xmm11, %xmm15
-paddq %xmm14, %xmm4
-xorps %xmm14, %xmm14
-punpckldq %xmm13, %xmm15
-psrlq $14, %xmm9
-addq $64, %rax
-pand %xmm0, %xmm9
-psrlq $26, %xmm3
-cmpq $63, %rcx
-por 312(%rsp), %xmm10
-movaps %xmm13, -72(%rsp)
-movaps %xmm15, %xmm13
-punpckldq %xmm14, %xmm13
-punpckhdq -72(%rsp), %xmm11
-movaps %xmm13, -56(%rsp)
-movaps %xmm11, %xmm13
-punpckhdq %xmm14, %xmm11
-pand %xmm0, %xmm3
-psllq $18, %xmm11
-punpckhdq %xmm14, %xmm15
-punpckldq %xmm14, %xmm13
-paddq %xmm11, %xmm4
-movaps -8(%rsp), %xmm11
-psllq $6, %xmm15
-psllq $12, %xmm13
-movaps 88(%rsp), %xmm14
-paddq %xmm15, %xmm2
-pmuludq %xmm10, %xmm11
-paddq %xmm13, %xmm1
-movaps -8(%rsp), %xmm13
-pmuludq %xmm10, %xmm14
-paddq -56(%rsp), %xmm5
-paddq 312(%rsp), %xmm12
-pmuludq %xmm9, %xmm13
-movaps 104(%rsp), %xmm15
-paddq %xmm11, %xmm2
-movaps 184(%rsp), %xmm11
-paddq %xmm14, %xmm5
-movaps 104(%rsp), %xmm14
-pmuludq %xmm9, %xmm15
-pmuludq %xmm10, %xmm11
-paddq %xmm13, %xmm5
-movaps 104(%rsp), %xmm13
-pmuludq %xmm10, %xmm14
-pmuludq 232(%rsp), %xmm10
-paddq %xmm10, %xmm12
-pmuludq %xmm8, %xmm13
-paddq %xmm15, %xmm2
-movaps %xmm8, %xmm10
-paddq %xmm11, %xmm4
-pmuludq %xmm7, %xmm10
-movaps 232(%rsp), %xmm11
-movaps 184(%rsp), %xmm15
-paddq %xmm14, %xmm1
-pmuludq %xmm9, %xmm11
-paddq %xmm13, %xmm5
-movaps 184(%rsp), %xmm13
-movaps 184(%rsp), %xmm14
-pmuludq %xmm3, %xmm15
-pmuludq %xmm9, %xmm13
-paddq %xmm11, %xmm4
-pmuludq %xmm8, %xmm14
-movaps 232(%rsp), %xmm11
-paddq %xmm10, %xmm4
-paddq %xmm15, %xmm5
-pmuludq %xmm7, %xmm9
-pmuludq %xmm8, %xmm11
-paddq %xmm13, %xmm1
-movaps 232(%rsp), %xmm13
-movaps 296(%rsp), %xmm10
-paddq %xmm14, %xmm2
-pmuludq 296(%rsp), %xmm8
-movaps -40(%rsp), %xmm14
-pmuludq %xmm3, %xmm13
-paddq %xmm9, %xmm12
-paddq %xmm11, %xmm1
-movaps %xmm3, %xmm11
-paddq %xmm8, %xmm12
-movaps 232(%rsp), %xmm15
-pmuludq %xmm7, %xmm11
-pmuludq %xmm3, %xmm10
-paddq %xmm13, %xmm2
-movaps %xmm14, %xmm13
-movaps 296(%rsp), %xmm9
-pmuludq %xmm14, %xmm15
-pmuludq 264(%rsp), %xmm3
-paddq %xmm11, %xmm1
-pmuludq %xmm7, %xmm13
-paddq %xmm3, %xmm12
-movaps 264(%rsp), %xmm11
-paddq %xmm10, %xmm4
-pmuludq %xmm14, %xmm9
-paddq %xmm15, %xmm5
-pmuludq %xmm14, %xmm11
-movaps %xmm5, %xmm8
-paddq %xmm13, %xmm2
-psrlq $26, %xmm8
-paddq %xmm9, %xmm1
-pand %xmm0, %xmm5
-pmuludq 152(%rsp), %xmm14
-paddq %xmm14, %xmm12
-paddq %xmm8, %xmm2
-paddq %xmm11, %xmm4
-movaps %xmm2, %xmm9
-movaps %xmm2, %xmm8
-movaps %xmm4, %xmm3
-psrlq $26, %xmm9
-pand %xmm0, %xmm4
-psrlq $26, %xmm3
-paddq %xmm9, %xmm1
-pand %xmm0, %xmm8
-paddq %xmm3, %xmm12
-movaps %xmm1, %xmm10
-movaps %xmm1, %xmm9
-movaps %xmm12, %xmm3
-psrlq $26, %xmm10
-pand %xmm0, %xmm12
-psrlq $26, %xmm3
-paddq %xmm10, %xmm4
-pand %xmm0, %xmm9
-pmuludq %xmm6, %xmm3
-movaps %xmm4, %xmm1
-movaps %xmm4, %xmm15
-psrlq $26, %xmm1
-pand %xmm0, %xmm15
-paddq %xmm1, %xmm12
-paddq %xmm3, %xmm5
-movaps %xmm5, %xmm2
-movaps %xmm5, %xmm3
-psrlq $26, %xmm2
-pand %xmm0, %xmm3
-paddq %xmm2, %xmm8
-ja poly1305_blocks_sse2_20
-leaq -64(%rdx), %rax
-andl $63, %edx
-andq $-64, %rax
-leaq 64(%rsi,%rax), %rsi
-poly1305_blocks_sse2_19:
-cmpq $31, %rdx
-jbe poly1305_blocks_sse2_21
-movaps 56(%rsp), %xmm11
-movaps %xmm15, %xmm1
-movaps %xmm15, %xmm14
-movaps 72(%rsp), %xmm5
-movaps %xmm12, %xmm4
-movaps %xmm15, %xmm10
-movaps 88(%rsp), %xmm2
-pmuludq %xmm11, %xmm14
-movaps %xmm8, %xmm15
-pmuludq %xmm5, %xmm1
-movaps 40(%rsp), %xmm13
-testq %rsi, %rsi
-pmuludq %xmm12, %xmm2
-pmuludq %xmm12, %xmm5
-pmuludq %xmm11, %xmm4
-paddq %xmm1, %xmm2
-pmuludq %xmm9, %xmm11
-movaps %xmm12, %xmm1
-paddq %xmm14, %xmm5
-pmuludq %xmm13, %xmm15
-movaps %xmm9, %xmm14
-pmuludq %xmm13, %xmm14
-pmuludq %xmm13, %xmm1
-paddq %xmm11, %xmm2
-movaps 168(%rsp), %xmm11
-pmuludq %xmm10, %xmm13
-paddq %xmm15, %xmm2
-movaps %xmm9, %xmm15
-paddq %xmm14, %xmm5
-pmuludq %xmm11, %xmm12
-movaps %xmm3, %xmm14
-pmuludq %xmm11, %xmm14
-movaps %xmm13, 248(%rsp)
-movaps %xmm10, %xmm13
-pmuludq %xmm7, %xmm15
-paddq 248(%rsp), %xmm4
-pmuludq %xmm11, %xmm13
-pmuludq %xmm7, %xmm10
-paddq %xmm14, %xmm2
-movaps %xmm13, 280(%rsp)
-movaps %xmm8, %xmm13
-pmuludq %xmm11, %xmm13
-paddq %xmm10, %xmm12
-movaps 296(%rsp), %xmm10
-paddq 280(%rsp), %xmm1
-pmuludq %xmm9, %xmm11
-pmuludq 296(%rsp), %xmm9
-pmuludq %xmm3, %xmm10
-paddq %xmm9, %xmm12
-paddq %xmm13, %xmm5
-movaps %xmm3, %xmm13
-paddq %xmm15, %xmm1
-pmuludq %xmm7, %xmm13
-paddq %xmm11, %xmm4
-movaps 296(%rsp), %xmm11
-pmuludq %xmm8, %xmm7
-pmuludq %xmm8, %xmm11
-pmuludq 264(%rsp), %xmm8
-paddq %xmm8, %xmm12
-paddq %xmm13, %xmm5
-paddq %xmm7, %xmm4
-movaps 264(%rsp), %xmm7
-paddq %xmm11, %xmm1
-paddq %xmm10, %xmm4
-pmuludq %xmm3, %xmm7
-pmuludq 152(%rsp), %xmm3
-paddq %xmm3, %xmm12
-paddq %xmm7, %xmm1
-je poly1305_blocks_sse2_22
-movdqu (%rsi), %xmm7
-xorps %xmm3, %xmm3
-paddq 312(%rsp), %xmm12
-movdqu 16(%rsi), %xmm8
-movaps %xmm7, %xmm9
-punpckldq %xmm8, %xmm9
-punpckhdq %xmm8, %xmm7
-movaps %xmm9, %xmm10
-movaps %xmm7, %xmm8
-punpckldq %xmm3, %xmm10
-punpckhdq %xmm3, %xmm9
-punpckhdq %xmm3, %xmm7
-punpckldq %xmm3, %xmm8
-movaps %xmm8, %xmm3
-psllq $6, %xmm9
-paddq %xmm10, %xmm2
-psllq $12, %xmm3
-paddq %xmm9, %xmm5
-psllq $18, %xmm7
-paddq %xmm3, %xmm4
-paddq %xmm7, %xmm1
-poly1305_blocks_sse2_22:
-movaps %xmm2, %xmm8
-movaps %xmm1, %xmm3
-movaps %xmm1, %xmm15
-psrlq $26, %xmm8
-pand %xmm0, %xmm2
-pand %xmm0, %xmm15
-psrlq $26, %xmm3
-paddq %xmm5, %xmm8
-paddq %xmm12, %xmm3
-movaps %xmm8, %xmm9
-pand %xmm0, %xmm8
-movaps %xmm3, %xmm1
-psrlq $26, %xmm9
-movaps %xmm3, %xmm12
-psrlq $26, %xmm1
-paddq %xmm4, %xmm9
-pand %xmm0, %xmm12
-pmuludq %xmm1, %xmm6
-movaps %xmm9, %xmm3
-pand %xmm0, %xmm9
-psrlq $26, %xmm3
-paddq %xmm3, %xmm15
-paddq %xmm6, %xmm2
-movaps %xmm15, %xmm3
-pand %xmm0, %xmm15
-movaps %xmm2, %xmm1
-psrlq $26, %xmm3
-psrlq $26, %xmm1
-paddq %xmm3, %xmm12
-movaps %xmm0, %xmm3
-paddq %xmm1, %xmm8
-pand %xmm2, %xmm3
-poly1305_blocks_sse2_21:
-testq %rsi, %rsi
-je poly1305_blocks_sse2_23
-pshufd $8, %xmm3, %xmm3
-pshufd $8, %xmm8, %xmm8
-pshufd $8, %xmm9, %xmm9
-pshufd $8, %xmm15, %xmm15
-pshufd $8, %xmm12, %xmm12
-punpcklqdq %xmm8, %xmm3
-punpcklqdq %xmm15, %xmm9
-movdqu %xmm3, (%rdi)
-movdqu %xmm9, 16(%rdi)
-movq %xmm12, 32(%rdi)
-jmp poly1305_blocks_sse2_10
-poly1305_blocks_sse2_23:
-movaps %xmm3, %xmm0
-movaps %xmm8, %xmm4
-movaps %xmm9, %xmm2
-psrldq $8, %xmm0
-movaps %xmm15, %xmm10
-paddq %xmm0, %xmm3
-psrldq $8, %xmm4
-movaps %xmm12, %xmm0
-movd %xmm3, %edx
-paddq %xmm4, %xmm8
-psrldq $8, %xmm2
-movl %edx, %ecx
-movd %xmm8, %eax
-paddq %xmm2, %xmm9
-shrl $26, %ecx
-psrldq $8, %xmm10
-andl $67108863, %edx
-addl %ecx, %eax
-movd %xmm9, %ecx
-paddq %xmm10, %xmm15
-movl %eax, %r9d
-shrl $26, %eax
-psrldq $8, %xmm0
-addl %ecx, %eax
-movd %xmm15, %ecx
-paddq %xmm0, %xmm12
-movl %eax, %esi
-andl $67108863, %r9d
-movd %xmm12, %r10d
-shrl $26, %esi
-andl $67108863, %eax
-addl %ecx, %esi
-salq $8, %rax
-movl %r9d, %ecx
-shrl $18, %r9d
-movl %esi, %r8d
-shrl $26, %esi
-andl $67108863, %r8d
-addl %r10d, %esi
-orq %r9, %rax
-salq $16, %rsi
-movq %r8, %r9
-shrl $10, %r8d
-salq $26, %rcx
-orq %r8, %rsi
-salq $34, %r9
-orq %rdx, %rcx
-movq %rsi, %r11
-shrq $42, %rsi
-movabsq $17592186044415, %rdx
-orq %r9, %rax
-movabsq $4398046511103, %r8
-andq %rdx, %rcx
-andq %rdx, %rax
-andq %r8, %r11
-leaq (%rsi,%rsi,4), %rsi
-addq %rsi, %rcx
-movq %rcx, %r10
-shrq $44, %rcx
-addq %rcx, %rax
-andq %rdx, %r10
-movq %rax, %r9
-shrq $44, %rax
-addq %r11, %rax
-andq %rdx, %r9
-movabsq $-4398046511104, %r11
-movq %rax, %rcx
-andq %r8, %rcx
-shrq $42, %rax
-leaq (%rax,%rax,4), %rsi
-addq %rcx, %r11
-addq %r10, %rsi
-movq %rsi, %r8
-shrq $44, %rsi
-andq %rdx, %r8
-addq %r9, %rsi
-leaq 5(%r8), %r9
-movq %r9, %rbx
-andq %rdx, %r9
-shrq $44, %rbx
-addq %rsi, %rbx
-movq %rbx, %rax
-andq %rbx, %rdx
-shrq $44, %rax
-addq %rax, %r11
-movq %r11, %rax
-shrq $63, %rax
-decq %rax
-movq %rax, %r10
-andq %rax, %r9
-andq %rax, %rdx
-notq %r10
-andq %r11, %rax
-andq %r10, %r8
-andq %r10, %rsi
-andq %r10, %rcx
-orq %r9, %r8
-orq %rdx, %rsi
-orq %rax, %rcx
-movq %r8, (%rdi)
-movq %rsi, 8(%rdi)
-movq %rcx, 16(%rdi)
-poly1305_blocks_sse2_10:
-movq -8(%rbp), %rbx
-leave
-ret
-FN_END poly1305_blocks_sse2
-
-GLOBAL_HIDDEN_FN poly1305_finish_ext_sse2
-poly1305_finish_ext_sse2_local:
-pushq %r12
-movq %rcx, %r12
-pushq %rbp
-movq %rdx, %rbp
-pushq %rbx
-movq %rdi, %rbx
-subq $32, %rsp
-testq %rdx, %rdx
-je poly1305_finish_ext_sse2_27
-xorl %eax, %eax
-movq %rsp, %rdi
-movl $8, %ecx
-rep stosl
-subq %rsp, %rsi
-testb $16, %dl
-movq %rsp, %rax
-je poly1305_finish_ext_sse2_28
-movdqu (%rsp,%rsi), %xmm0
-addq $16, %rax
-movaps %xmm0, (%rsp)
-poly1305_finish_ext_sse2_28:
-testb $8, %bpl
-je poly1305_finish_ext_sse2_29
-movq (%rax,%rsi), %rdx
-movq %rdx, (%rax)
-addq $8, %rax
-poly1305_finish_ext_sse2_29:
-testb $4, %bpl
-je poly1305_finish_ext_sse2_30
-movl (%rax,%rsi), %edx
-movl %edx, (%rax)
-addq $4, %rax
-poly1305_finish_ext_sse2_30:
-testb $2, %bpl
-je poly1305_finish_ext_sse2_31
-movw (%rax,%rsi), %dx
-movw %dx, (%rax)
-addq $2, %rax
-poly1305_finish_ext_sse2_31:
-testb $1, %bpl
-je poly1305_finish_ext_sse2_32
-movb (%rax,%rsi), %dl
-movb %dl, (%rax)
-poly1305_finish_ext_sse2_32:
-cmpq $16, %rbp
-je poly1305_finish_ext_sse2_33
-movb $1, (%rsp,%rbp)
-poly1305_finish_ext_sse2_33:
-cmpq $16, %rbp
-movl $32, %edx
-movq %rsp, %rsi
-sbbq %rax, %rax
-movq %rbx, %rdi
-andl $4, %eax
-addq $4, %rax
-orq %rax, 120(%rbx)
-call poly1305_blocks_sse2_local
-poly1305_finish_ext_sse2_27:
-movq 120(%rbx), %rax
-testb $1, %al
-je poly1305_finish_ext_sse2_35
-decq %rbp
-cmpq $15, %rbp
-jbe poly1305_finish_ext_sse2_36
-orq $16, %rax
-jmp poly1305_finish_ext_sse2_40
-poly1305_finish_ext_sse2_36:
-orq $32, %rax
-poly1305_finish_ext_sse2_40:
-movq %rax, 120(%rbx)
-movl $32, %edx
-xorl %esi, %esi
-movq %rbx, %rdi
-call poly1305_blocks_sse2_local
-poly1305_finish_ext_sse2_35:
-movq 8(%rbx), %rax
-movq 112(%rbx), %rsi
-movq %rax, %rdx
-movq %rax, %rcx
-movq 16(%rbx), %rax
-shrq $20, %rcx
-salq $44, %rdx
-orq (%rbx), %rdx
-salq $24, %rax
-orq %rcx, %rax
-movq 104(%rbx), %rcx
-addq %rcx, %rdx
-adcq %rsi, %rax
-xorps %xmm0, %xmm0
-movdqu %xmm0, (%rbx)
-movdqu %xmm0, 16(%rbx)
-movdqu %xmm0, 32(%rbx)
-movdqu %xmm0, 48(%rbx)
-movdqu %xmm0, 64(%rbx)
-movdqu %xmm0, 80(%rbx)
-movdqu %xmm0, 96(%rbx)
-movdqu %xmm0, 112(%rbx)
-movq %rdx, (%r12)
-movq %rax, 8(%r12)
-addq $32, %rsp
-popq %rbx
-popq %rbp
-popq %r12
-ret
-FN_END poly1305_finish_ext_sse2
-
-GLOBAL_HIDDEN_FN poly1305_auth_sse2
-/*
-cmpq $128, %rdx
-jb poly1305_auth_x86_local
-*/
-pushq %rbp
-movq %rsp, %rbp
-pushq %r14
-pushq %r13
-movq %rdi, %r13
-pushq %r12
-movq %rsi, %r12
-movq %rcx, %rsi
-pushq %rbx
-movq %rdx, %rbx
-andq $-64, %rsp
-movq %rbx, %r14
-addq $-128, %rsp
-movq %rsp, %rdi
-call poly1305_init_ext_sse2_local
-andq $-32, %r14
-je poly1305_auth_sse2_42
-movq %r12, %rsi
-movq %r14, %rdx
-movq %rsp, %rdi
-call poly1305_blocks_sse2_local
-addq %r14, %r12
-subq %r14, %rbx
-poly1305_auth_sse2_42:
-movq %r13, %rcx
-movq %rbx, %rdx
-movq %r12, %rsi
-movq %rsp, %rdi
-call poly1305_finish_ext_sse2_local
-leaq -32(%rbp), %rsp
-popq %rbx
-popq %r12
-popq %r13
-popq %r14
-popq %rbp
-ret
-FN_END poly1305_auth_sse2
-
-
-
-
-