1.text 2 3.globl x25519_fe51_mul 4.type x25519_fe51_mul,@function 5.align 32 6x25519_fe51_mul: 7.cfi_startproc 8 pushq %rbp 9.cfi_adjust_cfa_offset 8 10.cfi_offset %rbp,-16 11 pushq %rbx 12.cfi_adjust_cfa_offset 8 13.cfi_offset %rbx,-24 14 pushq %r12 15.cfi_adjust_cfa_offset 8 16.cfi_offset %r12,-32 17 pushq %r13 18.cfi_adjust_cfa_offset 8 19.cfi_offset %r13,-40 20 pushq %r14 21.cfi_adjust_cfa_offset 8 22.cfi_offset %r14,-48 23 pushq %r15 24.cfi_adjust_cfa_offset 8 25.cfi_offset %r15,-56 26 leaq -40(%rsp),%rsp 27.cfi_adjust_cfa_offset 40 28.Lfe51_mul_body: 29 30 movq 0(%rsi),%rax 31 movq 0(%rdx),%r11 32 movq 8(%rdx),%r12 33 movq 16(%rdx),%r13 34 movq 24(%rdx),%rbp 35 movq 32(%rdx),%r14 36 37 movq %rdi,32(%rsp) 38 movq %rax,%rdi 39 mulq %r11 40 movq %r11,0(%rsp) 41 movq %rax,%rbx 42 movq %rdi,%rax 43 movq %rdx,%rcx 44 mulq %r12 45 movq %r12,8(%rsp) 46 movq %rax,%r8 47 movq %rdi,%rax 48 leaq (%r14,%r14,8),%r15 49 movq %rdx,%r9 50 mulq %r13 51 movq %r13,16(%rsp) 52 movq %rax,%r10 53 movq %rdi,%rax 54 leaq (%r14,%r15,2),%rdi 55 movq %rdx,%r11 56 mulq %rbp 57 movq %rax,%r12 58 movq 0(%rsi),%rax 59 movq %rdx,%r13 60 mulq %r14 61 movq %rax,%r14 62 movq 8(%rsi),%rax 63 movq %rdx,%r15 64 65 mulq %rdi 66 addq %rax,%rbx 67 movq 16(%rsi),%rax 68 adcq %rdx,%rcx 69 mulq %rdi 70 addq %rax,%r8 71 movq 24(%rsi),%rax 72 adcq %rdx,%r9 73 mulq %rdi 74 addq %rax,%r10 75 movq 32(%rsi),%rax 76 adcq %rdx,%r11 77 mulq %rdi 78 imulq $19,%rbp,%rdi 79 addq %rax,%r12 80 movq 8(%rsi),%rax 81 adcq %rdx,%r13 82 mulq %rbp 83 movq 16(%rsp),%rbp 84 addq %rax,%r14 85 movq 16(%rsi),%rax 86 adcq %rdx,%r15 87 88 mulq %rdi 89 addq %rax,%rbx 90 movq 24(%rsi),%rax 91 adcq %rdx,%rcx 92 mulq %rdi 93 addq %rax,%r8 94 movq 32(%rsi),%rax 95 adcq %rdx,%r9 96 mulq %rdi 97 imulq $19,%rbp,%rdi 98 addq %rax,%r10 99 movq 8(%rsi),%rax 100 adcq %rdx,%r11 101 mulq %rbp 102 addq %rax,%r12 103 movq 16(%rsi),%rax 104 adcq %rdx,%r13 105 mulq %rbp 106 movq 8(%rsp),%rbp 107 addq %rax,%r14 108 movq 24(%rsi),%rax 109 adcq %rdx,%r15 110 111 mulq %rdi 112 addq %rax,%rbx 113 movq 32(%rsi),%rax 114 adcq %rdx,%rcx 115 mulq %rdi 116 addq %rax,%r8 117 movq 8(%rsi),%rax 118 adcq %rdx,%r9 119 mulq %rbp 120 imulq $19,%rbp,%rdi 121 addq %rax,%r10 122 movq 16(%rsi),%rax 123 adcq %rdx,%r11 124 mulq %rbp 125 addq %rax,%r12 126 movq 24(%rsi),%rax 127 adcq %rdx,%r13 128 mulq %rbp 129 movq 0(%rsp),%rbp 130 addq %rax,%r14 131 movq 32(%rsi),%rax 132 adcq %rdx,%r15 133 134 mulq %rdi 135 addq %rax,%rbx 136 movq 8(%rsi),%rax 137 adcq %rdx,%rcx 138 mulq %rbp 139 addq %rax,%r8 140 movq 16(%rsi),%rax 141 adcq %rdx,%r9 142 mulq %rbp 143 addq %rax,%r10 144 movq 24(%rsi),%rax 145 adcq %rdx,%r11 146 mulq %rbp 147 addq %rax,%r12 148 movq 32(%rsi),%rax 149 adcq %rdx,%r13 150 mulq %rbp 151 addq %rax,%r14 152 adcq %rdx,%r15 153 154 movq 32(%rsp),%rdi 155 jmp .Lreduce51 156.Lfe51_mul_epilogue: 157.cfi_endproc 158.size x25519_fe51_mul,.-x25519_fe51_mul 159 160.globl x25519_fe51_sqr 161.type x25519_fe51_sqr,@function 162.align 32 163x25519_fe51_sqr: 164.cfi_startproc 165 pushq %rbp 166.cfi_adjust_cfa_offset 8 167.cfi_offset %rbp,-16 168 pushq %rbx 169.cfi_adjust_cfa_offset 8 170.cfi_offset %rbx,-24 171 pushq %r12 172.cfi_adjust_cfa_offset 8 173.cfi_offset %r12,-32 174 pushq %r13 175.cfi_adjust_cfa_offset 8 176.cfi_offset %r13,-40 177 pushq %r14 178.cfi_adjust_cfa_offset 8 179.cfi_offset %r14,-48 180 pushq %r15 181.cfi_adjust_cfa_offset 8 182.cfi_offset %r15,-56 183 leaq -40(%rsp),%rsp 184.cfi_adjust_cfa_offset 40 185.Lfe51_sqr_body: 186 187 movq 0(%rsi),%rax 188 movq 16(%rsi),%r15 189 movq 32(%rsi),%rbp 190 191 movq %rdi,32(%rsp) 192 leaq (%rax,%rax,1),%r14 193 mulq %rax 194 movq %rax,%rbx 195 movq 8(%rsi),%rax 196 movq %rdx,%rcx 197 mulq %r14 198 movq %rax,%r8 199 movq %r15,%rax 200 movq %r15,0(%rsp) 201 movq %rdx,%r9 202 mulq %r14 203 movq %rax,%r10 204 movq 24(%rsi),%rax 205 movq %rdx,%r11 206 imulq $19,%rbp,%rdi 207 mulq %r14 208 movq %rax,%r12 209 movq %rbp,%rax 210 movq %rdx,%r13 211 mulq %r14 212 movq %rax,%r14 213 movq %rbp,%rax 214 movq %rdx,%r15 215 216 mulq %rdi 217 addq %rax,%r12 218 movq 8(%rsi),%rax 219 adcq %rdx,%r13 220 221 movq 24(%rsi),%rsi 222 leaq (%rax,%rax,1),%rbp 223 mulq %rax 224 addq %rax,%r10 225 movq 0(%rsp),%rax 226 adcq %rdx,%r11 227 mulq %rbp 228 addq %rax,%r12 229 movq %rbp,%rax 230 adcq %rdx,%r13 231 mulq %rsi 232 addq %rax,%r14 233 movq %rbp,%rax 234 adcq %rdx,%r15 235 imulq $19,%rsi,%rbp 236 mulq %rdi 237 addq %rax,%rbx 238 leaq (%rsi,%rsi,1),%rax 239 adcq %rdx,%rcx 240 241 mulq %rdi 242 addq %rax,%r10 243 movq %rsi,%rax 244 adcq %rdx,%r11 245 mulq %rbp 246 addq %rax,%r8 247 movq 0(%rsp),%rax 248 adcq %rdx,%r9 249 250 leaq (%rax,%rax,1),%rsi 251 mulq %rax 252 addq %rax,%r14 253 movq %rbp,%rax 254 adcq %rdx,%r15 255 mulq %rsi 256 addq %rax,%rbx 257 movq %rsi,%rax 258 adcq %rdx,%rcx 259 mulq %rdi 260 addq %rax,%r8 261 adcq %rdx,%r9 262 263 movq 32(%rsp),%rdi 264 jmp .Lreduce51 265 266.align 32 267.Lreduce51: 268 movq $0x7ffffffffffff,%rbp 269 270 movq %r10,%rdx 271 shrq $51,%r10 272 shlq $13,%r11 273 andq %rbp,%rdx 274 orq %r10,%r11 275 addq %r11,%r12 276 adcq $0,%r13 277 278 movq %rbx,%rax 279 shrq $51,%rbx 280 shlq $13,%rcx 281 andq %rbp,%rax 282 orq %rbx,%rcx 283 addq %rcx,%r8 284 adcq $0,%r9 285 286 movq %r12,%rbx 287 shrq $51,%r12 288 shlq $13,%r13 289 andq %rbp,%rbx 290 orq %r12,%r13 291 addq %r13,%r14 292 adcq $0,%r15 293 294 movq %r8,%rcx 295 shrq $51,%r8 296 shlq $13,%r9 297 andq %rbp,%rcx 298 orq %r8,%r9 299 addq %r9,%rdx 300 301 movq %r14,%r10 302 shrq $51,%r14 303 shlq $13,%r15 304 andq %rbp,%r10 305 orq %r14,%r15 306 307 leaq (%r15,%r15,8),%r14 308 leaq (%r15,%r14,2),%r15 309 addq %r15,%rax 310 311 movq %rdx,%r8 312 andq %rbp,%rdx 313 shrq $51,%r8 314 addq %r8,%rbx 315 316 movq %rax,%r9 317 andq %rbp,%rax 318 shrq $51,%r9 319 addq %r9,%rcx 320 321 movq %rax,0(%rdi) 322 movq %rcx,8(%rdi) 323 movq %rdx,16(%rdi) 324 movq %rbx,24(%rdi) 325 movq %r10,32(%rdi) 326 327 movq 40(%rsp),%r15 328.cfi_restore %r15 329 movq 48(%rsp),%r14 330.cfi_restore %r14 331 movq 56(%rsp),%r13 332.cfi_restore %r13 333 movq 64(%rsp),%r12 334.cfi_restore %r12 335 movq 72(%rsp),%rbx 336.cfi_restore %rbx 337 movq 80(%rsp),%rbp 338.cfi_restore %rbp 339 leaq 88(%rsp),%rsp 340.cfi_adjust_cfa_offset 88 341.Lfe51_sqr_epilogue: 342 .byte 0xf3,0xc3 343.cfi_endproc 344.size x25519_fe51_sqr,.-x25519_fe51_sqr 345 346.globl x25519_fe51_mul121666 347.type x25519_fe51_mul121666,@function 348.align 32 349x25519_fe51_mul121666: 350.cfi_startproc 351 pushq %rbp 352.cfi_adjust_cfa_offset 8 353.cfi_offset %rbp,-16 354 pushq %rbx 355.cfi_adjust_cfa_offset 8 356.cfi_offset %rbx,-24 357 pushq %r12 358.cfi_adjust_cfa_offset 8 359.cfi_offset %r12,-32 360 pushq %r13 361.cfi_adjust_cfa_offset 8 362.cfi_offset %r13,-40 363 pushq %r14 364.cfi_adjust_cfa_offset 8 365.cfi_offset %r14,-48 366 pushq %r15 367.cfi_adjust_cfa_offset 8 368.cfi_offset %r15,-56 369 leaq -40(%rsp),%rsp 370.cfi_adjust_cfa_offset 40 371.Lfe51_mul121666_body: 372 movl $121666,%eax 373 374 mulq 0(%rsi) 375 movq %rax,%rbx 376 movl $121666,%eax 377 movq %rdx,%rcx 378 mulq 8(%rsi) 379 movq %rax,%r8 380 movl $121666,%eax 381 movq %rdx,%r9 382 mulq 16(%rsi) 383 movq %rax,%r10 384 movl $121666,%eax 385 movq %rdx,%r11 386 mulq 24(%rsi) 387 movq %rax,%r12 388 movl $121666,%eax 389 movq %rdx,%r13 390 mulq 32(%rsi) 391 movq %rax,%r14 392 movq %rdx,%r15 393 394 jmp .Lreduce51 395.Lfe51_mul121666_epilogue: 396.cfi_endproc 397.size x25519_fe51_mul121666,.-x25519_fe51_mul121666 398 399.globl x25519_fe64_eligible 400.type x25519_fe64_eligible,@function 401.align 32 402x25519_fe64_eligible: 403.cfi_startproc 404 movl OPENSSL_ia32cap_P+8(%rip),%ecx 405 xorl %eax,%eax 406 andl $0x80100,%ecx 407 cmpl $0x80100,%ecx 408 cmovel %ecx,%eax 409 .byte 0xf3,0xc3 410.cfi_endproc 411.size x25519_fe64_eligible,.-x25519_fe64_eligible 412 413.globl x25519_fe64_mul 414.type x25519_fe64_mul,@function 415.align 32 416x25519_fe64_mul: 417.cfi_startproc 418 pushq %rbp 419.cfi_adjust_cfa_offset 8 420.cfi_offset %rbp,-16 421 pushq %rbx 422.cfi_adjust_cfa_offset 8 423.cfi_offset %rbx,-24 424 pushq %r12 425.cfi_adjust_cfa_offset 8 426.cfi_offset %r12,-32 427 pushq %r13 428.cfi_adjust_cfa_offset 8 429.cfi_offset %r13,-40 430 pushq %r14 431.cfi_adjust_cfa_offset 8 432.cfi_offset %r14,-48 433 pushq %r15 434.cfi_adjust_cfa_offset 8 435.cfi_offset %r15,-56 436 pushq %rdi 437.cfi_adjust_cfa_offset 8 438.cfi_offset %rdi,-64 439 leaq -16(%rsp),%rsp 440.cfi_adjust_cfa_offset 16 441.Lfe64_mul_body: 442 443 movq %rdx,%rax 444 movq 0(%rdx),%rbp 445 movq 0(%rsi),%rdx 446 movq 8(%rax),%rcx 447 movq 16(%rax),%r14 448 movq 24(%rax),%r15 449 450 mulxq %rbp,%r8,%rax 451 xorl %edi,%edi 452 mulxq %rcx,%r9,%rbx 453 adcxq %rax,%r9 454 mulxq %r14,%r10,%rax 455 adcxq %rbx,%r10 456 mulxq %r15,%r11,%r12 457 movq 8(%rsi),%rdx 458 adcxq %rax,%r11 459 movq %r14,(%rsp) 460 adcxq %rdi,%r12 461 462 mulxq %rbp,%rax,%rbx 463 adoxq %rax,%r9 464 adcxq %rbx,%r10 465 mulxq %rcx,%rax,%rbx 466 adoxq %rax,%r10 467 adcxq %rbx,%r11 468 mulxq %r14,%rax,%rbx 469 adoxq %rax,%r11 470 adcxq %rbx,%r12 471 mulxq %r15,%rax,%r13 472 movq 16(%rsi),%rdx 473 adoxq %rax,%r12 474 adcxq %rdi,%r13 475 adoxq %rdi,%r13 476 477 mulxq %rbp,%rax,%rbx 478 adcxq %rax,%r10 479 adoxq %rbx,%r11 480 mulxq %rcx,%rax,%rbx 481 adcxq %rax,%r11 482 adoxq %rbx,%r12 483 mulxq %r14,%rax,%rbx 484 adcxq %rax,%r12 485 adoxq %rbx,%r13 486 mulxq %r15,%rax,%r14 487 movq 24(%rsi),%rdx 488 adcxq %rax,%r13 489 adoxq %rdi,%r14 490 adcxq %rdi,%r14 491 492 mulxq %rbp,%rax,%rbx 493 adoxq %rax,%r11 494 adcxq %rbx,%r12 495 mulxq %rcx,%rax,%rbx 496 adoxq %rax,%r12 497 adcxq %rbx,%r13 498 mulxq (%rsp),%rax,%rbx 499 adoxq %rax,%r13 500 adcxq %rbx,%r14 501 mulxq %r15,%rax,%r15 502 movl $38,%edx 503 adoxq %rax,%r14 504 adcxq %rdi,%r15 505 adoxq %rdi,%r15 506 507 jmp .Lreduce64 508.Lfe64_mul_epilogue: 509.cfi_endproc 510.size x25519_fe64_mul,.-x25519_fe64_mul 511 512.globl x25519_fe64_sqr 513.type x25519_fe64_sqr,@function 514.align 32 515x25519_fe64_sqr: 516.cfi_startproc 517 pushq %rbp 518.cfi_adjust_cfa_offset 8 519.cfi_offset %rbp,-16 520 pushq %rbx 521.cfi_adjust_cfa_offset 8 522.cfi_offset %rbx,-24 523 pushq %r12 524.cfi_adjust_cfa_offset 8 525.cfi_offset %r12,-32 526 pushq %r13 527.cfi_adjust_cfa_offset 8 528.cfi_offset %r13,-40 529 pushq %r14 530.cfi_adjust_cfa_offset 8 531.cfi_offset %r14,-48 532 pushq %r15 533.cfi_adjust_cfa_offset 8 534.cfi_offset %r15,-56 535 pushq %rdi 536.cfi_adjust_cfa_offset 8 537.cfi_offset %rdi,-64 538 leaq -16(%rsp),%rsp 539.cfi_adjust_cfa_offset 16 540.Lfe64_sqr_body: 541 542 movq 0(%rsi),%rdx 543 movq 8(%rsi),%rcx 544 movq 16(%rsi),%rbp 545 movq 24(%rsi),%rsi 546 547 548 mulxq %rdx,%r8,%r15 549 mulxq %rcx,%r9,%rax 550 xorl %edi,%edi 551 mulxq %rbp,%r10,%rbx 552 adcxq %rax,%r10 553 mulxq %rsi,%r11,%r12 554 movq %rcx,%rdx 555 adcxq %rbx,%r11 556 adcxq %rdi,%r12 557 558 559 mulxq %rbp,%rax,%rbx 560 adoxq %rax,%r11 561 adcxq %rbx,%r12 562 mulxq %rsi,%rax,%r13 563 movq %rbp,%rdx 564 adoxq %rax,%r12 565 adcxq %rdi,%r13 566 567 568 mulxq %rsi,%rax,%r14 569 movq %rcx,%rdx 570 adoxq %rax,%r13 571 adcxq %rdi,%r14 572 adoxq %rdi,%r14 573 574 adcxq %r9,%r9 575 adoxq %r15,%r9 576 adcxq %r10,%r10 577 mulxq %rdx,%rax,%rbx 578 movq %rbp,%rdx 579 adcxq %r11,%r11 580 adoxq %rax,%r10 581 adcxq %r12,%r12 582 adoxq %rbx,%r11 583 mulxq %rdx,%rax,%rbx 584 movq %rsi,%rdx 585 adcxq %r13,%r13 586 adoxq %rax,%r12 587 adcxq %r14,%r14 588 adoxq %rbx,%r13 589 mulxq %rdx,%rax,%r15 590 movl $38,%edx 591 adoxq %rax,%r14 592 adcxq %rdi,%r15 593 adoxq %rdi,%r15 594 jmp .Lreduce64 595 596.align 32 597.Lreduce64: 598 mulxq %r12,%rax,%rbx 599 adcxq %rax,%r8 600 adoxq %rbx,%r9 601 mulxq %r13,%rax,%rbx 602 adcxq %rax,%r9 603 adoxq %rbx,%r10 604 mulxq %r14,%rax,%rbx 605 adcxq %rax,%r10 606 adoxq %rbx,%r11 607 mulxq %r15,%rax,%r12 608 adcxq %rax,%r11 609 adoxq %rdi,%r12 610 adcxq %rdi,%r12 611 612 movq 16(%rsp),%rdi 613 imulq %rdx,%r12 614 615 addq %r12,%r8 616 adcq $0,%r9 617 adcq $0,%r10 618 adcq $0,%r11 619 620 sbbq %rax,%rax 621 andq $38,%rax 622 623 addq %rax,%r8 624 movq %r9,8(%rdi) 625 movq %r10,16(%rdi) 626 movq %r11,24(%rdi) 627 movq %r8,0(%rdi) 628 629 movq 24(%rsp),%r15 630.cfi_restore %r15 631 movq 32(%rsp),%r14 632.cfi_restore %r14 633 movq 40(%rsp),%r13 634.cfi_restore %r13 635 movq 48(%rsp),%r12 636.cfi_restore %r12 637 movq 56(%rsp),%rbx 638.cfi_restore %rbx 639 movq 64(%rsp),%rbp 640.cfi_restore %rbp 641 leaq 72(%rsp),%rsp 642.cfi_adjust_cfa_offset 88 643.Lfe64_sqr_epilogue: 644 .byte 0xf3,0xc3 645.cfi_endproc 646.size x25519_fe64_sqr,.-x25519_fe64_sqr 647 648.globl x25519_fe64_mul121666 649.type x25519_fe64_mul121666,@function 650.align 32 651x25519_fe64_mul121666: 652.Lfe64_mul121666_body: 653.cfi_startproc 654 movl $121666,%edx 655 mulxq 0(%rsi),%r8,%rcx 656 mulxq 8(%rsi),%r9,%rax 657 addq %rcx,%r9 658 mulxq 16(%rsi),%r10,%rcx 659 adcq %rax,%r10 660 mulxq 24(%rsi),%r11,%rax 661 adcq %rcx,%r11 662 adcq $0,%rax 663 664 imulq $38,%rax,%rax 665 666 addq %rax,%r8 667 adcq $0,%r9 668 adcq $0,%r10 669 adcq $0,%r11 670 671 sbbq %rax,%rax 672 andq $38,%rax 673 674 addq %rax,%r8 675 movq %r9,8(%rdi) 676 movq %r10,16(%rdi) 677 movq %r11,24(%rdi) 678 movq %r8,0(%rdi) 679 680.Lfe64_mul121666_epilogue: 681 .byte 0xf3,0xc3 682.cfi_endproc 683.size x25519_fe64_mul121666,.-x25519_fe64_mul121666 684 685.globl x25519_fe64_add 686.type x25519_fe64_add,@function 687.align 32 688x25519_fe64_add: 689.Lfe64_add_body: 690.cfi_startproc 691 movq 0(%rsi),%r8 692 movq 8(%rsi),%r9 693 movq 16(%rsi),%r10 694 movq 24(%rsi),%r11 695 696 addq 0(%rdx),%r8 697 adcq 8(%rdx),%r9 698 adcq 16(%rdx),%r10 699 adcq 24(%rdx),%r11 700 701 sbbq %rax,%rax 702 andq $38,%rax 703 704 addq %rax,%r8 705 adcq $0,%r9 706 adcq $0,%r10 707 movq %r9,8(%rdi) 708 adcq $0,%r11 709 movq %r10,16(%rdi) 710 sbbq %rax,%rax 711 movq %r11,24(%rdi) 712 andq $38,%rax 713 714 addq %rax,%r8 715 movq %r8,0(%rdi) 716 717.Lfe64_add_epilogue: 718 .byte 0xf3,0xc3 719.cfi_endproc 720.size x25519_fe64_add,.-x25519_fe64_add 721 722.globl x25519_fe64_sub 723.type x25519_fe64_sub,@function 724.align 32 725x25519_fe64_sub: 726.Lfe64_sub_body: 727.cfi_startproc 728 movq 0(%rsi),%r8 729 movq 8(%rsi),%r9 730 movq 16(%rsi),%r10 731 movq 24(%rsi),%r11 732 733 subq 0(%rdx),%r8 734 sbbq 8(%rdx),%r9 735 sbbq 16(%rdx),%r10 736 sbbq 24(%rdx),%r11 737 738 sbbq %rax,%rax 739 andq $38,%rax 740 741 subq %rax,%r8 742 sbbq $0,%r9 743 sbbq $0,%r10 744 movq %r9,8(%rdi) 745 sbbq $0,%r11 746 movq %r10,16(%rdi) 747 sbbq %rax,%rax 748 movq %r11,24(%rdi) 749 andq $38,%rax 750 751 subq %rax,%r8 752 movq %r8,0(%rdi) 753 754.Lfe64_sub_epilogue: 755 .byte 0xf3,0xc3 756.cfi_endproc 757.size x25519_fe64_sub,.-x25519_fe64_sub 758 759.globl x25519_fe64_tobytes 760.type x25519_fe64_tobytes,@function 761.align 32 762x25519_fe64_tobytes: 763.Lfe64_to_body: 764.cfi_startproc 765 movq 0(%rsi),%r8 766 movq 8(%rsi),%r9 767 movq 16(%rsi),%r10 768 movq 24(%rsi),%r11 769 770 771 leaq (%r11,%r11,1),%rax 772 sarq $63,%r11 773 shrq $1,%rax 774 andq $19,%r11 775 addq $19,%r11 776 777 addq %r11,%r8 778 adcq $0,%r9 779 adcq $0,%r10 780 adcq $0,%rax 781 782 leaq (%rax,%rax,1),%r11 783 sarq $63,%rax 784 shrq $1,%r11 785 notq %rax 786 andq $19,%rax 787 788 subq %rax,%r8 789 sbbq $0,%r9 790 sbbq $0,%r10 791 sbbq $0,%r11 792 793 movq %r8,0(%rdi) 794 movq %r9,8(%rdi) 795 movq %r10,16(%rdi) 796 movq %r11,24(%rdi) 797 798.Lfe64_to_epilogue: 799 .byte 0xf3,0xc3 800.cfi_endproc 801.size x25519_fe64_tobytes,.-x25519_fe64_tobytes 802.byte 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101,115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 803