Lines Matching refs:ret

45 	int ret, mask, tmp;  in _nn_cmp_shift()  local
48 MUST_HAVE((in1->wlen >= (in2->wlen + shift)), ret, err); in _nn_cmp_shift()
49 MUST_HAVE((cmp != NULL), ret, err); in _nn_cmp_shift()
58 ret = 0; in _nn_cmp_shift()
61 return ret; in _nn_cmp_shift()
80 int ret; in _nn_cnd_sub_shift() local
83 MUST_HAVE((out->wlen >= (in->wlen + shift)), ret, err); in _nn_cnd_sub_shift()
84 MUST_HAVE((borrow != NULL), ret, err); in _nn_cnd_sub_shift()
100 ret = 0; in _nn_cnd_sub_shift()
103 return ret; in _nn_cnd_sub_shift()
118 int ret; in _nn_submul_word_shift() local
121 MUST_HAVE((out->wlen >= (in->wlen + shift)), ret, err); in _nn_submul_word_shift()
122 MUST_HAVE((borrow != NULL), ret, err); in _nn_submul_word_shift()
146 ret = 0; in _nn_submul_word_shift()
149 return ret; in _nn_submul_word_shift()
198 int _small, cmp, ret; in _nn_divrem_normalized() local
201 MUST_HAVE(!(b->wlen <= 0), ret, err); in _nn_divrem_normalized()
202 MUST_HAVE(!(a->wlen <= b->wlen), ret, err); in _nn_divrem_normalized()
203 MUST_HAVE(!(!((b->val[b->wlen - 1] >> (WORD_BITS - 1)) == WORD(1))), ret, err); in _nn_divrem_normalized()
204 MUST_HAVE(!_nn_cmp_shift(a, b, (u8)(a->wlen - b->wlen), &cmp) && (cmp < 0), ret, err); in _nn_divrem_normalized()
208 ret = nn_set_wlen(r, a->wlen); EG(ret, err); in _nn_divrem_normalized()
209 ret = nn_copy(r, a); EG(ret, err); in _nn_divrem_normalized()
212 ret = nn_set_wlen(q, (u8)(r->wlen - b->wlen)); EG(ret, err); in _nn_divrem_normalized()
244 ret = _nn_submul_word_shift(r, b, qstar, shift, &borrow); EG(ret, err); in _nn_divrem_normalized()
247 MUST_HAVE(!(r->val[i - 1] < borrow), ret, err); in _nn_divrem_normalized()
254 ret = _nn_cmp_shift(r, b, shift, &cmp); EG(ret, err); in _nn_divrem_normalized()
257 ret = _nn_cnd_sub_shift(_small, r, b, shift, &borrow); EG(ret, err); in _nn_divrem_normalized()
258 MUST_HAVE(!(r->val[i - 1] != borrow), ret, err); in _nn_divrem_normalized()
270 MUST_HAVE(!(r->val[r->wlen - 1] != WORD(0)), ret, err); in _nn_divrem_normalized()
272 ret = _nn_cmp_shift(r, b, shift, &cmp); EG(ret, err); in _nn_divrem_normalized()
273 MUST_HAVE(!(cmp >= 0), ret, err); in _nn_divrem_normalized()
275 ret = nn_set_wlen(r, (u8)(r->wlen - 1)); EG(ret, err); in _nn_divrem_normalized()
279 return ret; in _nn_divrem_normalized()
312 int ret; in _nn_divrem_normalized_aliased() local
316 ret = nn_init(&r, 0); EG(ret, err); in _nn_divrem_normalized_aliased()
317 ret = _nn_divrem_normalized(q, &r, a, b, v); EG(ret, err); in _nn_divrem_normalized_aliased()
318 ret = nn_copy(b, &r); EG(ret, err); in _nn_divrem_normalized_aliased()
322 return ret; in _nn_divrem_normalized_aliased()
340 int ret; in nn_divrem_normalized() local
342 ret = nn_check_initialized(a); EG(ret, err); in nn_divrem_normalized()
343 ret = nn_check_initialized(q); EG(ret, err); in nn_divrem_normalized()
344 ret = nn_check_initialized(r); EG(ret, err); in nn_divrem_normalized()
347 MUST_HAVE((q != r) && (q != a) && (q != b), ret, err); in nn_divrem_normalized()
350 ret = _nn_divrem_normalized_aliased(q, a, r, v); in nn_divrem_normalized()
352 ret = nn_check_initialized(b); EG(ret, err); in nn_divrem_normalized()
353 ret = _nn_divrem_normalized(q, r, a, b, v); in nn_divrem_normalized()
357 return ret; in nn_divrem_normalized()
370 int ret; in nn_mod_normalized() local
374 ret = nn_init(&q, 0); EG(ret, err); in nn_mod_normalized()
375 ret = nn_divrem_normalized(&q, r, a, b, v); in nn_mod_normalized()
379 return ret; in nn_mod_normalized()
414 int larger, ret, cmp; in _nn_divrem_unshifted() local
419 MUST_HAVE(((a->wlen + BIT_LEN_WORDS(cnt)) < NN_MAX_WORD_LEN), ret, err); in _nn_divrem_unshifted()
426 ret = nn_copy(r, a); EG(ret, err); in _nn_divrem_unshifted()
427 ret = nn_zero(q); in _nn_divrem_unshifted()
432 ret = nn_init(&a_shift, (u16)(new_wlen * WORD_BYTES)); EG(ret, err); in _nn_divrem_unshifted()
433 ret = nn_set_wlen(&a_shift, new_wlen); EG(ret, err); in _nn_divrem_unshifted()
434 ret = nn_lshift_fixedlen(&a_shift, a, cnt); EG(ret, err); in _nn_divrem_unshifted()
435 ret = nn_set_wlen(r, new_wlen); EG(ret, err); in _nn_divrem_unshifted()
439 ret = nn_cmp(&a_shift, b_norm, &cmp); EG(ret, err); in _nn_divrem_unshifted()
441 ret = nn_cnd_sub(larger, r, &a_shift, b_norm); EG(ret, err); in _nn_divrem_unshifted()
442 MUST_HAVE(((!nn_cmp(r, b_norm, &cmp)) && (cmp < 0)), ret, err); in _nn_divrem_unshifted()
445 ret = nn_set_wlen(q, (u8)(new_wlen - b_wlen + 1)); EG(ret, err); in _nn_divrem_unshifted()
450 ret = _nn_cmp_shift(&a_shift, b_norm, (u8)(new_wlen - b_wlen), &cmp); EG(ret, err); in _nn_divrem_unshifted()
452 ret = _nn_cnd_sub_shift(larger, &a_shift, b_norm, (u8)(new_wlen - b_wlen), &borrow); EG(ret, err); in _nn_divrem_unshifted()
453 …MUST_HAVE(((!_nn_cmp_shift(&a_shift, b_norm, (u8)(new_wlen - b_wlen), &cmp)) && (cmp < 0)), ret, e… in _nn_divrem_unshifted()
459 ret = nn_divrem_normalized(q, r, &a_shift, b_norm, v); EG(ret, err); in _nn_divrem_unshifted()
462 ret = nn_set_wlen(q, (u8)(new_wlen - b_wlen + 1)); EG(ret, err); in _nn_divrem_unshifted()
466 ret = nn_rshift_fixedlen(r, r, cnt); EG(ret, err); in _nn_divrem_unshifted()
467 ret = nn_set_wlen(r, b_wlen); in _nn_divrem_unshifted()
472 return ret; in _nn_divrem_unshifted()
491 int ret; in _nn_divrem_unshifted_aliased() local
495 ret = nn_init(&r, 0); EG(ret, err); in _nn_divrem_unshifted_aliased()
496 ret = _nn_divrem_unshifted(q, &r, a, b_norm, v, cnt); EG(ret, err); in _nn_divrem_unshifted_aliased()
497 ret = nn_copy(b_norm, &r); EG(ret, err); in _nn_divrem_unshifted_aliased()
501 return ret; in _nn_divrem_unshifted_aliased()
515 int ret; in nn_divrem_unshifted() local
517 ret = nn_check_initialized(a); EG(ret, err); in nn_divrem_unshifted()
518 ret = nn_check_initialized(q); EG(ret, err); in nn_divrem_unshifted()
519 ret = nn_check_initialized(r); EG(ret, err); in nn_divrem_unshifted()
522 MUST_HAVE((q != r) && (q != a) && (q != b), ret, err); in nn_divrem_unshifted()
525 ret = _nn_divrem_unshifted_aliased(q, a, r, v, cnt); in nn_divrem_unshifted()
527 ret = nn_check_initialized(b); EG(ret, err); in nn_divrem_unshifted()
528 ret = _nn_divrem_unshifted(q, r, a, b, v, cnt); in nn_divrem_unshifted()
532 return ret; in nn_divrem_unshifted()
546 int ret; in nn_mod_unshifted() local
549 ret = nn_init(&q, 0); EG(ret, err); in nn_mod_unshifted()
550 ret = nn_divrem_unshifted(&q, r, a, b, v, cnt); in nn_mod_unshifted()
555 return ret; in nn_mod_unshifted()
575 int mask, ret = 0; in _wcmp_22() local
576 ret += (a[1] > b[1]); in _wcmp_22()
577 ret -= (a[1] < b[1]); in _wcmp_22()
578 mask = !(ret & 0x1); in _wcmp_22()
579 ret += ((a[0] > b[0]) & mask); in _wcmp_22()
580 ret -= ((a[0] < b[0]) & mask); in _wcmp_22()
581 return ret; in _wcmp_22()
652 int larger, ret; in _word_divrem() local
655 MUST_HAVE((WRSHIFT((b), (WORD_BITS - 1)) == WORD(1)), ret, err); in _word_divrem()
666 KNOWN_FACT(bh != 0, ret, err); in _word_divrem()
680 ret = (_wcmp_22(phl, rhl) > 0); in _word_divrem()
681 MUST_HAVE(!(ret), ret, err); in _word_divrem()
683 MUST_HAVE((WRSHIFT(rhl[1], HWORD_BITS) == 0), ret, err); in _word_divrem()
698 ret = _wcmp_22(phl, rhl) > 0; in _word_divrem()
699 MUST_HAVE(!(ret), ret, err); in _word_divrem()
702 MUST_HAVE((rhl[1] == WORD(0)), ret, err); in _word_divrem()
703 MUST_HAVE(!(rhl[0] >= (b)), ret, err); in _word_divrem()
706 MUST_HAVE(!((word_t) ((*q)*(b) + (*r)) != (al)), ret, err); in _word_divrem()
707 ret = 0; in _word_divrem()
710 return ret; in _word_divrem()
726 int ret; in wreciprocal() local
728 MUST_HAVE((reciprocal != NULL), ret, err); in wreciprocal()
733 ret = 0; in wreciprocal()
743 ret = _word_divrem(&q, r+1, t[1], t[0], in wreciprocal()
744 (word_t)(dh + WORD(1))); EG(ret, err); in wreciprocal()
749 ret = 0; in wreciprocal()
766 ret = 0; in wreciprocal()
769 return ret; in wreciprocal()
798 int ret; in nn_compute_div_coefs() local
801 ret = nn_check_initialized(p_in); EG(ret, err); in nn_compute_div_coefs()
803 MUST_HAVE((p_shift != NULL), ret, err); in nn_compute_div_coefs()
804 MUST_HAVE((p_reciprocal != NULL), ret, err); in nn_compute_div_coefs()
807 MUST_HAVE((p_normalized != p_in), ret, err); in nn_compute_div_coefs()
809 ret = nn_init(&p, 0); EG(ret, err); in nn_compute_div_coefs()
810 ret = nn_copy(&p, p_in); EG(ret, err); in nn_compute_div_coefs()
818 ret = nn_set_wlen(&p, 2); EG(ret, err); in nn_compute_div_coefs()
821 ret = nn_init(p_normalized, 0); EG(ret, err); in nn_compute_div_coefs()
822 ret = nn_init(&tmp_nn, 0); EG(ret, err); in nn_compute_div_coefs()
828 ret = nn_bitlen(&p, &p_bitlen); EG(ret, err); in nn_compute_div_coefs()
832 ret = nn_lshift(p_normalized, &p, (bitcnt_t)(*p_shift)); EG(ret, err); in nn_compute_div_coefs()
835 MUST_HAVE((p_rounded_bitlen >= (2 * WORDSIZE)), ret, err); in nn_compute_div_coefs()
842ret = nn_rshift(&tmp_nn, p_normalized, (bitcnt_t)(p_rounded_bitlen - (2 * WORDSIZE))); EG(ret, err… in nn_compute_div_coefs()
843 ret = wreciprocal(tmp_nn.val[1], tmp_nn.val[0], p_reciprocal); in nn_compute_div_coefs()
849 return ret; in nn_compute_div_coefs()
878 int ret, iszero; in _nn_divrem() local
881 ret = nn_init(r, 0); EG(ret, err); in _nn_divrem()
882 ret = nn_init(q, 0); EG(ret, err); in _nn_divrem()
883 ret = nn_init(&b_large, 0); EG(ret, err); in _nn_divrem()
885 MUST_HAVE(!nn_iszero(b, &iszero) && !iszero, ret, err); in _nn_divrem()
888 ret = nn_copy(&b_large, b); EG(ret, err); in _nn_divrem()
891 ret = nn_set_wlen(&b_large, 2); EG(ret, err); in _nn_divrem()
902 MUST_HAVE(!(ptr->wlen < 2), ret, err); in _nn_divrem()
904 ret = nn_init(&b_normalized, (u16)((ptr->wlen) * WORD_BYTES)); EG(ret, err); in _nn_divrem()
905 ret = nn_clz(ptr, &cnt); EG(ret, err); in _nn_divrem()
906 ret = nn_lshift_fixedlen(&b_normalized, ptr, cnt); EG(ret, err); in _nn_divrem()
907 ret = wreciprocal(b_normalized.val[ptr->wlen - 1], in _nn_divrem()
909 &v); /* Not constant time. */ EG(ret, err); in _nn_divrem()
911 ret = _nn_divrem_unshifted(q, r, a, &b_normalized, v, cnt); in _nn_divrem()
917 return ret; in _nn_divrem()
927 int ret; in __nn_divrem_notrim_alias() local
930 ret = nn_init(&a_cpy, 0); EG(ret, err); in __nn_divrem_notrim_alias()
931 ret = nn_init(&b_cpy, 0); EG(ret, err); in __nn_divrem_notrim_alias()
932 ret = nn_copy(&a_cpy, a); EG(ret, err); in __nn_divrem_notrim_alias()
933 ret = nn_copy(&b_cpy, b); EG(ret, err); in __nn_divrem_notrim_alias()
934 ret = _nn_divrem(q, r, &a_cpy, &b_cpy); in __nn_divrem_notrim_alias()
940 return ret; in __nn_divrem_notrim_alias()
954 int ret; in nn_divrem_notrim() local
957 ret = nn_check_initialized(a); EG(ret, err); in nn_divrem_notrim()
958 ret = nn_check_initialized(b); EG(ret, err); in nn_divrem_notrim()
959 MUST_HAVE(((q != NULL) && (r != NULL)), ret, err); in nn_divrem_notrim()
966 ret = __nn_divrem_notrim_alias(q, r, a, b); in nn_divrem_notrim()
968 ret = _nn_divrem(q, r, a, b); in nn_divrem_notrim()
972 return ret; in nn_divrem_notrim()
984 int ret; in nn_divrem() local
986 ret = nn_divrem_notrim(q, r, a, b); EG(ret, err); in nn_divrem()
989 ret = nn_normalize(q); EG(ret, err); in nn_divrem()
990 ret = nn_normalize(r); in nn_divrem()
993 return ret; in nn_divrem()
1004 int ret; in nn_mod_notrim() local
1009 ret = nn_divrem_notrim(&q, r, a, b); in nn_mod_notrim()
1013 return ret; in nn_mod_notrim()
1025 int ret; in nn_mod() local
1030 ret = nn_divrem(&q, r, a, b); in nn_mod()
1034 return ret; in nn_mod()
1051 int ret, swap, iszero; in _nn_xgcd() local
1087 ret = nn_init(g, 0); EG(ret, err); in _nn_xgcd()
1088 ret = nn_init(u, 0); EG(ret, err); in _nn_xgcd()
1089 ret = nn_init(v, 0); EG(ret, err); in _nn_xgcd()
1090 ret = nn_iszero(b, &iszero); EG(ret, err); in _nn_xgcd()
1093 ret = nn_copy(g, a); EG(ret, err); in _nn_xgcd()
1094 ret = nn_one(u); EG(ret, err); in _nn_xgcd()
1095 ret = nn_zero(v); EG(ret, err); in _nn_xgcd()
1101 ret = nn_init(&scratch[i], 0); EG(ret, err); in _nn_xgcd()
1108 ret = nn_one(u1); EG(ret, err); in _nn_xgcd()
1109 ret = nn_zero(v1); EG(ret, err); in _nn_xgcd()
1110 ret = nn_zero(u2); EG(ret, err); in _nn_xgcd()
1111 ret = nn_one(v2); EG(ret, err); in _nn_xgcd()
1114 ret = nn_copy(c, a); EG(ret, err); /* Copy could be skipped. */ in _nn_xgcd()
1115 ret = nn_copy(d, b); EG(ret, err); /* Copy could be skipped. */ in _nn_xgcd()
1123 ret = nn_iszero(d, &iszero); EG(ret, err); in _nn_xgcd()
1125 ret = nn_divrem(q, r, c, d); EG(ret, err); in _nn_xgcd()
1126 ret = nn_normalize(q); EG(ret, err); in _nn_xgcd()
1127 ret = nn_normalize(r); EG(ret, err); in _nn_xgcd()
1128 ret = nn_copy(c, r); EG(ret, err); in _nn_xgcd()
1129 ret = nn_mul(r, q, u1); EG(ret, err); in _nn_xgcd()
1130 ret = nn_normalize(r); EG(ret, err); in _nn_xgcd()
1131 ret = nn_add(v1, v1, r); EG(ret, err); in _nn_xgcd()
1132 ret = nn_mul(r, q, u2); EG(ret, err); in _nn_xgcd()
1133 ret = nn_normalize(r); EG(ret, err); in _nn_xgcd()
1134 ret = nn_add(v2, v2, r); EG(ret, err); in _nn_xgcd()
1135 ret = nn_normalize(v1); EG(ret, err); in _nn_xgcd()
1136 ret = nn_normalize(v2); EG(ret, err); in _nn_xgcd()
1138 ret = nn_iszero(c, &iszero); EG(ret, err); in _nn_xgcd()
1142 ret = nn_divrem(q, r, d, c); EG(ret, err); in _nn_xgcd()
1143 ret = nn_normalize(q); EG(ret, err); in _nn_xgcd()
1144 ret = nn_normalize(r); EG(ret, err); in _nn_xgcd()
1145 ret = nn_copy(d, r); EG(ret, err); in _nn_xgcd()
1146 ret = nn_mul(r, q, v1); EG(ret, err); in _nn_xgcd()
1147 ret = nn_normalize(r); EG(ret, err); in _nn_xgcd()
1148 ret = nn_add(u1, u1, r); EG(ret, err); in _nn_xgcd()
1149 ret = nn_mul(r, q, v2); EG(ret, err); in _nn_xgcd()
1150 ret = nn_normalize(r); EG(ret, err); in _nn_xgcd()
1151 ret = nn_add(u2, u2, r); EG(ret, err); in _nn_xgcd()
1152 ret = nn_normalize(u1); EG(ret, err); in _nn_xgcd()
1153 ret = nn_normalize(u2); EG(ret, err); in _nn_xgcd()
1157 ret = nn_iszero(d, &iszero); EG(ret, err); in _nn_xgcd()
1162 ret = nn_copy(g, d); EG(ret, err); in _nn_xgcd()
1163 ret = nn_copy(u, u2); EG(ret, err); in _nn_xgcd()
1164 ret = nn_copy(v, u1); EG(ret, err); in _nn_xgcd()
1166 ret = nn_copy(g, c); EG(ret, err); in _nn_xgcd()
1167 ret = nn_copy(u, v2); EG(ret, err); in _nn_xgcd()
1168 ret = nn_copy(v, v1); EG(ret, err); in _nn_xgcd()
1173 ret = 0; in _nn_xgcd()
1184 if (ret){ in _nn_xgcd()
1190 return ret; in _nn_xgcd()
1207 int ret, cmp, _sign; in nn_xgcd() local
1211 ret = nn_check_initialized(a); EG(ret, err); in nn_xgcd()
1212 ret = nn_check_initialized(b); EG(ret, err); in nn_xgcd()
1213 MUST_HAVE((sign != NULL), ret, err); in nn_xgcd()
1215 ret = nn_init(&b_cpy, 0); EG(ret, err); in nn_xgcd()
1219 ret = nn_copy(&a_cpy, a); EG(ret, err); in nn_xgcd()
1226 ret = nn_copy(&b_cpy, b); EG(ret, err); in nn_xgcd()
1232 ret = nn_cmp(a_, b_, &cmp); EG(ret, err); in nn_xgcd()
1235 ret = _nn_xgcd(g, v, u, b_, a_, &_sign); EG(ret, err); in nn_xgcd()
1238 ret = _nn_xgcd(g, u, v, a_, b_, &_sign); EG(ret, err); in nn_xgcd()
1246 return ret; in nn_xgcd()
1259 int ret; in nn_gcd() local
1265 ret = nn_xgcd(g, &u, &v, a, b, sign); in nn_gcd()
1270 return ret; in nn_gcd()