Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/powerpc64/ecp_nistp384-ppc64.S
39483 views
1
/* Do not modify. This file is auto-generated from ecp_nistp384-ppc64.pl. */
2
.machine "any"
3
.abiversion 2
4
.text
5
6
.globl p384_felem_mul
7
.type p384_felem_mul,@function
8
.type p384_felem_mul,@function
9
.align 4
10
p384_felem_mul:
11
.localentry p384_felem_mul,0
12
13
14
stdu 1, -176(1)
15
mflr 0
16
std 14, 56(1)
17
std 15, 64(1)
18
std 16, 72(1)
19
std 17, 80(1)
20
std 18, 88(1)
21
std 19, 96(1)
22
std 20, 104(1)
23
std 21, 112(1)
24
std 22, 120(1)
25
26
bl _p384_felem_mul_core
27
28
mtlr 0
29
ld 14, 56(1)
30
ld 15, 64(1)
31
ld 16, 72(1)
32
ld 17, 80(1)
33
ld 18, 88(1)
34
ld 19, 96(1)
35
ld 20, 104(1)
36
ld 21, 112(1)
37
ld 22, 120(1)
38
addi 1, 1, 176
39
blr
40
.size p384_felem_mul,.-p384_felem_mul
41
42
.globl p384_felem_square
43
.type p384_felem_square,@function
44
.type p384_felem_square,@function
45
.align 4
46
p384_felem_square:
47
.localentry p384_felem_square,0
48
49
50
stdu 1, -176(1)
51
mflr 0
52
std 14, 56(1)
53
std 15, 64(1)
54
std 16, 72(1)
55
std 17, 80(1)
56
57
bl _p384_felem_square_core
58
59
mtlr 0
60
ld 14, 56(1)
61
ld 15, 64(1)
62
ld 16, 72(1)
63
ld 17, 80(1)
64
addi 1, 1, 176
65
blr
66
.size p384_felem_square,.-p384_felem_square
67
68
69
70
71
72
.type _p384_felem_mul_core,@function
73
.align 4
74
_p384_felem_mul_core:
75
.localentry _p384_felem_mul_core,0
76
77
78
ld 6,0(4)
79
ld 14,0(5)
80
ld 7,8(4)
81
ld 15,8(5)
82
ld 8,16(4)
83
ld 16,16(5)
84
ld 9,24(4)
85
ld 17,24(5)
86
ld 10,32(4)
87
ld 18,32(5)
88
ld 11,40(4)
89
ld 19,40(5)
90
ld 12,48(4)
91
ld 20,48(5)
92
93
94
mulld 21, 14, 6
95
mulhdu 22, 14, 6
96
std 21, 0(3)
97
std 22, 8(3)
98
99
vxor 0, 0, 0
100
101
102
mtvsrdd 32+13, 14, 6
103
mtvsrdd 32+14, 7, 15
104
.long 0x102D7023
105
106
107
mtvsrdd 32+15, 15, 6
108
mtvsrdd 32+16, 7, 16
109
mtvsrdd 32+17, 0, 8
110
mtvsrdd 32+18, 0, 14
111
.long 0x126F8023
112
.long 0x105194E3
113
114
115
mtvsrdd 32+13, 16, 6
116
mtvsrdd 32+14, 7, 17
117
mtvsrdd 32+15, 14, 8
118
mtvsrdd 32+16, 9, 15
119
.long 0x126D7023
120
.long 0x106F84E3
121
122
123
mtvsrdd 32+13, 17, 6
124
mtvsrdd 32+14, 7, 18
125
mtvsrdd 32+15, 15, 8
126
mtvsrdd 32+16, 9, 16
127
mtvsrdd 32+17, 0, 10
128
mtvsrdd 32+18, 0, 14
129
.long 0x126D7023
130
.long 0x108F84E3
131
.long 0x10919123
132
133
134
mtvsrdd 32+13, 18, 6
135
mtvsrdd 32+14, 7, 19
136
mtvsrdd 32+15, 16, 8
137
mtvsrdd 32+16, 9, 17
138
mtvsrdd 32+17, 14, 10
139
mtvsrdd 32+18, 11, 15
140
.long 0x126D7023
141
.long 0x10AF84E3
142
.long 0x10B19163
143
144
stxv 32+1, 16(3)
145
stxv 32+2, 32(3)
146
stxv 32+3, 48(3)
147
stxv 32+4, 64(3)
148
stxv 32+5, 80(3)
149
150
151
mtvsrdd 32+13, 19, 6
152
mtvsrdd 32+14, 7, 20
153
mtvsrdd 32+15, 17, 8
154
mtvsrdd 32+16, 9, 18
155
mtvsrdd 32+17, 15, 10
156
mtvsrdd 32+18, 11, 16
157
.long 0x126D7023
158
.long 0x10CF84E3
159
mtvsrdd 32+13, 0, 12
160
mtvsrdd 32+14, 0, 14
161
.long 0x127191A3
162
.long 0x10CD74E3
163
164
165
mtvsrdd 32+13, 19, 7
166
mtvsrdd 32+14, 8, 20
167
mtvsrdd 32+15, 17, 9
168
mtvsrdd 32+16, 10, 18
169
mtvsrdd 32+17, 15, 11
170
mtvsrdd 32+18, 12, 16
171
.long 0x126D7023
172
.long 0x10EF84E3
173
.long 0x10F191E3
174
175
176
mtvsrdd 32+13, 19, 8
177
mtvsrdd 32+14, 9, 20
178
mtvsrdd 32+15, 17, 10
179
mtvsrdd 32+16, 11, 18
180
mtvsrdd 32+17, 0, 12
181
mtvsrdd 32+18, 0, 16
182
.long 0x126D7023
183
.long 0x110F84E3
184
.long 0x11119223
185
186
187
mtvsrdd 32+13, 19, 9
188
mtvsrdd 32+14, 10, 20
189
mtvsrdd 32+15, 17, 11
190
mtvsrdd 32+16, 12, 18
191
.long 0x126D7023
192
.long 0x112F84E3
193
194
195
mtvsrdd 32+13, 19, 10
196
mtvsrdd 32+14, 11, 20
197
mtvsrdd 32+15, 0, 12
198
mtvsrdd 32+16, 0, 18
199
.long 0x126D7023
200
.long 0x114F84E3
201
202
203
mtvsrdd 32+17, 19, 11
204
mtvsrdd 32+18, 12, 20
205
.long 0x11719023
206
207
stxv 32+6, 96(3)
208
stxv 32+7, 112(3)
209
stxv 32+8, 128(3)
210
stxv 32+9, 144(3)
211
stxv 32+10, 160(3)
212
stxv 32+11, 176(3)
213
214
215
mulld 21, 20, 12
216
mulhdu 22, 20, 12
217
218
std 21, 192(3)
219
std 22, 200(3)
220
221
blr
222
.size _p384_felem_mul_core,.-_p384_felem_mul_core
223
224
225
226
227
228
.type _p384_felem_square_core,@function
229
.align 4
230
_p384_felem_square_core:
231
.localentry _p384_felem_square_core,0
232
233
234
ld 6, 0(4)
235
ld 7, 8(4)
236
ld 8, 16(4)
237
ld 9, 24(4)
238
ld 10, 32(4)
239
ld 11, 40(4)
240
ld 12, 48(4)
241
242
vxor 0, 0, 0
243
244
245
mulld 14, 6, 6
246
mulhdu 15, 6, 6
247
std 14, 0(3)
248
std 15, 8(3)
249
250
251
add 14, 6, 6
252
mtvsrdd 32+13, 0, 14
253
mtvsrdd 32+14, 0, 7
254
.long 0x102D7023
255
256
257
mtvsrdd 32+15, 7, 14
258
mtvsrdd 32+16, 7, 8
259
.long 0x104F8023
260
261
262
add 15, 7, 7
263
mtvsrdd 32+13, 8, 14
264
mtvsrdd 32+14, 15, 9
265
.long 0x106D7023
266
267
268
mtvsrdd 32+13, 9, 14
269
mtvsrdd 32+14, 15, 10
270
mtvsrdd 32+15, 0, 8
271
.long 0x108D7023
272
.long 0x108F7923
273
274
275
mtvsrdd 32+13, 10, 14
276
mtvsrdd 32+14, 15, 11
277
add 16, 8, 8
278
mtvsrdd 32+15, 0, 16
279
mtvsrdd 32+16, 0, 9
280
.long 0x10AD7023
281
.long 0x10AF8163
282
283
stxv 32+1, 16(3)
284
stxv 32+2, 32(3)
285
stxv 32+3, 48(3)
286
stxv 32+4, 64(3)
287
288
289
mtvsrdd 32+13, 11, 14
290
mtvsrdd 32+14, 15, 12
291
mtvsrdd 32+15, 9, 16
292
mtvsrdd 32+16, 9, 10
293
stxv 32+5, 80(3)
294
.long 0x126D7023
295
.long 0x10CF84E3
296
297
298
add 17, 9, 9
299
mtvsrdd 32+13, 11, 15
300
mtvsrdd 32+14, 16, 12
301
mtvsrdd 32+15, 0, 17
302
mtvsrdd 32+16, 0, 10
303
.long 0x126D7023
304
.long 0x10EF84E3
305
306
307
mtvsrdd 32+13, 11, 16
308
mtvsrdd 32+14, 17, 12
309
mtvsrdd 32+15, 0, 10
310
.long 0x126D7023
311
.long 0x110F7CE3
312
313
314
add 14, 10, 10
315
mtvsrdd 32+13, 11, 17
316
mtvsrdd 32+14, 14, 12
317
.long 0x112D7023
318
319
320
mtvsrdd 32+13, 11, 14
321
mtvsrdd 32+14, 11, 12
322
.long 0x114D7023
323
324
stxv 32+6, 96(3)
325
stxv 32+7, 112(3)
326
327
328
329
330
331
332
333
mulld 6, 12, 11
334
mulhdu 7, 12, 11
335
addc 8, 6, 6
336
adde 9, 7, 7
337
338
stxv 32+8, 128(3)
339
stxv 32+9, 144(3)
340
stxv 32+10, 160(3)
341
342
343
344
mulld 14, 12, 12
345
mulhdu 15, 12, 12
346
347
std 8, 176(3)
348
std 9, 184(3)
349
std 14, 192(3)
350
std 15, 200(3)
351
352
blr
353
.size _p384_felem_square_core,.-_p384_felem_square_core
354
355
356
357
358
.macro F128_X_8 _off1 _off2
359
ld 9,\_off1(3)
360
ld 8,\_off2(3)
361
srdi 10,9,61
362
rldimi 10,8,3,0
363
sldi 9,9,3
364
std 9,\_off1(3)
365
std 10,\_off2(3)
366
.endm
367
368
.globl p384_felem128_mul_by_8
369
.type p384_felem128_mul_by_8,@function
370
.type p384_felem128_mul_by_8,@function
371
.align 4
372
p384_felem128_mul_by_8:
373
.localentry p384_felem128_mul_by_8,0
374
375
376
F128_X_8 0, 8
377
378
F128_X_8 16, 24
379
380
F128_X_8 32, 40
381
382
F128_X_8 48, 56
383
384
F128_X_8 64, 72
385
386
F128_X_8 80, 88
387
388
F128_X_8 96, 104
389
390
F128_X_8 112, 120
391
392
F128_X_8 128, 136
393
394
F128_X_8 144, 152
395
396
F128_X_8 160, 168
397
398
F128_X_8 176, 184
399
400
F128_X_8 192, 200
401
402
blr
403
.size p384_felem128_mul_by_8,.-p384_felem128_mul_by_8
404
405
406
407
408
.macro F128_X_2 _off1 _off2
409
ld 9,\_off1(3)
410
ld 8,\_off2(3)
411
srdi 10,9,63
412
rldimi 10,8,1,0
413
sldi 9,9,1
414
std 9,\_off1(3)
415
std 10,\_off2(3)
416
.endm
417
418
.globl p384_felem128_mul_by_2
419
.type p384_felem128_mul_by_2,@function
420
.type p384_felem128_mul_by_2,@function
421
.align 4
422
p384_felem128_mul_by_2:
423
.localentry p384_felem128_mul_by_2,0
424
425
426
F128_X_2 0, 8
427
428
F128_X_2 16, 24
429
430
F128_X_2 32, 40
431
432
F128_X_2 48, 56
433
434
F128_X_2 64, 72
435
436
F128_X_2 80, 88
437
438
F128_X_2 96, 104
439
440
F128_X_2 112, 120
441
442
F128_X_2 128, 136
443
444
F128_X_2 144, 152
445
446
F128_X_2 160, 168
447
448
F128_X_2 176, 184
449
450
F128_X_2 192, 200
451
452
blr
453
.size p384_felem128_mul_by_2,.-p384_felem128_mul_by_2
454
455
.globl p384_felem_diff128
456
.type p384_felem_diff128,@function
457
.type p384_felem_diff128,@function
458
.align 4
459
p384_felem_diff128:
460
.localentry p384_felem_diff128,0
461
462
463
addis 5, 2, .LConst_two127@toc@ha
464
addi 5, 5, .LConst_two127@toc@l
465
466
ld 10, 0(3)
467
ld 8, 8(3)
468
li 9, 0
469
addc 10, 10, 9
470
li 7, -1
471
rldicr 7, 7, 0, 0
472
adde 8, 8, 7
473
ld 11, 0(4)
474
ld 12, 8(4)
475
subfc 11, 11, 10
476
subfe 12, 12, 8
477
std 11, 0(3)
478
std 12, 8(3)
479
480
481
ld 8, 16(3)
482
ld 7, 24(3)
483
ld 10, 24(5)
484
addc 8, 8, 9
485
adde 7, 7, 10
486
ld 11, 16(4)
487
ld 12, 24(4)
488
subfc 11, 11, 8
489
subfe 12, 12, 7
490
std 11, 16(3)
491
std 12, 24(3)
492
493
ld 8, 32(3)
494
ld 7, 40(3)
495
addc 8, 8, 9
496
adde 7, 7, 10
497
ld 11, 32(4)
498
ld 12, 40(4)
499
subfc 11, 11, 8
500
subfe 12, 12, 7
501
std 11, 32(3)
502
std 12, 40(3)
503
504
ld 8, 48(3)
505
ld 7, 56(3)
506
addc 8, 8, 9
507
adde 7, 7, 10
508
ld 11, 48(4)
509
ld 12, 56(4)
510
subfc 11, 11, 8
511
subfe 12, 12, 7
512
std 11, 48(3)
513
std 12, 56(3)
514
515
ld 8, 64(3)
516
ld 7, 72(3)
517
addc 8, 8, 9
518
adde 7, 7, 10
519
ld 11, 64(4)
520
ld 12, 72(4)
521
subfc 11, 11, 8
522
subfe 12, 12, 7
523
std 11, 64(3)
524
std 12, 72(3)
525
526
ld 8, 80(3)
527
ld 7, 88(3)
528
addc 8, 8, 9
529
adde 7, 7, 10
530
ld 11, 80(4)
531
ld 12, 88(4)
532
subfc 11, 11, 8
533
subfe 12, 12, 7
534
std 11, 80(3)
535
std 12, 88(3)
536
537
ld 8, 96(3)
538
ld 7, 104(3)
539
ld 6, 40(5)
540
addc 8, 8, 9
541
adde 7, 7, 6
542
ld 11, 96(4)
543
ld 12, 104(4)
544
subfc 11, 11, 8
545
subfe 12, 12, 7
546
std 11, 96(3)
547
std 12, 104(3)
548
549
ld 8, 112(3)
550
ld 7, 120(3)
551
ld 6, 56(5)
552
addc 8, 8, 9
553
adde 7, 7, 6
554
ld 11, 112(4)
555
ld 12, 120(4)
556
subfc 11, 11, 8
557
subfe 12, 12, 7
558
std 11, 112(3)
559
std 12, 120(3)
560
561
ld 8, 128(3)
562
ld 7, 136(3)
563
ld 6, 72(5)
564
addc 8, 8, 9
565
adde 7, 7, 6
566
ld 11, 128(4)
567
ld 12, 136(4)
568
subfc 11, 11, 8
569
subfe 12, 12, 7
570
std 11, 128(3)
571
std 12, 136(3)
572
573
ld 8, 144(3)
574
ld 7, 152(3)
575
addc 8, 8, 9
576
adde 7, 7, 10
577
ld 11, 144(4)
578
ld 12, 152(4)
579
subfc 11, 11, 8
580
subfe 12, 12, 7
581
std 11, 144(3)
582
std 12, 152(3)
583
584
ld 8, 160(3)
585
ld 7, 168(3)
586
addc 8, 8, 9
587
adde 7, 7, 10
588
ld 11, 160(4)
589
ld 12, 168(4)
590
subfc 11, 11, 8
591
subfe 12, 12, 7
592
std 11, 160(3)
593
std 12, 168(3)
594
595
ld 8, 176(3)
596
ld 7, 184(3)
597
addc 8, 8, 9
598
adde 7, 7, 10
599
ld 11, 176(4)
600
ld 12, 184(4)
601
subfc 11, 11, 8
602
subfe 12, 12, 7
603
std 11, 176(3)
604
std 12, 184(3)
605
606
ld 8, 192(3)
607
ld 7, 200(3)
608
addc 8, 8, 9
609
adde 7, 7, 10
610
ld 11, 192(4)
611
ld 12, 200(4)
612
subfc 11, 11, 8
613
subfe 12, 12, 7
614
std 11, 192(3)
615
std 12, 200(3)
616
617
blr
618
.size p384_felem_diff128,.-p384_felem_diff128
619
620
.data
621
.align 4
622
.LConst_two127:
623
624
.long 0x00000000, 0x00000000, 0x00000000, 0x80000000
625
626
.long 0x00000000, 0x00000000, 0xffffff80, 0x7fffffff
627
628
.long 0x00000000, 0x00000000, 0xffff7f80, 0x80007fff
629
630
.long 0x00000000, 0x00000000, 0xffffff80, 0x7f7fffff
631
632
.long 0x00000000, 0x00000000, 0x7fffff80, 0x7fffffff
633
634
.abiversion 2
635
.text
636
637
.globl p384_felem_diff_128_64
638
.type p384_felem_diff_128_64,@function
639
.type p384_felem_diff_128_64,@function
640
.align 4
641
p384_felem_diff_128_64:
642
.localentry p384_felem_diff_128_64,0
643
644
addis 5, 2, .LConst_128_two64@toc@ha
645
addi 5, 5, .LConst_128_two64@toc@l
646
647
ld 9, 0(3)
648
ld 10, 8(3)
649
ld 8, 48(5)
650
li 7, 0
651
addc 9, 9, 8
652
li 6, 1
653
adde 10, 10, 6
654
ld 11, 0(4)
655
subfc 8, 11, 9
656
subfe 12, 7, 10
657
std 8, 0(3)
658
std 12, 8(3)
659
660
ld 9, 16(3)
661
ld 10, 24(3)
662
ld 8, 0(5)
663
addc 9, 9, 8
664
addze 10, 10
665
ld 11, 8(4)
666
subfc 11, 11, 9
667
subfe 12, 7, 10
668
std 11, 16(3)
669
std 12, 24(3)
670
671
ld 9, 32(3)
672
ld 10, 40(3)
673
ld 8, 16(5)
674
addc 9, 9, 8
675
addze 10, 10
676
ld 11, 16(4)
677
subfc 11, 11, 9
678
subfe 12, 7, 10
679
std 11, 32(3)
680
std 12, 40(3)
681
682
ld 10, 48(3)
683
ld 8, 56(3)
684
685
li 9, -256
686
addc 10, 10, 9
687
addze 8, 8
688
ld 11, 24(4)
689
subfc 11, 11, 10
690
subfe 12, 7, 8
691
std 11, 48(3)
692
std 12, 56(3)
693
694
ld 10, 64(3)
695
ld 8, 72(3)
696
addc 10, 10, 9
697
addze 8, 8
698
ld 11, 32(4)
699
subfc 11, 11, 10
700
subfe 12, 7, 8
701
std 11, 64(3)
702
std 12, 72(3)
703
704
ld 10, 80(3)
705
ld 8, 88(3)
706
addc 10, 10, 9
707
addze 8, 8
708
ld 11, 40(4)
709
subfc 11, 11, 10
710
subfe 12, 7, 8
711
std 11, 80(3)
712
std 12, 88(3)
713
714
ld 10, 96(3)
715
ld 8, 104(3)
716
addc 10, 10, 9
717
addze 9, 8
718
ld 11, 48(4)
719
subfc 11, 11, 10
720
subfe 12, 7, 9
721
std 11, 96(3)
722
std 12, 104(3)
723
724
blr
725
.size p384_felem_diff_128_64,.-p384_felem_diff_128_64
726
727
.data
728
.align 4
729
.LConst_128_two64:
730
731
.long 0xffffff00, 0xfeffffff, 0x00000000, 0x00000000
732
733
.long 0xffffff00, 0xfffffffe, 0x00000000, 0x00000000
734
735
.long 0xffffff00, 0xffffffff, 0x00000000, 0x00000000
736
737
.long 0xffff0000, 0x0000ffff, 0x00000001, 0x00000000
738
739
.LConst_two60:
740
741
.long 0xfffffff0, 0x0fefffff, 0x0, 0x0
742
743
.long 0xfffff000, 0x10000fff, 0x0, 0x0
744
745
.long 0xeffffff0, 0x0fffffff, 0x0, 0x0
746
747
.long 0xfffffff0, 0x0fffffff, 0x0, 0x0
748
749
.abiversion 2
750
.text
751
752
753
754
.globl p384_felem_diff64
755
.type p384_felem_diff64,@function
756
.type p384_felem_diff64,@function
757
.align 4
758
p384_felem_diff64:
759
.localentry p384_felem_diff64,0
760
761
addis 5, 2, .LConst_two60@toc@ha
762
addi 5, 5, .LConst_two60@toc@l
763
764
ld 9, 0(3)
765
ld 8, 16(5)
766
li 7, 0
767
add 9, 9, 8
768
ld 11, 0(4)
769
subf 8, 11, 9
770
std 8, 0(3)
771
772
ld 9, 8(3)
773
ld 8, 0(5)
774
add 9, 9, 8
775
ld 11, 8(4)
776
subf 11, 11, 9
777
std 11, 8(3)
778
779
ld 9, 16(3)
780
ld 8, 32(5)
781
add 9, 9, 8
782
ld 11, 16(4)
783
subf 11, 11, 9
784
std 11, 16(3)
785
786
ld 10, 24(3)
787
ld 9, 48(5)
788
add 10, 10, 9
789
ld 12, 24(4)
790
subf 12, 12, 10
791
std 12, 24(3)
792
793
ld 10, 32(3)
794
add 10, 10, 9
795
ld 11, 32(4)
796
subf 11, 11, 10
797
std 11, 32(3)
798
799
ld 10, 40(3)
800
add 10, 10, 9
801
ld 12, 40(4)
802
subf 12, 12, 10
803
std 12, 40(3)
804
805
ld 10, 48(3)
806
add 10, 10, 9
807
ld 11, 48(4)
808
subf 11, 11, 10
809
std 11, 48(3)
810
811
blr
812
.size p384_felem_diff64,.-p384_felem_diff64
813
814
.abiversion 2
815
.text
816
817
818
819
.macro SHR o_h o_l in_h in_l nbits
820
srdi \o_l, \in_l, \nbits
821
rldimi \o_l, \in_h, 64-\nbits, 0
822
srdi \o_h, \in_h, \nbits
823
.endm
824
825
826
827
828
.global p384_felem_reduce
829
.type p384_felem_reduce,@function
830
.align 4
831
p384_felem_reduce:
832
.localentry p384_felem_reduce,0
833
834
835
stdu 1, -208(1)
836
mflr 0
837
std 14, 56(1)
838
std 15, 64(1)
839
std 16, 72(1)
840
std 17, 80(1)
841
std 18, 88(1)
842
std 19, 96(1)
843
std 20, 104(1)
844
std 21, 112(1)
845
std 22, 120(1)
846
std 23, 128(1)
847
std 24, 136(1)
848
std 25, 144(1)
849
std 26, 152(1)
850
std 27, 160(1)
851
std 28, 168(1)
852
std 29, 176(1)
853
std 30, 184(1)
854
std 31, 192(1)
855
856
bl _p384_felem_reduce_core
857
858
mtlr 0
859
ld 14, 56(1)
860
ld 15, 64(1)
861
ld 16, 72(1)
862
ld 17, 80(1)
863
ld 18, 88(1)
864
ld 19, 96(1)
865
ld 20, 104(1)
866
ld 21, 112(1)
867
ld 22, 120(1)
868
ld 23, 128(1)
869
ld 24, 136(1)
870
ld 25, 144(1)
871
ld 26, 152(1)
872
ld 27, 160(1)
873
ld 28, 168(1)
874
ld 29, 176(1)
875
ld 30, 184(1)
876
ld 31, 192(1)
877
addi 1, 1, 208
878
blr
879
.size p384_felem_reduce,.-p384_felem_reduce
880
881
882
883
884
885
.type _p384_felem_reduce_core,@function
886
.align 4
887
_p384_felem_reduce_core:
888
.localentry _p384_felem_reduce_core,0
889
890
addis 12, 2, .LConst@toc@ha
891
addi 12, 12, .LConst@toc@l
892
893
894
ld 11, 8(12)
895
896
897
ld 26, 96(4)
898
ld 27, 96+8(4)
899
add 27, 27, 11
900
901
902
ld 24, 80(4)
903
ld 25, 80+8(4)
904
add 25, 25, 11
905
906
907
ld 22, 64(4)
908
ld 23, 64+8(4)
909
add 23, 23, 11
910
911
912
ld 20, 48(4)
913
ld 21, 48+8(4)
914
add 21, 21, 11
915
916
ld 11, 48+8(12)
917
918
919
ld 18, 32(4)
920
ld 19, 32+8(4)
921
add 19, 19, 11
922
923
ld 11, 16+8(12)
924
925
926
ld 16, 16(4)
927
ld 17, 16+8(4)
928
add 17, 17, 11
929
930
ld 11, 32+8(12)
931
932
933
ld 14, 0(4)
934
ld 15, 0+8(4)
935
add 15, 15, 11
936
937
938
li 7, -1
939
940
941
942
943
ld 5, 192(4)
944
ld 6, 192+8(4)
945
SHR 9, 10, 6, 5, 32
946
ld 30, 128(4)
947
ld 31, 136(4)
948
addc 30, 30, 10
949
adde 31, 31, 9
950
951
952
srdi 11, 7, 32
953
and 11, 11, 5
954
sldi 11, 11, 24
955
ld 28, 112(4)
956
ld 29, 120(4)
957
addc 28, 28, 11
958
addze 29, 29
959
960
961
SHR 9, 10, 6, 5, 8
962
addc 28, 28, 10
963
adde 29, 29, 9
964
965
966
andi. 11, 5, 0xff
967
sldi 11, 11, 48
968
addc 26, 26, 11
969
addze 27, 27
970
971
972
SHR 9, 10, 6, 5, 16
973
subfc 26, 10, 26
974
subfe 27, 9, 27
975
976
977
srdi 11, 7, 48
978
and 11, 11, 5
979
sldi 11, 11, 40
980
li 9, 0
981
subfc 24, 11, 24
982
subfe 25, 9, 25
983
984
985
SHR 9, 10, 6, 5, 48
986
addc 26, 26, 10
987
adde 27, 27, 9
988
989
990
srdi 11, 7, 16
991
and 11, 11, 5
992
sldi 11, 11, 8
993
addc 24, 24, 11
994
addze 25, 25
995
996
997
998
999
ld 5, 176(4)
1000
ld 6, 176+8(4)
1001
SHR 9, 10, 6, 5, 32
1002
addc 28, 28, 10
1003
adde 29, 29, 9
1004
1005
1006
srdi 11, 7, 32
1007
and 11, 11, 5
1008
sldi 11, 11, 24
1009
addc 26, 26, 11
1010
addze 27, 27
1011
1012
1013
SHR 9, 10, 6, 5, 8
1014
addc 26, 26, 10
1015
adde 27, 27, 9
1016
1017
1018
andi. 11, 5, 0xff
1019
sldi 11, 11, 48
1020
addc 24, 24, 11
1021
addze 25, 25
1022
1023
1024
SHR 9, 10, 6, 5, 16
1025
subfc 24, 10, 24
1026
subfe 25, 9, 25
1027
1028
1029
srdi 11, 7, 48
1030
and 11, 11, 5
1031
sldi 11, 11, 40
1032
li 9, 0
1033
subfc 22, 11, 22
1034
subfe 23, 9, 23
1035
1036
1037
SHR 9, 10, 6, 5, 48
1038
addc 24, 24, 10
1039
adde 25, 25, 9
1040
1041
1042
srdi 11, 7, 16
1043
and 11, 11, 5
1044
sldi 11, 11, 8
1045
addc 22, 22, 11
1046
addze 23, 23
1047
1048
1049
1050
1051
ld 5, 160(4)
1052
ld 6, 160+8(4)
1053
SHR 9, 10, 6, 5, 32
1054
addc 26, 26, 10
1055
adde 27, 27, 9
1056
1057
1058
srdi 11, 7, 32
1059
and 11, 11, 5
1060
sldi 11, 11, 24
1061
addc 24, 24, 11
1062
addze 25, 25
1063
1064
1065
SHR 9, 10, 6, 5, 8
1066
addc 24, 24, 10
1067
adde 25, 25, 9
1068
1069
1070
andi. 11, 5, 0xff
1071
sldi 11, 11, 48
1072
addc 22, 22, 11
1073
addze 23, 23
1074
1075
1076
SHR 9, 10, 6, 5, 16
1077
subfc 22, 10, 22
1078
subfe 23, 9, 23
1079
1080
1081
srdi 11, 7, 48
1082
and 11, 11, 5
1083
sldi 11, 11, 40
1084
li 9, 0
1085
subfc 20, 11, 20
1086
subfe 21, 9, 21
1087
1088
1089
SHR 9, 10, 6, 5, 48
1090
addc 22, 22, 10
1091
adde 23, 23, 9
1092
1093
1094
srdi 11, 7, 16
1095
and 11, 11, 5
1096
sldi 11, 11, 8
1097
addc 20, 20, 11
1098
addze 21, 21
1099
1100
1101
1102
1103
ld 5, 144(4)
1104
ld 6, 144+8(4)
1105
SHR 9, 10, 6, 5, 32
1106
addc 24, 24, 10
1107
adde 25, 25, 9
1108
1109
1110
srdi 11, 7, 32
1111
and 11, 11, 5
1112
sldi 11, 11, 24
1113
addc 22, 22, 11
1114
addze 23, 23
1115
1116
1117
SHR 9, 10, 6, 5, 8
1118
addc 22, 22, 10
1119
adde 23, 23, 9
1120
1121
1122
andi. 11, 5, 0xff
1123
sldi 11, 11, 48
1124
addc 20, 20, 11
1125
addze 21, 21
1126
1127
1128
SHR 9, 10, 6, 5, 16
1129
subfc 20, 10, 20
1130
subfe 21, 9, 21
1131
1132
1133
srdi 11, 7, 48
1134
and 11, 11, 5
1135
sldi 11, 11, 40
1136
li 9, 0
1137
subfc 18, 11, 18
1138
subfe 19, 9, 19
1139
1140
1141
SHR 9, 10, 6, 5, 48
1142
addc 20, 20, 10
1143
adde 21, 21, 9
1144
1145
1146
srdi 11, 7, 16
1147
and 11, 11, 5
1148
sldi 11, 11, 8
1149
addc 18, 18, 11
1150
addze 19, 19
1151
1152
1153
1154
1155
mr 5, 30
1156
mr 6, 31
1157
SHR 9, 10, 6, 5, 32
1158
addc 22, 22, 10
1159
adde 23, 23, 9
1160
1161
1162
srdi 11, 7, 32
1163
and 11, 11, 5
1164
sldi 11, 11, 24
1165
addc 20, 20, 11
1166
addze 21, 21
1167
1168
1169
SHR 9, 10, 6, 5, 8
1170
addc 20, 20, 10
1171
adde 21, 21, 9
1172
1173
1174
andi. 11, 5, 0xff
1175
sldi 11, 11, 48
1176
addc 18, 18, 11
1177
addze 19, 19
1178
1179
1180
SHR 9, 10, 6, 5, 16
1181
subfc 18, 10, 18
1182
subfe 19, 9, 19
1183
1184
1185
srdi 11, 7, 48
1186
and 11, 11, 5
1187
sldi 11, 11, 40
1188
li 9, 0
1189
subfc 16, 11, 16
1190
subfe 17, 9, 17
1191
1192
1193
SHR 9, 10, 6, 5, 48
1194
addc 18, 18, 10
1195
adde 19, 19, 9
1196
1197
1198
srdi 11, 7, 16
1199
and 11, 11, 5
1200
sldi 11, 11, 8
1201
addc 16, 16, 11
1202
addze 17, 17
1203
1204
1205
1206
1207
mr 5, 28
1208
mr 6, 29
1209
SHR 9, 10, 6, 5, 32
1210
addc 20, 20, 10
1211
adde 21, 21, 9
1212
1213
1214
srdi 11, 7, 32
1215
and 11, 11, 5
1216
sldi 11, 11, 24
1217
addc 18, 18, 11
1218
addze 19, 19
1219
1220
1221
SHR 9, 10, 6, 5, 8
1222
addc 18, 18, 10
1223
adde 19, 19, 9
1224
1225
1226
andi. 11, 5, 0xff
1227
sldi 11, 11, 48
1228
addc 16, 16, 11
1229
addze 17, 17
1230
1231
1232
SHR 9, 10, 6, 5, 16
1233
subfc 16, 10, 16
1234
subfe 17, 9, 17
1235
1236
1237
srdi 11, 7, 48
1238
and 11, 11, 5
1239
sldi 11, 11, 40
1240
li 9, 0
1241
subfc 14, 11, 14
1242
subfe 15, 9, 15
1243
1244
1245
SHR 9, 10, 6, 5, 48
1246
addc 16, 16, 10
1247
adde 17, 17, 9
1248
1249
1250
srdi 11, 7, 16
1251
and 11, 11, 5
1252
sldi 11, 11, 8
1253
addc 14, 14, 11
1254
addze 15, 15
1255
1256
1257
1258
1259
1260
1261
SHR 9, 10, 23, 22, 56
1262
addc 24, 24, 10
1263
adde 25, 25, 9
1264
srdi 11, 7, 8
1265
and 22, 22, 11
1266
li 23, 0
1267
1268
1269
1270
SHR 9, 10, 25, 24, 56
1271
addc 26, 26, 10
1272
adde 27, 27, 9
1273
and 24, 24, 11
1274
li 25, 0
1275
1276
1277
1278
1279
SHR 31, 30, 27, 26, 48
1280
srdi 11, 7, 16
1281
and 26, 26, 11
1282
li 27, 0
1283
1284
1285
1286
SHR 9, 10, 31, 30, 40
1287
addc 20, 20, 10
1288
adde 21, 21, 9
1289
1290
1291
srdi 11, 7, 24
1292
and 10, 30, 11
1293
sldi 10, 10, 16
1294
addc 18, 18, 10
1295
addze 19, 19
1296
1297
1298
SHR 9, 10, 31, 30, 16
1299
addc 18, 18, 10
1300
adde 19, 19, 9
1301
1302
1303
srdi 11, 7, 48
1304
and 10, 30, 11
1305
sldi 10, 10, 40
1306
addc 16, 16, 10
1307
addze 17, 17
1308
1309
1310
SHR 9, 10, 31, 30, 24
1311
subfc 16, 10, 16
1312
subfe 17, 9, 17
1313
1314
1315
srdi 11, 7, 40
1316
and 10, 30, 11
1317
sldi 10, 10, 32
1318
li 9, 0
1319
subfc 14, 10, 14
1320
subfe 15, 9, 15
1321
1322
1323
addc 14, 14, 30
1324
adde 15, 15, 31
1325
1326
1327
1328
1329
SHR 9, 10, 15, 14, 56
1330
addc 16, 16, 10
1331
adde 17, 17, 9
1332
1333
1334
srdi 11, 7, 8
1335
and 14, 14, 11
1336
li 15, 0
1337
1338
1339
SHR 9, 10, 17, 16, 56
1340
addc 18, 18, 10
1341
adde 19, 19, 9
1342
1343
1344
and 16, 16, 11
1345
li 17, 0
1346
1347
1348
SHR 9, 10, 19, 18, 56
1349
addc 20, 20, 10
1350
adde 21, 21, 9
1351
1352
1353
and 18, 18, 11
1354
li 19, 0
1355
1356
1357
SHR 9, 10, 21, 20, 56
1358
addc 22, 22, 10
1359
adde 23, 23, 9
1360
1361
1362
and 20, 20, 11
1363
li 21, 0
1364
1365
1366
SHR 9, 10, 23, 22, 56
1367
addc 24, 24, 10
1368
adde 25, 25, 9
1369
1370
1371
and 22, 22, 11
1372
1373
1374
SHR 9, 10, 25, 24, 56
1375
addc 26, 26, 10
1376
adde 27, 27, 9
1377
1378
1379
and 24, 24, 11
1380
1381
std 14, 0(3)
1382
std 16, 8(3)
1383
std 18, 16(3)
1384
std 20, 24(3)
1385
std 22, 32(3)
1386
std 24, 40(3)
1387
std 26, 48(3)
1388
blr
1389
.size _p384_felem_reduce_core,.-_p384_felem_reduce_core
1390
1391
.data
1392
.align 4
1393
.LConst:
1394
1395
.long 0x0, 0x0, 0xfffffff0, 0xfffffff
1396
1397
.long 0x0, 0x0, 0xfffffff0, 0xfefffff
1398
1399
.long 0x0, 0x0, 0xfffff000, 0x10000fff
1400
1401
.long 0x0, 0x0, 0xeffffff0, 0xfffffff
1402
1403
.abiversion 2
1404
.text
1405
1406
1407
1408
1409
.global p384_felem_square_reduce
1410
.type p384_felem_square_reduce,@function
1411
.align 4
1412
p384_felem_square_reduce:
1413
.localentry p384_felem_square_reduce,0
1414
1415
stdu 1, -512(1)
1416
mflr 0
1417
std 14, 56(1)
1418
std 15, 64(1)
1419
std 16, 72(1)
1420
std 17, 80(1)
1421
std 18, 88(1)
1422
std 19, 96(1)
1423
std 20, 104(1)
1424
std 21, 112(1)
1425
std 22, 120(1)
1426
std 23, 128(1)
1427
std 24, 136(1)
1428
std 25, 144(1)
1429
std 26, 152(1)
1430
std 27, 160(1)
1431
std 28, 168(1)
1432
std 29, 176(1)
1433
std 30, 184(1)
1434
std 31, 192(1)
1435
1436
std 3, 496(1)
1437
addi 3, 1, 208
1438
bl _p384_felem_square_core
1439
1440
mr 4, 3
1441
ld 3, 496(1)
1442
bl _p384_felem_reduce_core
1443
1444
ld 14, 56(1)
1445
ld 15, 64(1)
1446
ld 16, 72(1)
1447
ld 17, 80(1)
1448
ld 18, 88(1)
1449
ld 19, 96(1)
1450
ld 20, 104(1)
1451
ld 21, 112(1)
1452
ld 22, 120(1)
1453
ld 23, 128(1)
1454
ld 24, 136(1)
1455
ld 25, 144(1)
1456
ld 26, 152(1)
1457
ld 27, 160(1)
1458
ld 28, 168(1)
1459
ld 29, 176(1)
1460
ld 30, 184(1)
1461
ld 31, 192(1)
1462
addi 1, 1, 512
1463
mtlr 0
1464
blr
1465
.size p384_felem_square_reduce,.-p384_felem_square_reduce
1466
1467
1468
1469
1470
.global p384_felem_mul_reduce
1471
.type p384_felem_mul_reduce,@function
1472
.align 5
1473
p384_felem_mul_reduce:
1474
.localentry p384_felem_mul_reduce,0
1475
1476
stdu 1, -512(1)
1477
mflr 0
1478
std 14, 56(1)
1479
std 15, 64(1)
1480
std 16, 72(1)
1481
std 17, 80(1)
1482
std 18, 88(1)
1483
std 19, 96(1)
1484
std 20, 104(1)
1485
std 21, 112(1)
1486
std 22, 120(1)
1487
std 23, 128(1)
1488
std 24, 136(1)
1489
std 25, 144(1)
1490
std 26, 152(1)
1491
std 27, 160(1)
1492
std 28, 168(1)
1493
std 29, 176(1)
1494
std 30, 184(1)
1495
std 31, 192(1)
1496
1497
std 3, 496(1)
1498
addi 3, 1, 208
1499
bl _p384_felem_mul_core
1500
1501
mr 4, 3
1502
ld 3, 496(1)
1503
bl _p384_felem_reduce_core
1504
1505
ld 14, 56(1)
1506
ld 15, 64(1)
1507
ld 16, 72(1)
1508
ld 17, 80(1)
1509
ld 18, 88(1)
1510
ld 19, 96(1)
1511
ld 20, 104(1)
1512
ld 21, 112(1)
1513
ld 22, 120(1)
1514
ld 23, 128(1)
1515
ld 24, 136(1)
1516
ld 25, 144(1)
1517
ld 26, 152(1)
1518
ld 27, 160(1)
1519
ld 28, 168(1)
1520
ld 29, 176(1)
1521
ld 30, 184(1)
1522
ld 31, 192(1)
1523
addi 1, 1, 512
1524
mtlr 0
1525
blr
1526
.size p384_felem_mul_reduce,.-p384_felem_mul_reduce
1527
1528