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 10p384_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 46p384_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 372p384_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 422p384_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 459p384_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 641p384_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 758p384_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 831p384_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 1412p384_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 1473p384_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