diff options
Diffstat (limited to 'src/lib/libcrypto/bn/bn_mul.c')
-rw-r--r-- | src/lib/libcrypto/bn/bn_mul.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/lib/libcrypto/bn/bn_mul.c b/src/lib/libcrypto/bn/bn_mul.c index 118e8cddc5..65088cc5c4 100644 --- a/src/lib/libcrypto/bn/bn_mul.c +++ b/src/lib/libcrypto/bn/bn_mul.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_mul.c,v 1.37 2023/04/19 10:51:22 jsing Exp $ */ | 1 | /* $OpenBSD: bn_mul.c,v 1.38 2023/06/12 16:17:24 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -210,17 +210,13 @@ bn_mul_words(BN_ULONG *r, const BN_ULONG *a, int num, BN_ULONG w) | |||
210 | if (num <= 0) | 210 | if (num <= 0) |
211 | return 0; | 211 | return 0; |
212 | 212 | ||
213 | #ifndef OPENSSL_SMALL_FOOTPRINT | ||
214 | while (num & ~3) { | 213 | while (num & ~3) { |
215 | bn_mulw_addw(a[0], w, carry, &carry, &r[0]); | 214 | bn_qwmulw_addw(a[3], a[2], a[1], a[0], w, carry, &carry, |
216 | bn_mulw_addw(a[1], w, carry, &carry, &r[1]); | 215 | &r[3], &r[2], &r[1], &r[0]); |
217 | bn_mulw_addw(a[2], w, carry, &carry, &r[2]); | ||
218 | bn_mulw_addw(a[3], w, carry, &carry, &r[3]); | ||
219 | a += 4; | 216 | a += 4; |
220 | r += 4; | 217 | r += 4; |
221 | num -= 4; | 218 | num -= 4; |
222 | } | 219 | } |
223 | #endif | ||
224 | while (num) { | 220 | while (num) { |
225 | bn_mulw_addw(a[0], w, carry, &carry, &r[0]); | 221 | bn_mulw_addw(a[0], w, carry, &carry, &r[0]); |
226 | a++; | 222 | a++; |
@@ -247,17 +243,14 @@ bn_mul_add_words(BN_ULONG *r, const BN_ULONG *a, int num, BN_ULONG w) | |||
247 | if (num <= 0) | 243 | if (num <= 0) |
248 | return 0; | 244 | return 0; |
249 | 245 | ||
250 | #ifndef OPENSSL_SMALL_FOOTPRINT | ||
251 | while (num & ~3) { | 246 | while (num & ~3) { |
252 | bn_mulw_addw_addw(a[0], w, r[0], carry, &carry, &r[0]); | 247 | bn_qwmulw_addqw_addw(a[3], a[2], a[1], a[0], w, |
253 | bn_mulw_addw_addw(a[1], w, r[1], carry, &carry, &r[1]); | 248 | r[3], r[2], r[1], r[0], carry, &carry, |
254 | bn_mulw_addw_addw(a[2], w, r[2], carry, &carry, &r[2]); | 249 | &r[3], &r[2], &r[1], &r[0]); |
255 | bn_mulw_addw_addw(a[3], w, r[3], carry, &carry, &r[3]); | ||
256 | a += 4; | 250 | a += 4; |
257 | r += 4; | 251 | r += 4; |
258 | num -= 4; | 252 | num -= 4; |
259 | } | 253 | } |
260 | #endif | ||
261 | while (num) { | 254 | while (num) { |
262 | bn_mulw_addw_addw(a[0], w, r[0], carry, &carry, &r[0]); | 255 | bn_mulw_addw_addw(a[0], w, r[0], carry, &carry, &r[0]); |
263 | a++; | 256 | a++; |