ref: a6d59b9ccf8fa8d539093a6f841a2b8b2b4853a9
parent: a2780fbe36382be6d1d5ed68998631db22445f3b
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Aug 28 12:31:44 EDT 2015
libsec: work arround 8c running out of registers compiling curve25519.c
--- a/sys/src/libsec/port/curve25519.c
+++ b/sys/src/libsec/port/curve25519.c
@@ -235,6 +235,7 @@
}
static void fsquare_inner(felem *output, felem *in) {+ felem tmp;
output[0] = in[0] * in[0];
output[1] = 2 * in[0] * in[1];
output[2] = 2 * (in[1] * in[1] +
@@ -255,21 +256,21 @@
in[2] * in[5] +
in[1] * in[6] +
in[0] * in[7]);
+ tmp = in[1] * in[7] + in[3] * in[5];
output[8] = in[4] * in[4] +
2 * (in[2] * in[6] +
in[0] * in[8] +
- 2 * (in[1] * in[7] +
- in[3] * in[5]));
+ 2 * tmp);
output[9] = 2 * (in[4] * in[5] +
in[3] * in[6] +
in[2] * in[7] +
in[1] * in[8] +
in[0] * in[9]);
+ tmp = in[3] * in[7] + in[1] * in[9];
output[10] = 2 * (in[5] * in[5] +
in[4] * in[6] +
in[2] * in[8] +
- 2 * (in[3] * in[7] +
- in[1] * in[9]));
+ 2 * tmp);
output[11] = 2 * (in[5] * in[6] +
in[4] * in[7] +
in[3] * in[8] +
--
⑨