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