You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
291 lines
5.0 KiB
291 lines
5.0 KiB
.text |
|
|
|
.type _mul_1x1,@function |
|
.align 16 |
|
_mul_1x1: |
|
subq $128+8,%rsp |
|
movq $-1,%r9 |
|
leaq (%rax,%rax,1),%rsi |
|
shrq $3,%r9 |
|
leaq (,%rax,4),%rdi |
|
andq %rax,%r9 |
|
leaq (,%rax,8),%r12 |
|
sarq $63,%rax |
|
leaq (%r9,%r9,1),%r10 |
|
sarq $63,%rsi |
|
leaq (,%r9,4),%r11 |
|
andq %rbp,%rax |
|
sarq $63,%rdi |
|
movq %rax,%rdx |
|
shlq $63,%rax |
|
andq %rbp,%rsi |
|
shrq $1,%rdx |
|
movq %rsi,%rcx |
|
shlq $62,%rsi |
|
andq %rbp,%rdi |
|
shrq $2,%rcx |
|
xorq %rsi,%rax |
|
movq %rdi,%rbx |
|
shlq $61,%rdi |
|
xorq %rcx,%rdx |
|
shrq $3,%rbx |
|
xorq %rdi,%rax |
|
xorq %rbx,%rdx |
|
|
|
movq %r9,%r13 |
|
movq $0,0(%rsp) |
|
xorq %r10,%r13 |
|
movq %r9,8(%rsp) |
|
movq %r11,%r14 |
|
movq %r10,16(%rsp) |
|
xorq %r12,%r14 |
|
movq %r13,24(%rsp) |
|
|
|
xorq %r11,%r9 |
|
movq %r11,32(%rsp) |
|
xorq %r11,%r10 |
|
movq %r9,40(%rsp) |
|
xorq %r11,%r13 |
|
movq %r10,48(%rsp) |
|
xorq %r14,%r9 |
|
movq %r13,56(%rsp) |
|
xorq %r14,%r10 |
|
|
|
movq %r12,64(%rsp) |
|
xorq %r14,%r13 |
|
movq %r9,72(%rsp) |
|
xorq %r11,%r9 |
|
movq %r10,80(%rsp) |
|
xorq %r11,%r10 |
|
movq %r13,88(%rsp) |
|
|
|
xorq %r11,%r13 |
|
movq %r14,96(%rsp) |
|
movq %r8,%rsi |
|
movq %r9,104(%rsp) |
|
andq %rbp,%rsi |
|
movq %r10,112(%rsp) |
|
shrq $4,%rbp |
|
movq %r13,120(%rsp) |
|
movq %r8,%rdi |
|
andq %rbp,%rdi |
|
shrq $4,%rbp |
|
|
|
movq (%rsp,%rsi,8),%xmm0 |
|
movq %r8,%rsi |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $4,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $60,%rbx |
|
xorq %rcx,%rax |
|
pslldq $1,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $12,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $52,%rbx |
|
xorq %rcx,%rax |
|
pslldq $2,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $20,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $44,%rbx |
|
xorq %rcx,%rax |
|
pslldq $3,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $28,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $36,%rbx |
|
xorq %rcx,%rax |
|
pslldq $4,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $36,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $28,%rbx |
|
xorq %rcx,%rax |
|
pslldq $5,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $44,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $20,%rbx |
|
xorq %rcx,%rax |
|
pslldq $6,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %r8,%rdi |
|
movq %rcx,%rbx |
|
shlq $52,%rcx |
|
andq %rbp,%rdi |
|
movq (%rsp,%rsi,8),%xmm1 |
|
shrq $12,%rbx |
|
xorq %rcx,%rax |
|
pslldq $7,%xmm1 |
|
movq %r8,%rsi |
|
shrq $4,%rbp |
|
xorq %rbx,%rdx |
|
andq %rbp,%rsi |
|
shrq $4,%rbp |
|
pxor %xmm1,%xmm0 |
|
movq (%rsp,%rdi,8),%rcx |
|
movq %rcx,%rbx |
|
shlq $60,%rcx |
|
.byte 102,72,15,126,198 |
|
shrq $4,%rbx |
|
xorq %rcx,%rax |
|
psrldq $8,%xmm0 |
|
xorq %rbx,%rdx |
|
.byte 102,72,15,126,199 |
|
xorq %rsi,%rax |
|
xorq %rdi,%rdx |
|
|
|
addq $128+8,%rsp |
|
.byte 0xf3,0xc3 |
|
.Lend_mul_1x1: |
|
.size _mul_1x1,.-_mul_1x1 |
|
|
|
.globl bn_GF2m_mul_2x2 |
|
.type bn_GF2m_mul_2x2,@function |
|
.align 16 |
|
bn_GF2m_mul_2x2: |
|
movq OPENSSL_ia32cap_P(%rip),%rax |
|
btq $33,%rax |
|
jnc .Lvanilla_mul_2x2 |
|
|
|
.byte 102,72,15,110,198 |
|
.byte 102,72,15,110,201 |
|
.byte 102,72,15,110,210 |
|
.byte 102,73,15,110,216 |
|
movdqa %xmm0,%xmm4 |
|
movdqa %xmm1,%xmm5 |
|
.byte 102,15,58,68,193,0 |
|
pxor %xmm2,%xmm4 |
|
pxor %xmm3,%xmm5 |
|
.byte 102,15,58,68,211,0 |
|
.byte 102,15,58,68,229,0 |
|
xorps %xmm0,%xmm4 |
|
xorps %xmm2,%xmm4 |
|
movdqa %xmm4,%xmm5 |
|
pslldq $8,%xmm4 |
|
psrldq $8,%xmm5 |
|
pxor %xmm4,%xmm2 |
|
pxor %xmm5,%xmm0 |
|
movdqu %xmm2,0(%rdi) |
|
movdqu %xmm0,16(%rdi) |
|
.byte 0xf3,0xc3 |
|
|
|
.align 16 |
|
.Lvanilla_mul_2x2: |
|
leaq -136(%rsp),%rsp |
|
movq %r14,80(%rsp) |
|
movq %r13,88(%rsp) |
|
movq %r12,96(%rsp) |
|
movq %rbp,104(%rsp) |
|
movq %rbx,112(%rsp) |
|
.Lbody_mul_2x2: |
|
movq %rdi,32(%rsp) |
|
movq %rsi,40(%rsp) |
|
movq %rdx,48(%rsp) |
|
movq %rcx,56(%rsp) |
|
movq %r8,64(%rsp) |
|
|
|
movq $15,%r8 |
|
movq %rsi,%rax |
|
movq %rcx,%rbp |
|
call _mul_1x1 |
|
movq %rax,16(%rsp) |
|
movq %rdx,24(%rsp) |
|
|
|
movq 48(%rsp),%rax |
|
movq 64(%rsp),%rbp |
|
call _mul_1x1 |
|
movq %rax,0(%rsp) |
|
movq %rdx,8(%rsp) |
|
|
|
movq 40(%rsp),%rax |
|
movq 56(%rsp),%rbp |
|
xorq 48(%rsp),%rax |
|
xorq 64(%rsp),%rbp |
|
call _mul_1x1 |
|
movq 0(%rsp),%rbx |
|
movq 8(%rsp),%rcx |
|
movq 16(%rsp),%rdi |
|
movq 24(%rsp),%rsi |
|
movq 32(%rsp),%rbp |
|
|
|
xorq %rdx,%rax |
|
xorq %rcx,%rdx |
|
xorq %rbx,%rax |
|
movq %rbx,0(%rbp) |
|
xorq %rdi,%rdx |
|
movq %rsi,24(%rbp) |
|
xorq %rsi,%rax |
|
xorq %rsi,%rdx |
|
xorq %rdx,%rax |
|
movq %rdx,16(%rbp) |
|
movq %rax,8(%rbp) |
|
|
|
movq 80(%rsp),%r14 |
|
movq 88(%rsp),%r13 |
|
movq 96(%rsp),%r12 |
|
movq 104(%rsp),%rbp |
|
movq 112(%rsp),%rbx |
|
leaq 136(%rsp),%rsp |
|
.byte 0xf3,0xc3 |
|
.Lend_mul_2x2: |
|
.size bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2 |
|
.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 |
|
.align 16
|
|
|