-rw-r--r-- 3620 lib1305-20250415/crypto_onetimeauth/poly1305/amd64-maa44-g4/poly1305_keypowers_asm.h raw
#ifndef __POLY1305KEYPOWERSASM__ #define __POLY1305KEYPOWERSASM__ /* field arithmetic used for computing the key powers */ #define fe1305_tau_squaren(y) \ \ movq %r14,%rax; \ shlq $1,%r14; \ mulq %rax; \ movq %rax,%r8; \ movq %rdx,%r9; \ \ movq %r15,%rax; \ mulq %r14; \ movq %rax,%r10; \ movq %rdx,%r11; \ \ movq %r15,%rax; \ mulq %rax; \ movq %rax,%r12; \ movq %rdx,%r13; \ \ movq %rbx,%rax; \ imul $20,%rax,%rax; \ movq %rax,%rcx; \ shlq $1,%r15; \ mulq %r15; \ addq %rax,%r8; \ adcq %rdx,%r9; \ \ shld $20,%r8,%r9; \ \ movq %rbx,%rax; \ mulq %rcx; \ addq %rax,%r10; \ adcq %rdx,%r11; \ \ shld $20,%r10,%r11; \ \ movq %rbx,%rax; \ mulq %r14; \ addq %rax,%r12; \ adcq %rdx,%r13; \ \ shld $22,%r12,%r13; \ \ movq mask44(%rip),%rax; \ \ andq %rax,%r8; \ \ andq %rax,%r10; \ addq %r9,%r10; \ \ andq mask42(%rip),%r12; \ addq %r11,%r12; \ \ imul $5,%r13,%r13; \ addq %r13,%r8; \ \ movq %r8,%r14; \ shrq $44,%r8; \ addq %r10,%r8; \ andq %rax,%r14; \ \ movq %r8,%r15; \ shrq $44,%r8; \ addq %r12,%r8; \ andq %rax,%r15; \ \ movq %r8,%rbx; \ shrq $42,%r8; \ imul $5,%r8,%r8; \ addq %r8,%r14; \ andq mask42(%rip),%rbx; \ \ movq %r14,24*y+0(%rdi); \ movq %r15,24*y+8(%rdi); \ movq %rbx,24*y+16(%rdi); \ #define fe1305_mul_tau_taun(x,y) \ \ movq 24*x+0(%rdi),%r14; \ movq 24*x+8(%rdi),%r15; \ movq 24*x+16(%rdi),%rbx; \ \ movq 0(%rdi),%rax; \ mulq %r14; \ movq %rax,%r8; \ movq %rdx,%r9; \ \ movq 8(%rdi),%rax; \ imul $20,%rax,%rax; \ mulq %rbx; \ addq %rax,%r8; \ adcq %rdx,%r9; \ \ movq 16(%rdi),%rax; \ imul $20,%rax,%rax; \ movq %rax,%rbp; \ mulq %r15; \ addq %rax,%r8; \ adcq %rdx,%r9; \ \ shld $20,%r8,%r9; \ \ movq 0(%rdi),%rax; \ mulq %r15; \ movq %rax,%r10; \ movq %rdx,%r11; \ \ movq 8(%rdi),%rax; \ mulq %r14; \ addq %rax,%r10; \ adcq %rdx,%r11; \ \ movq %rbp,%rax; \ mulq %rbx; \ addq %rax,%r10; \ adcq %rdx,%r11; \ \ shld $20,%r10,%r11; \ \ movq 0(%rdi),%rax; \ mulq %rbx; \ movq %rax,%r12; \ movq %rdx,%r13; \ \ movq 8(%rdi),%rax; \ mulq %r15; \ addq %rax,%r12; \ adcq %rdx,%r13; \ \ movq 16(%rdi),%rax; \ mulq %r14; \ addq %rax,%r12; \ adcq %rdx,%r13; \ \ shld $22,%r12,%r13; \ \ movq mask44(%rip),%rax; \ \ andq %rax,%r8; \ \ andq %rax,%r10; \ addq %r9,%r10; \ \ andq mask42(%rip),%r12; \ addq %r11,%r12; \ \ imul $5,%r13,%r13; \ addq %r13,%r8; \ \ movq %r8,%rdx; \ shrq $44,%rdx; \ addq %r10,%rdx; \ andq %rax,%r8; \ \ movq %rdx,%r10; \ shrq $44,%rdx; \ addq %r12,%rdx; \ andq %rax,%r10; \ \ movq %rdx,%r12; \ shrq $42,%rdx; \ imul $5,%rdx,%rdx; \ addq %rdx,%r8; \ andq mask42(%rip),%r12; \ \ movq %r8,24*y+0(%rdi); \ movq %r10,24*y+8(%rdi); \ movq %r12,24*y+16(%rdi); \ #endif