Redo reduce and muladd to be cleaner

This commit is contained in:
Sean Parkinson 2017-11-27 14:59:01 +10:00
parent f2b8ffa919
commit 29943dc352
3 changed files with 785 additions and 595 deletions

View File

@ -283,7 +283,6 @@ void fe_sub(fe r, const fe a, const fe b)
{
__asm__ __volatile__ (
"movq $0x7fffffffffffffff, %%rcx\n\t"
"xorq %%r10, %%r10\n\t"
"movq $-19, %%r11\n\t"
"movq 0(%[a]), %%rax\n\t"
"movq 8(%[a]), %%rdx\n\t"
@ -292,6 +291,7 @@ void fe_sub(fe r, const fe a, const fe b)
"sbbq 8(%[b]), %%rdx\n\t"
"movq 24(%[a]), %%r9\n\t"
"sbbq 16(%[b]), %%r8\n\t"
"movq $0, %%r10\n\t"
"sbbq 24(%[b]), %%r9\n\t"
"sbbq $0, %%r10\n\t"
"# Mask the modulus\n\t"

File diff suppressed because it is too large Load Diff

View File

@ -104,21 +104,6 @@ typedef struct {
ge T2d;
} ge_cached;
WOLFSSL_LOCAL void ge_p2_0(ge_p2 *);
WOLFSSL_LOCAL void ge_p3_0(ge_p3 *);
WOLFSSL_LOCAL void ge_precomp_0(ge_precomp *);
WOLFSSL_LOCAL void ge_p3_to_p2(ge_p2 *,const ge_p3 *);
WOLFSSL_LOCAL void ge_p3_to_cached(ge_cached *,const ge_p3 *);
WOLFSSL_LOCAL void ge_p1p1_to_p2(ge_p2 *,const ge_p1p1 *);
WOLFSSL_LOCAL void ge_p1p1_to_p3(ge_p3 *,const ge_p1p1 *);
WOLFSSL_LOCAL void ge_p2_dbl(ge_p1p1 *,const ge_p2 *);
WOLFSSL_LOCAL void ge_p3_dbl(ge_p1p1 *,const ge_p3 *);
WOLFSSL_LOCAL void ge_madd(ge_p1p1 *,const ge_p3 *,const ge_precomp *);
WOLFSSL_LOCAL void ge_msub(ge_p1p1 *,const ge_p3 *,const ge_precomp *);
WOLFSSL_LOCAL void ge_add(ge_p1p1 *,const ge_p3 *,const ge_cached *);
WOLFSSL_LOCAL void ge_sub(ge_p1p1 *,const ge_p3 *,const ge_cached *);
#endif /* !ED25519_SMALL */
#endif /* HAVE_ED25519 */