9 #include <botan/internal/mp_asm.h>    10 #include <botan/internal/mp_asmi.h>    11 #include <botan/internal/mp_core.h>    12 #include <botan/internal/ct_utils.h>    13 #include <botan/exceptn.h>    14 #include <botan/mem_ops.h>    29    for(
size_t i = 0; i != size; ++i)
    47    for(
size_t i = 0; i != size; ++i)
    53       const word z = 
word_add(x[i], y[i], &carry);
    69    for(
size_t i = 0; i != size; ++i)
    71       const word z = 
word_sub(x[i], y[i], &carry);
    82    word carry = mask & 1;
    83    for(
size_t i = 0; i != size; ++i)
    85       const word z = 
word_add(~x[i], 0, &carry);
    97    const size_t blocks = y_size - (y_size % 8);
    99    for(
size_t i = 0; i != blocks; i += 8)
   102    for(
size_t i = blocks; i != y_size; ++i)
   103       x[i] = 
word_add(x[i], y[i], &carry);
   105    for(
size_t i = y_size; i != x_size; ++i)
   115                               const word y[], 
size_t y_size)
   122    const size_t blocks = y_size - (y_size % 8);
   124    for(
size_t i = 0; i != blocks; i += 8)
   125       carry = 
word8_add3(z + i, x + i, y + i, carry);
   127    for(
size_t i = blocks; i != y_size; ++i)
   128       z[i] = 
word_add(x[i], y[i], &carry);
   130    for(
size_t i = y_size; i != x_size; ++i)
   139 void bigint_add2(word x[], 
size_t x_size, 
const word y[], 
size_t y_size)
   149                            const word y[], 
size_t y_size)
   151    z[(x_size > y_size ? x_size : y_size)] +=
   158 word 
bigint_sub2(word x[], 
size_t x_size, 
const word y[], 
size_t y_size)
   162    const size_t blocks = y_size - (y_size % 8);
   164    for(
size_t i = 0; i != blocks; i += 8)
   167    for(
size_t i = blocks; i != y_size; ++i)
   168       x[i] = 
word_sub(x[i], y[i], &borrow);
   170    for(
size_t i = y_size; i != x_size; ++i)
   183    const size_t blocks = y_size - (y_size % 8);
   185    for(
size_t i = 0; i != blocks; i += 8)
   188    for(
size_t i = blocks; i != y_size; ++i)
   189       x[i] = 
word_sub(y[i], x[i], &borrow);
   199                            const word y[], 
size_t y_size)
   203    const size_t blocks = y_size - (y_size % 8);
   205    for(
size_t i = 0; i != blocks; i += 8)
   206       borrow = 
word8_sub3(z + i, x + i, y + i, borrow);
   208    for(
size_t i = blocks; i != y_size; ++i)
   209       z[i] = 
word_sub(x[i], y[i], &borrow);
   211    for(
size_t i = y_size; i != x_size; ++i)
   222    const size_t blocks = x_size - (x_size % 8);
   226    for(
size_t i = 0; i != blocks; i += 8)
   229    for(
size_t i = blocks; i != x_size; ++i)
   240    const size_t blocks = x_size - (x_size % 8);
   244    for(
size_t i = 0; i != blocks; i += 8)
   247    for(
size_t i = blocks; i != x_size; ++i)
 void bigint_sub2_rev(word x[], const word y[], size_t y_size)
word word8_sub2_rev(word x[8], const word y[8], word carry)
word word8_add2(word x[8], const word y[8], word carry)
word word8_linmul3(word z[8], const word x[8], word y, word carry)
word bigint_sub2(word x[], size_t x_size, const word y[], size_t y_size)
void bigint_linmul2(word x[], size_t x_size, word y)
word bigint_add3_nc(word z[], const word x[], size_t x_size, const word y[], size_t y_size)
word word8_sub2(word x[8], const word y[8], word carry)
word bigint_sub3(word z[], const word x[], size_t x_size, const word y[], size_t y_size)
word word_madd2(word a, word b, word *c)
void bigint_linmul3(word z[], const word x[], size_t x_size, word y)
word bigint_cnd_sub(word cnd, word x[], const word y[], size_t size)
void bigint_cnd_swap(word cnd, word x[], word y[], size_t size)
word word8_linmul2(word x[8], word y, word carry)
T select(T mask, T from0, T from1)
word bigint_add2_nc(word x[], size_t x_size, const word y[], size_t y_size)
word word8_add3(word z[8], const word x[8], const word y[8], word carry)
word word_sub(word x, word y, word *carry)
void bigint_add2(word x[], size_t x_size, const word y[], size_t y_size)
word bigint_cnd_add(word cnd, word x[], const word y[], size_t size)
word word_add(word x, word y, word *carry)
void bigint_cnd_abs(word cnd, word x[], size_t size)
word word8_sub3(word z[8], const word x[8], const word y[8], word carry)
void bigint_add3(word z[], const word x[], size_t x_size, const word y[], size_t y_size)