diff options
author | jsing <> | 2023-03-07 09:35:55 +0000 |
---|---|---|
committer | jsing <> | 2023-03-07 09:35:55 +0000 |
commit | 6b9c0e6e4905b3c5aac8c5bffd36699c8984596f (patch) | |
tree | 9598fa0db64853102a2eca699807229dd059d6de /src | |
parent | c83e0ddc66b0c990eac3283a437e4e70eabd868d (diff) | |
download | openbsd-6b9c0e6e4905b3c5aac8c5bffd36699c8984596f.tar.gz openbsd-6b9c0e6e4905b3c5aac8c5bffd36699c8984596f.tar.bz2 openbsd-6b9c0e6e4905b3c5aac8c5bffd36699c8984596f.zip |
Slightly rework bn_mulw_addtw().
Call bn_mulw_addw() rather than doing bn_mulw() follow by bn_addw(). This
simplifies the code slightly, plus on some platforms bn_mulw_addw() can
be optimised (and bn_mulw_addtw() will then benefit from such an
optimisation).
ok tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/bn/bn_internal.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/lib/libcrypto/bn/bn_internal.h b/src/lib/libcrypto/bn/bn_internal.h index 4f4d1c31f5..8a729b8e44 100644 --- a/src/lib/libcrypto/bn/bn_internal.h +++ b/src/lib/libcrypto/bn/bn_internal.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_internal.h,v 1.10 2023/03/07 05:57:01 jsing Exp $ */ | 1 | /* $OpenBSD: bn_internal.h,v 1.11 2023/03/07 09:35:55 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -347,11 +347,9 @@ static inline void | |||
347 | bn_mulw_addtw(BN_ULONG a, BN_ULONG b, BN_ULONG c2, BN_ULONG c1, BN_ULONG c0, | 347 | bn_mulw_addtw(BN_ULONG a, BN_ULONG b, BN_ULONG c2, BN_ULONG c1, BN_ULONG c0, |
348 | BN_ULONG *out_r2, BN_ULONG *out_r1, BN_ULONG *out_r0) | 348 | BN_ULONG *out_r2, BN_ULONG *out_r1, BN_ULONG *out_r0) |
349 | { | 349 | { |
350 | BN_ULONG carry, r2, r1, r0, x1, x0; | 350 | BN_ULONG carry, r2, r1, r0, x1; |
351 | 351 | ||
352 | bn_mulw(a, b, &x1, &x0); | 352 | bn_mulw_addw(a, b, c0, &x1, &r0); |
353 | bn_addw(c0, x0, &carry, &r0); | ||
354 | x1 += carry; | ||
355 | bn_addw(c1, x1, &carry, &r1); | 353 | bn_addw(c1, x1, &carry, &r1); |
356 | r2 = c2 + carry; | 354 | r2 = c2 + carry; |
357 | 355 | ||