summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/bn_asm.c
diff options
context:
space:
mode:
authorjsing <>2023-01-23 12:09:06 +0000
committerjsing <>2023-01-23 12:09:06 +0000
commit4da0d188e0e1d972397bcdd91fcf1bd43d78d844 (patch)
tree675028e3dc97f108d157c557689575c1e1e81682 /src/lib/libcrypto/bn/bn_asm.c
parent6dbbeae919d7043dba81294c451f76a1681ab6cc (diff)
downloadopenbsd-4da0d188e0e1d972397bcdd91fcf1bd43d78d844.tar.gz
openbsd-4da0d188e0e1d972397bcdd91fcf1bd43d78d844.tar.bz2
openbsd-4da0d188e0e1d972397bcdd91fcf1bd43d78d844.zip
Move bn_sqr_words from bn_asm.c to bn_sqr.c.
This is wrapped with #ifndef HAVE_BN_SQR_WORDS, which is then defined for architectures that provide their own assembly versions.
Diffstat (limited to 'src/lib/libcrypto/bn/bn_asm.c')
-rw-r--r--src/lib/libcrypto/bn/bn_asm.c54
1 files changed, 1 insertions, 53 deletions
diff --git a/src/lib/libcrypto/bn/bn_asm.c b/src/lib/libcrypto/bn/bn_asm.c
index a7f288fc1c..143c939367 100644
--- a/src/lib/libcrypto/bn/bn_asm.c
+++ b/src/lib/libcrypto/bn/bn_asm.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_asm.c,v 1.21 2023/01/23 12:02:48 jsing Exp $ */ 1/* $OpenBSD: bn_asm.c,v 1.22 2023/01/23 12:09:06 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 *
@@ -124,32 +124,6 @@ bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w)
124 return (c1); 124 return (c1);
125} 125}
126 126
127void
128bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
129{
130 assert(n >= 0);
131 if (n <= 0)
132 return;
133
134#ifndef OPENSSL_SMALL_FOOTPRINT
135 while (n & ~3) {
136 sqr(r[0], r[1], a[0]);
137 sqr(r[2], r[3], a[1]);
138 sqr(r[4], r[5], a[2]);
139 sqr(r[6], r[7], a[3]);
140 a += 4;
141 r += 8;
142 n -= 4;
143 }
144#endif
145 while (n) {
146 sqr(r[0], r[1], a[0]);
147 a++;
148 r += 2;
149 n--;
150 }
151}
152
153#else /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ 127#else /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */
154 128
155BN_ULONG 129BN_ULONG
@@ -218,32 +192,6 @@ bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w)
218 return (carry); 192 return (carry);
219} 193}
220 194
221void
222bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
223{
224 assert(n >= 0);
225 if (n <= 0)
226 return;
227
228#ifndef OPENSSL_SMALL_FOOTPRINT
229 while (n & ~3) {
230 sqr64(r[0], r[1], a[0]);
231 sqr64(r[2], r[3], a[1]);
232 sqr64(r[4], r[5], a[2]);
233 sqr64(r[6], r[7], a[3]);
234 a += 4;
235 r += 8;
236 n -= 4;
237 }
238#endif
239 while (n) {
240 sqr64(r[0], r[1], a[0]);
241 a++;
242 r += 2;
243 n--;
244 }
245}
246
247#endif /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ 195#endif /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */
248 196
249#if defined(BN_MUL_COMBA) && !defined(OPENSSL_SMALL_FOOTPRINT) 197#if defined(BN_MUL_COMBA) && !defined(OPENSSL_SMALL_FOOTPRINT)