summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/asm
diff options
context:
space:
mode:
authorjsing <>2025-08-30 07:54:27 +0000
committerjsing <>2025-08-30 07:54:27 +0000
commit694b88dc8ad458db9997e90128806a423fec09db (patch)
treeb32cfc481059f60610a60af1e8974af46557ef41 /src/lib/libcrypto/bn/asm
parent3adccdb355e2f651255227b11a6324730cb85e48 (diff)
downloadopenbsd-694b88dc8ad458db9997e90128806a423fec09db.tar.gz
openbsd-694b88dc8ad458db9997e90128806a423fec09db.tar.bz2
openbsd-694b88dc8ad458db9997e90128806a423fec09db.zip
Rename bn_mul_words()/bn_mul_add_words().
Most bn_.*_words() functions operate on two word arrays, however bn_mul_words() and bn_mul_add_words() operate on one word array and multiply by a single word. Rename these to bn_mulw_words() and bn_mulw_add_words() to reflect this, following naming scheme that we use for primitives. This frees up bn_mul_words() to actually be used for multiplying two word arrays. Rename bn_mul_normal() to bn_mul_words(), which will then become one of the possible assembly integration points. ok tb@
Diffstat (limited to 'src/lib/libcrypto/bn/asm')
-rw-r--r--src/lib/libcrypto/bn/asm/bn-586.pl8
-rw-r--r--src/lib/libcrypto/bn/asm/mips.pl64
-rw-r--r--src/lib/libcrypto/bn/asm/ppc.pl20
3 files changed, 46 insertions, 46 deletions
diff --git a/src/lib/libcrypto/bn/asm/bn-586.pl b/src/lib/libcrypto/bn/asm/bn-586.pl
index 19a1afdbbe..7f550b3b7c 100644
--- a/src/lib/libcrypto/bn/asm/bn-586.pl
+++ b/src/lib/libcrypto/bn/asm/bn-586.pl
@@ -10,8 +10,8 @@ $sse2=1;
10 10
11&external_label("OPENSSL_ia32cap_P") if ($sse2); 11&external_label("OPENSSL_ia32cap_P") if ($sse2);
12 12
13&bn_mul_add_words("bn_mul_add_words"); 13&bn_mulw_add_words("bn_mulw_add_words");
14&bn_mul_words("bn_mul_words"); 14&bn_mulw_words("bn_mulw_words");
15&bn_sqr_words("bn_sqr_words"); 15&bn_sqr_words("bn_sqr_words");
16&bn_div_words("bn_div_words"); 16&bn_div_words("bn_div_words");
17&bn_add_words("bn_add_words"); 17&bn_add_words("bn_add_words");
@@ -19,7 +19,7 @@ $sse2=1;
19 19
20&asm_finish(); 20&asm_finish();
21 21
22sub bn_mul_add_words 22sub bn_mulw_add_words
23 { 23 {
24 local($name)=@_; 24 local($name)=@_;
25 25
@@ -206,7 +206,7 @@ sub bn_mul_add_words
206 &function_end($name); 206 &function_end($name);
207 } 207 }
208 208
209sub bn_mul_words 209sub bn_mulw_words
210 { 210 {
211 local($name)=@_; 211 local($name)=@_;
212 212
diff --git a/src/lib/libcrypto/bn/asm/mips.pl b/src/lib/libcrypto/bn/asm/mips.pl
index 02d43e15b0..378af371e7 100644
--- a/src/lib/libcrypto/bn/asm/mips.pl
+++ b/src/lib/libcrypto/bn/asm/mips.pl
@@ -110,19 +110,19 @@ $code.=<<___;
110.set noat 110.set noat
111 111
112.align 5 112.align 5
113.globl bn_mul_add_words 113.globl bn_mulw_add_words
114.ent bn_mul_add_words 114.ent bn_mulw_add_words
115bn_mul_add_words: 115bn_mulw_add_words:
116 .set noreorder 116 .set noreorder
117 bgtz $a2,bn_mul_add_words_internal 117 bgtz $a2,bn_mulw_add_words_internal
118 move $v0,$zero 118 move $v0,$zero
119 jr $ra 119 jr $ra
120 move $a0,$v0 120 move $a0,$v0
121.end bn_mul_add_words 121.end bn_mulw_add_words
122 122
123.align 5 123.align 5
124.ent bn_mul_add_words_internal 124.ent bn_mulw_add_words_internal
125bn_mul_add_words_internal: 125bn_mulw_add_words_internal:
126___ 126___
127$code.=<<___ if ($flavour =~ /nubi/i); 127$code.=<<___ if ($flavour =~ /nubi/i);
128 .frame $sp,6*$SZREG,$ra 128 .frame $sp,6*$SZREG,$ra
@@ -140,9 +140,9 @@ $code.=<<___;
140 .set reorder 140 .set reorder
141 li $minus4,-4 141 li $minus4,-4
142 and $ta0,$a2,$minus4 142 and $ta0,$a2,$minus4
143 beqz $ta0,.L_bn_mul_add_words_tail 143 beqz $ta0,.L_bn_mulw_add_words_tail
144 144
145.L_bn_mul_add_words_loop: 145.L_bn_mulw_add_words_loop:
146 $LD $t0,0($a1) 146 $LD $t0,0($a1)
147 $MULTU $t0,$a3 147 $MULTU $t0,$a3
148 $LD $t1,0($a0) 148 $LD $t1,0($a0)
@@ -201,13 +201,13 @@ $code.=<<___;
201 sltu $at,$ta3,$at 201 sltu $at,$ta3,$at
202 $ST $ta3,-$BNSZ($a0) 202 $ST $ta3,-$BNSZ($a0)
203 .set noreorder 203 .set noreorder
204 bgtz $ta0,.L_bn_mul_add_words_loop 204 bgtz $ta0,.L_bn_mulw_add_words_loop
205 $ADDU $v0,$at 205 $ADDU $v0,$at
206 206
207 beqz $a2,.L_bn_mul_add_words_return 207 beqz $a2,.L_bn_mulw_add_words_return
208 nop 208 nop
209 209
210.L_bn_mul_add_words_tail: 210.L_bn_mulw_add_words_tail:
211 .set reorder 211 .set reorder
212 $LD $t0,0($a1) 212 $LD $t0,0($a1)
213 $MULTU $t0,$a3 213 $MULTU $t0,$a3
@@ -222,7 +222,7 @@ $code.=<<___;
222 sltu $at,$t1,$at 222 sltu $at,$t1,$at
223 $ST $t1,0($a0) 223 $ST $t1,0($a0)
224 $ADDU $v0,$at 224 $ADDU $v0,$at
225 beqz $a2,.L_bn_mul_add_words_return 225 beqz $a2,.L_bn_mulw_add_words_return
226 226
227 $LD $t0,$BNSZ($a1) 227 $LD $t0,$BNSZ($a1)
228 $MULTU $t0,$a3 228 $MULTU $t0,$a3
@@ -237,7 +237,7 @@ $code.=<<___;
237 sltu $at,$t1,$at 237 sltu $at,$t1,$at
238 $ST $t1,$BNSZ($a0) 238 $ST $t1,$BNSZ($a0)
239 $ADDU $v0,$at 239 $ADDU $v0,$at
240 beqz $a2,.L_bn_mul_add_words_return 240 beqz $a2,.L_bn_mulw_add_words_return
241 241
242 $LD $t0,2*$BNSZ($a1) 242 $LD $t0,2*$BNSZ($a1)
243 $MULTU $t0,$a3 243 $MULTU $t0,$a3
@@ -252,7 +252,7 @@ $code.=<<___;
252 $ST $t1,2*$BNSZ($a0) 252 $ST $t1,2*$BNSZ($a0)
253 $ADDU $v0,$at 253 $ADDU $v0,$at
254 254
255.L_bn_mul_add_words_return: 255.L_bn_mulw_add_words_return:
256 .set noreorder 256 .set noreorder
257___ 257___
258$code.=<<___ if ($flavour =~ /nubi/i); 258$code.=<<___ if ($flavour =~ /nubi/i);
@@ -266,22 +266,22 @@ ___
266$code.=<<___; 266$code.=<<___;
267 jr $ra 267 jr $ra
268 move $a0,$v0 268 move $a0,$v0
269.end bn_mul_add_words_internal 269.end bn_mulw_add_words_internal
270 270
271.align 5 271.align 5
272.globl bn_mul_words 272.globl bn_mulw_words
273.ent bn_mul_words 273.ent bn_mulw_words
274bn_mul_words: 274bn_mulw_words:
275 .set noreorder 275 .set noreorder
276 bgtz $a2,bn_mul_words_internal 276 bgtz $a2,bn_mulw_words_internal
277 move $v0,$zero 277 move $v0,$zero
278 jr $ra 278 jr $ra
279 move $a0,$v0 279 move $a0,$v0
280.end bn_mul_words 280.end bn_mulw_words
281 281
282.align 5 282.align 5
283.ent bn_mul_words_internal 283.ent bn_mulw_words_internal
284bn_mul_words_internal: 284bn_mulw_words_internal:
285___ 285___
286$code.=<<___ if ($flavour =~ /nubi/i); 286$code.=<<___ if ($flavour =~ /nubi/i);
287 .frame $sp,6*$SZREG,$ra 287 .frame $sp,6*$SZREG,$ra
@@ -299,9 +299,9 @@ $code.=<<___;
299 .set reorder 299 .set reorder
300 li $minus4,-4 300 li $minus4,-4
301 and $ta0,$a2,$minus4 301 and $ta0,$a2,$minus4
302 beqz $ta0,.L_bn_mul_words_tail 302 beqz $ta0,.L_bn_mulw_words_tail
303 303
304.L_bn_mul_words_loop: 304.L_bn_mulw_words_loop:
305 $LD $t0,0($a1) 305 $LD $t0,0($a1)
306 $MULTU $t0,$a3 306 $MULTU $t0,$a3
307 $LD $t2,$BNSZ($a1) 307 $LD $t2,$BNSZ($a1)
@@ -341,13 +341,13 @@ $code.=<<___;
341 sltu $ta3,$v0,$at 341 sltu $ta3,$v0,$at
342 $ST $v0,-$BNSZ($a0) 342 $ST $v0,-$BNSZ($a0)
343 .set noreorder 343 .set noreorder
344 bgtz $ta0,.L_bn_mul_words_loop 344 bgtz $ta0,.L_bn_mulw_words_loop
345 $ADDU $v0,$ta3,$ta2 345 $ADDU $v0,$ta3,$ta2
346 346
347 beqz $a2,.L_bn_mul_words_return 347 beqz $a2,.L_bn_mulw_words_return
348 nop 348 nop
349 349
350.L_bn_mul_words_tail: 350.L_bn_mulw_words_tail:
351 .set reorder 351 .set reorder
352 $LD $t0,0($a1) 352 $LD $t0,0($a1)
353 $MULTU $t0,$a3 353 $MULTU $t0,$a3
@@ -358,7 +358,7 @@ $code.=<<___;
358 sltu $t1,$v0,$at 358 sltu $t1,$v0,$at
359 $ST $v0,0($a0) 359 $ST $v0,0($a0)
360 $ADDU $v0,$t1,$t0 360 $ADDU $v0,$t1,$t0
361 beqz $a2,.L_bn_mul_words_return 361 beqz $a2,.L_bn_mulw_words_return
362 362
363 $LD $t0,$BNSZ($a1) 363 $LD $t0,$BNSZ($a1)
364 $MULTU $t0,$a3 364 $MULTU $t0,$a3
@@ -369,7 +369,7 @@ $code.=<<___;
369 sltu $t1,$v0,$at 369 sltu $t1,$v0,$at
370 $ST $v0,$BNSZ($a0) 370 $ST $v0,$BNSZ($a0)
371 $ADDU $v0,$t1,$t0 371 $ADDU $v0,$t1,$t0
372 beqz $a2,.L_bn_mul_words_return 372 beqz $a2,.L_bn_mulw_words_return
373 373
374 $LD $t0,2*$BNSZ($a1) 374 $LD $t0,2*$BNSZ($a1)
375 $MULTU $t0,$a3 375 $MULTU $t0,$a3
@@ -380,7 +380,7 @@ $code.=<<___;
380 $ST $v0,2*$BNSZ($a0) 380 $ST $v0,2*$BNSZ($a0)
381 $ADDU $v0,$t1,$t0 381 $ADDU $v0,$t1,$t0
382 382
383.L_bn_mul_words_return: 383.L_bn_mulw_words_return:
384 .set noreorder 384 .set noreorder
385___ 385___
386$code.=<<___ if ($flavour =~ /nubi/i); 386$code.=<<___ if ($flavour =~ /nubi/i);
@@ -394,7 +394,7 @@ ___
394$code.=<<___; 394$code.=<<___;
395 jr $ra 395 jr $ra
396 move $a0,$v0 396 move $a0,$v0
397.end bn_mul_words_internal 397.end bn_mulw_words_internal
398 398
399.align 5 399.align 5
400.globl bn_sqr_words 400.globl bn_sqr_words
diff --git a/src/lib/libcrypto/bn/asm/ppc.pl b/src/lib/libcrypto/bn/asm/ppc.pl
index c9b7f9477d..547baa111c 100644
--- a/src/lib/libcrypto/bn/asm/ppc.pl
+++ b/src/lib/libcrypto/bn/asm/ppc.pl
@@ -205,8 +205,8 @@ $data=<<EOF;
205# bn_add_words 205# bn_add_words
206# bn_div_words 206# bn_div_words
207# bn_sqr_words 207# bn_sqr_words
208# bn_mul_words 208# bn_mulw_words
209# bn_mul_add_words 209# bn_mulw_add_words
210# 210#
211# NOTE: It is possible to optimize this code more for 211# NOTE: It is possible to optimize this code more for
212# specific PowerPC or Power architectures. On the Northstar 212# specific PowerPC or Power architectures. On the Northstar
@@ -249,8 +249,8 @@ $data=<<EOF;
249 .globl .bn_add_words 249 .globl .bn_add_words
250 .globl .bn_div_words 250 .globl .bn_div_words
251 .globl .bn_sqr_words 251 .globl .bn_sqr_words
252 .globl .bn_mul_words 252 .globl .bn_mulw_words
253 .globl .bn_mul_add_words 253 .globl .bn_mulw_add_words
254 254
255# .text section 255# .text section
256 256
@@ -1740,15 +1740,15 @@ Lppcasm_sqr_adios:
1740 1740
1741# 1741#
1742# NOTE: The following label name should be changed to 1742# NOTE: The following label name should be changed to
1743# "bn_mul_words" i.e. remove the first dot 1743# "bn_mulw_words" i.e. remove the first dot
1744# for the gcc compiler. This should be automatically 1744# for the gcc compiler. This should be automatically
1745# done in the build 1745# done in the build
1746# 1746#
1747 1747
1748.align 4 1748.align 4
1749.bn_mul_words: 1749.bn_mulw_words:
1750# 1750#
1751# BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w) 1751# BN_ULONG bn_mulw_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
1752# 1752#
1753# r3 = rp 1753# r3 = rp
1754# r4 = ap 1754# r4 = ap
@@ -1842,15 +1842,15 @@ Lppcasm_mw_OVER:
1842 1842
1843# 1843#
1844# NOTE: The following label name should be changed to 1844# NOTE: The following label name should be changed to
1845# "bn_mul_add_words" i.e. remove the first dot 1845# "bn_mulw_add_words" i.e. remove the first dot
1846# for the gcc compiler. This should be automatically 1846# for the gcc compiler. This should be automatically
1847# done in the build 1847# done in the build
1848# 1848#
1849 1849
1850.align 4 1850.align 4
1851.bn_mul_add_words: 1851.bn_mulw_add_words:
1852# 1852#
1853# BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w) 1853# BN_ULONG bn_mulw_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
1854# 1854#
1855# r3 = rp 1855# r3 = rp
1856# r4 = ap 1856# r4 = ap