8 #include <botan/internal/mp_core.h>
9 #include <botan/internal/mp_asm.h>
10 #include <botan/internal/mp_asmi.h>
11 #include <botan/mem_ops.h>
21 const word y[],
size_t y_size)
23 const size_t x_size_8 = x_size - (x_size % 8);
27 for(
size_t i = 0; i != y_size; ++i)
29 const word y_i = y[i];
33 for(
size_t j = 0; j != x_size_8; j += 8)
36 for(
size_t j = x_size_8; j != x_size; ++j)
37 z[i+j] =
word_madd3(x[j], y_i, z[i+j], &carry);
56 const size_t x_size_8 = x_size - (x_size % 8);
60 for(
size_t i = 0; i != x_size; ++i)
62 const word x_i = x[i];
65 for(
size_t j = 0; j != x_size_8; j += 8)
68 for(
size_t j = x_size_8; j != x_size; ++j)
69 z[i+j] =
word_madd3(x[j], x_i, z[i+j], &carry);
void bigint_simple_mul(word z[], const word x[], size_t x_size, const word y[], size_t y_size)
void clear_mem(T *ptr, size_t n)
word word_madd3(word a, word b, word c, word *d)
word word8_madd3(word z[8], const word x[8], word y, word carry)
void bigint_simple_sqr(word z[], const word x[], size_t x_size)