From 1b4072de538b9680663022c3bb5c0e9b6176fa14 Mon Sep 17 00:00:00 2001 From: Mike Hamburg Date: Thu, 22 Jan 2015 17:53:13 -0800 Subject: [PATCH] fix(?) perf regression in monty_aux_step --- src/ec_point.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/ec_point.c b/src/ec_point.c index bb552f8..1a61051 100644 --- a/src/ec_point.c +++ b/src/ec_point.c @@ -258,21 +258,23 @@ void montgomery_aux_step ( struct montgomery_aux_t* a ) { - field_add ( a->xs, a->xa, a->za ); - field_sub ( a->zs, a->xa, a->za ); - field_add ( a->xa, a->xd, a->zd ); - field_sub ( a->za, a->xd, a->zd ); + ANALYZE_THIS_ROUTINE_CAREFULLY; + field_add_nr ( a->xs, a->xa, a->za ); + field_subx_nr ( a->zs, a->xa, a->za ); + field_add_nr ( a->xa, a->xd, a->zd ); + field_subx_nr ( a->za, a->xd, a->zd ); field_mul ( a->xd, a->xa, a->zs ); field_mul ( a->zd, a->xs, a->za ); - field_add ( a->xs, a->xd, a->zd ); - field_sub ( a->zd, a->xd, a->zd ); + field_add_nr ( a->xs, a->xd, a->zd ); + field_subx_nr ( a->zd, a->xd, a->zd ); field_mul ( a->zs, a->zd, a->s0 ); field_sqr ( a->zd, a->xa ); field_sqr ( a->xa, a->za ); - field_sub ( a->za, a->zd, a->xa ); + field_subx_nr ( a->za, a->zd, a->xa ); + IF32( field_weak_reduce( a->za ) ); field_mul ( a->xd, a->xa, a->zd ); field_mulw_scc_wr ( a->zd, a->xa, 1-EDWARDS_D ); - field_add ( a->xa, a->za, a->zd ); + field_add_nr ( a->xa, a->za, a->zd ); field_mul ( a->zd, a->xa, a->za ); field_sqr ( a->xa, a->xs ); field_sqr ( a->za, a->zs );