2 /* Do not modify. This file is auto-generated from ecp_nistz256-x86_64.pl. */
9 .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001
13 .quad 0x0000000000000003, 0xfffffffbffffffff, 0xfffffffffffffffe, 0x00000004fffffffd
22 .quad 0x0000000000000001, 0xffffffff00000000, 0xffffffffffffffff, 0x00000000fffffffe
24 .globl ecp_nistz256_mul_by_2
25 .type ecp_nistz256_mul_by_2,@function
27 ecp_nistz256_mul_by_2:
38 leaq .Lpoly(%rip),%rsi
65 .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2
69 .globl ecp_nistz256_div_by_2
70 .type ecp_nistz256_div_by_2,@function
72 ecp_nistz256_div_by_2:
81 leaq .Lpoly(%rip),%rsi
125 .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2
129 .globl ecp_nistz256_mul_by_3
130 .type ecp_nistz256_mul_by_3,@function
132 ecp_nistz256_mul_by_3:
151 sbbq .Lpoly+8(%rip),%r9
154 sbbq .Lpoly+24(%rip),%r11
173 sbbq .Lpoly+8(%rip),%r9
176 sbbq .Lpoly+24(%rip),%r11
191 .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3
195 .globl ecp_nistz256_add
196 .type ecp_nistz256_add,@function
207 leaq .Lpoly(%rip),%rsi
237 .size ecp_nistz256_add,.-ecp_nistz256_add
241 .globl ecp_nistz256_sub
242 .type ecp_nistz256_sub,@function
253 leaq .Lpoly(%rip),%rsi
283 .size ecp_nistz256_sub,.-ecp_nistz256_sub
287 .globl ecp_nistz256_neg
288 .type ecp_nistz256_neg,@function
305 leaq .Lpoly(%rip),%rsi
329 .size ecp_nistz256_neg,.-ecp_nistz256_neg
334 .globl ecp_nistz256_to_mont
335 .type ecp_nistz256_to_mont,@function
337 ecp_nistz256_to_mont:
339 andl OPENSSL_ia32cap_P+8(%rip),%ecx
342 .size ecp_nistz256_to_mont,.-ecp_nistz256_to_mont
350 .globl ecp_nistz256_mul_mont
351 .type ecp_nistz256_mul_mont,@function
353 ecp_nistz256_mul_mont:
355 andl OPENSSL_ia32cap_P+8(%rip),%ecx
372 call __ecp_nistz256_mul_montq
385 call __ecp_nistz256_mul_montx
394 .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont
396 .type __ecp_nistz256_mul_montq,@function
398 __ecp_nistz256_mul_montq:
403 movq .Lpoly+8(%rip),%r14
409 movq .Lpoly+24(%rip),%r15
610 .size __ecp_nistz256_mul_montq,.-__ecp_nistz256_mul_montq
619 .globl ecp_nistz256_sqr_mont
620 .type ecp_nistz256_sqr_mont,@function
622 ecp_nistz256_sqr_mont:
624 andl OPENSSL_ia32cap_P+8(%rip),%ecx
638 call __ecp_nistz256_sqr_montq
649 call __ecp_nistz256_sqr_montx
658 .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont
660 .type __ecp_nistz256_sqr_montq,@function
662 __ecp_nistz256_sqr_montq:
737 movq .Lpoly+8(%rip),%rsi
738 movq .Lpoly+24(%rip),%rbp
820 .size __ecp_nistz256_sqr_montq,.-__ecp_nistz256_sqr_montq
821 .type __ecp_nistz256_mul_montx,@function
823 __ecp_nistz256_mul_montx:
831 movq .Lpoly+24(%rip),%r15
855 mulxq 0+128(%rsi),%rcx,%rbp
859 mulxq 8+128(%rsi),%rcx,%rbp
863 mulxq 16+128(%rsi),%rcx,%rbp
867 mulxq 24+128(%rsi),%rcx,%rbp
892 mulxq 0+128(%rsi),%rcx,%rbp
896 mulxq 8+128(%rsi),%rcx,%rbp
900 mulxq 16+128(%rsi),%rcx,%rbp
904 mulxq 24+128(%rsi),%rcx,%rbp
929 mulxq 0+128(%rsi),%rcx,%rbp
933 mulxq 8+128(%rsi),%rcx,%rbp
937 mulxq 16+128(%rsi),%rcx,%rbp
941 mulxq 24+128(%rsi),%rcx,%rbp
959 movq .Lpoly+8(%rip),%r14
986 .size __ecp_nistz256_mul_montx,.-__ecp_nistz256_mul_montx
988 .type __ecp_nistz256_sqr_montx,@function
990 __ecp_nistz256_sqr_montx:
1002 mulxq %r15,%rcx,%rbp
1014 movq 0+128(%rsi),%rdx
1022 movq 8+128(%rsi),%rdx
1026 mulxq %rdx,%rcx,%rax
1027 movq 16+128(%rsi),%rdx
1032 mulxq %rdx,%rcx,%rbp
1033 movq 24+128(%rsi),%rdx
1040 mulxq %rdx,%rcx,%rax
1046 movq .Lpoly+24(%rip),%rbp
1066 shlxq %rsi,%r10,%rcx
1068 shrxq %rsi,%r10,%rax
1074 mulxq %rbp,%rcx,%r10
1077 shlxq %rsi,%r11,%rcx
1079 shrxq %rsi,%r11,%rax
1085 mulxq %rbp,%rcx,%r11
1091 movq .Lpoly+8(%rip),%rsi
1118 .size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx
1125 .globl ecp_nistz256_from_mont
1126 .type ecp_nistz256_from_mont,@function
1128 ecp_nistz256_from_mont:
1133 movq .Lpoly+24(%rip),%r13
1138 movq .Lpoly+8(%rip),%r12
1214 .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont
1217 .globl ecp_nistz256_select_w5
1218 .type ecp_nistz256_select_w5,@function
1220 ecp_nistz256_select_w5:
1221 movl OPENSSL_ia32cap_P+8(%rip),%eax
1223 jnz .Lavx2_select_w5
1224 movdqa .LOne(%rip),%xmm0
1235 pshufd $0,%xmm1,%xmm1
1238 .Lselect_loop_sse_w5:
1242 pcmpeqd %xmm1,%xmm15
1244 movdqa 0(%rsi),%xmm9
1245 movdqa 16(%rsi),%xmm10
1246 movdqa 32(%rsi),%xmm11
1247 movdqa 48(%rsi),%xmm12
1248 movdqa 64(%rsi),%xmm13
1249 movdqa 80(%rsi),%xmm14
1266 jnz .Lselect_loop_sse_w5
1268 movdqu %xmm2,0(%rdi)
1269 movdqu %xmm3,16(%rdi)
1270 movdqu %xmm4,32(%rdi)
1271 movdqu %xmm5,48(%rdi)
1272 movdqu %xmm6,64(%rdi)
1273 movdqu %xmm7,80(%rdi)
1275 .size ecp_nistz256_select_w5,.-ecp_nistz256_select_w5
1279 .globl ecp_nistz256_select_w7
1280 .type ecp_nistz256_select_w7,@function
1282 ecp_nistz256_select_w7:
1283 movl OPENSSL_ia32cap_P+8(%rip),%eax
1285 jnz .Lavx2_select_w7
1286 movdqa .LOne(%rip),%xmm8
1295 pshufd $0,%xmm1,%xmm1
1298 .Lselect_loop_sse_w7:
1301 movdqa 0(%rsi),%xmm9
1302 movdqa 16(%rsi),%xmm10
1303 pcmpeqd %xmm1,%xmm15
1304 movdqa 32(%rsi),%xmm11
1305 movdqa 48(%rsi),%xmm12
1315 prefetcht0 255(%rsi)
1319 jnz .Lselect_loop_sse_w7
1321 movdqu %xmm2,0(%rdi)
1322 movdqu %xmm3,16(%rdi)
1323 movdqu %xmm4,32(%rdi)
1324 movdqu %xmm5,48(%rdi)
1326 .size ecp_nistz256_select_w7,.-ecp_nistz256_select_w7
1329 .type ecp_nistz256_avx2_select_w5,@function
1331 ecp_nistz256_avx2_select_w5:
1334 vmovdqa .LTwo(%rip),%ymm0
1336 vpxor %ymm2,%ymm2,%ymm2
1337 vpxor %ymm3,%ymm3,%ymm3
1338 vpxor %ymm4,%ymm4,%ymm4
1340 vmovdqa .LOne(%rip),%ymm5
1341 vmovdqa .LTwo(%rip),%ymm10
1344 vpermd %ymm1,%ymm2,%ymm1
1347 .Lselect_loop_avx2_w5:
1349 vmovdqa 0(%rsi),%ymm6
1350 vmovdqa 32(%rsi),%ymm7
1351 vmovdqa 64(%rsi),%ymm8
1353 vmovdqa 96(%rsi),%ymm11
1354 vmovdqa 128(%rsi),%ymm12
1355 vmovdqa 160(%rsi),%ymm13
1357 vpcmpeqd %ymm1,%ymm5,%ymm9
1358 vpcmpeqd %ymm1,%ymm10,%ymm14
1360 vpaddd %ymm0,%ymm5,%ymm5
1361 vpaddd %ymm0,%ymm10,%ymm10
1364 vpand %ymm9,%ymm6,%ymm6
1365 vpand %ymm9,%ymm7,%ymm7
1366 vpand %ymm9,%ymm8,%ymm8
1367 vpand %ymm14,%ymm11,%ymm11
1368 vpand %ymm14,%ymm12,%ymm12
1369 vpand %ymm14,%ymm13,%ymm13
1371 vpxor %ymm6,%ymm2,%ymm2
1372 vpxor %ymm7,%ymm3,%ymm3
1373 vpxor %ymm8,%ymm4,%ymm4
1374 vpxor %ymm11,%ymm2,%ymm2
1375 vpxor %ymm12,%ymm3,%ymm3
1376 vpxor %ymm13,%ymm4,%ymm4
1379 jnz .Lselect_loop_avx2_w5
1381 vmovdqu %ymm2,0(%rdi)
1382 vmovdqu %ymm3,32(%rdi)
1383 vmovdqu %ymm4,64(%rdi)
1386 .size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5
1390 .globl ecp_nistz256_avx2_select_w7
1391 .type ecp_nistz256_avx2_select_w7,@function
1393 ecp_nistz256_avx2_select_w7:
1396 vmovdqa .LThree(%rip),%ymm0
1398 vpxor %ymm2,%ymm2,%ymm2
1399 vpxor %ymm3,%ymm3,%ymm3
1401 vmovdqa .LOne(%rip),%ymm4
1402 vmovdqa .LTwo(%rip),%ymm8
1403 vmovdqa .LThree(%rip),%ymm12
1406 vpermd %ymm1,%ymm2,%ymm1
1410 .Lselect_loop_avx2_w7:
1412 vmovdqa 0(%rsi),%ymm5
1413 vmovdqa 32(%rsi),%ymm6
1415 vmovdqa 64(%rsi),%ymm9
1416 vmovdqa 96(%rsi),%ymm10
1418 vmovdqa 128(%rsi),%ymm13
1419 vmovdqa 160(%rsi),%ymm14
1421 vpcmpeqd %ymm1,%ymm4,%ymm7
1422 vpcmpeqd %ymm1,%ymm8,%ymm11
1423 vpcmpeqd %ymm1,%ymm12,%ymm15
1425 vpaddd %ymm0,%ymm4,%ymm4
1426 vpaddd %ymm0,%ymm8,%ymm8
1427 vpaddd %ymm0,%ymm12,%ymm12
1430 vpand %ymm7,%ymm5,%ymm5
1431 vpand %ymm7,%ymm6,%ymm6
1432 vpand %ymm11,%ymm9,%ymm9
1433 vpand %ymm11,%ymm10,%ymm10
1434 vpand %ymm15,%ymm13,%ymm13
1435 vpand %ymm15,%ymm14,%ymm14
1437 vpxor %ymm5,%ymm2,%ymm2
1438 vpxor %ymm6,%ymm3,%ymm3
1439 vpxor %ymm9,%ymm2,%ymm2
1440 vpxor %ymm10,%ymm3,%ymm3
1441 vpxor %ymm13,%ymm2,%ymm2
1442 vpxor %ymm14,%ymm3,%ymm3
1445 jnz .Lselect_loop_avx2_w7
1448 vmovdqa 0(%rsi),%ymm5
1449 vmovdqa 32(%rsi),%ymm6
1451 vpcmpeqd %ymm1,%ymm4,%ymm7
1453 vpand %ymm7,%ymm5,%ymm5
1454 vpand %ymm7,%ymm6,%ymm6
1456 vpxor %ymm5,%ymm2,%ymm2
1457 vpxor %ymm6,%ymm3,%ymm3
1459 vmovdqu %ymm2,0(%rdi)
1460 vmovdqu %ymm3,32(%rdi)
1463 .size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7
1464 .type __ecp_nistz256_add_toq,@function
1466 __ecp_nistz256_add_toq:
1494 .size __ecp_nistz256_add_toq,.-__ecp_nistz256_add_toq
1496 .type __ecp_nistz256_sub_fromq,@function
1498 __ecp_nistz256_sub_fromq:
1525 .size __ecp_nistz256_sub_fromq,.-__ecp_nistz256_sub_fromq
1527 .type __ecp_nistz256_subq,@function
1529 __ecp_nistz256_subq:
1552 .size __ecp_nistz256_subq,.-__ecp_nistz256_subq
1554 .type __ecp_nistz256_mul_by_2q,@function
1556 __ecp_nistz256_mul_by_2q:
1584 .size __ecp_nistz256_mul_by_2q,.-__ecp_nistz256_mul_by_2q
1585 .globl ecp_nistz256_point_double
1586 .type ecp_nistz256_point_double,@function
1588 ecp_nistz256_point_double:
1590 andl OPENSSL_ia32cap_P+8(%rip),%ecx
1601 .Lpoint_double_shortcutq:
1602 movdqu 0(%rsi),%xmm0
1604 movdqu 16(%rsi),%xmm1
1605 movq 32+0(%rsi),%r12
1606 movq 32+8(%rsi),%r13
1607 movq 32+16(%rsi),%r8
1608 movq 32+24(%rsi),%r9
1609 movq .Lpoly+8(%rip),%r14
1610 movq .Lpoly+24(%rip),%r15
1611 movdqa %xmm0,96(%rsp)
1612 movdqa %xmm1,96+16(%rsp)
1615 .byte 102,72,15,110,199
1616 .byte 102,73,15,110,202
1617 .byte 102,73,15,110,211
1620 call __ecp_nistz256_mul_by_2q
1622 movq 64+0(%rsi),%rax
1623 movq 64+8(%rsi),%r14
1624 movq 64+16(%rsi),%r15
1625 movq 64+24(%rsi),%r8
1626 leaq 64-0(%rsi),%rsi
1628 call __ecp_nistz256_sqr_montq
1633 movq 16+0(%rsp),%r15
1636 call __ecp_nistz256_sqr_montq
1640 movq 64+8(%rbx),%r10
1641 movq 64+16(%rbx),%r11
1642 movq 64+24(%rbx),%r12
1643 leaq 64-0(%rbx),%rsi
1645 .byte 102,72,15,126,215
1646 call __ecp_nistz256_mul_montq
1647 call __ecp_nistz256_mul_by_2q
1649 movq 96+0(%rsp),%r12
1650 movq 96+8(%rsp),%r13
1652 movq 96+16(%rsp),%r8
1653 movq 96+24(%rsp),%r9
1655 call __ecp_nistz256_add_toq
1657 movq 96+0(%rsp),%r12
1658 movq 96+8(%rsp),%r13
1660 movq 96+16(%rsp),%r8
1661 movq 96+24(%rsp),%r9
1663 call __ecp_nistz256_sub_fromq
1668 movq 16+0(%rsp),%r15
1670 .byte 102,72,15,126,207
1671 call __ecp_nistz256_sqr_montq
1713 movq 8+32(%rsp),%r10
1714 leaq 0+32(%rsp),%rsi
1715 movq 16+32(%rsp),%r11
1716 movq 24+32(%rsp),%r12
1718 call __ecp_nistz256_mul_montq
1721 call __ecp_nistz256_mul_by_2q
1725 call __ecp_nistz256_add_toq
1732 movq 16+0(%rsp),%r11
1733 movq 24+0(%rsp),%r12
1735 call __ecp_nistz256_mul_montq
1738 call __ecp_nistz256_mul_by_2q
1740 movq 0+32(%rsp),%rax
1741 movq 8+32(%rsp),%r14
1742 leaq 0+32(%rsp),%rsi
1743 movq 16+32(%rsp),%r15
1744 movq 24+32(%rsp),%r8
1745 .byte 102,72,15,126,199
1746 call __ecp_nistz256_sqr_montq
1753 call __ecp_nistz256_sub_fromq
1757 movq 0+16(%rsp),%rcx
1758 movq 0+24(%rsp),%r10
1760 call __ecp_nistz256_subq
1776 call __ecp_nistz256_mul_montq
1778 .byte 102,72,15,126,203
1779 .byte 102,72,15,126,207
1780 call __ecp_nistz256_sub_fromq
1790 .size ecp_nistz256_point_double,.-ecp_nistz256_point_double
1791 .globl ecp_nistz256_point_add
1792 .type ecp_nistz256_point_add,@function
1794 ecp_nistz256_point_add:
1796 andl OPENSSL_ia32cap_P+8(%rip),%ecx
1807 movdqu 0(%rsi),%xmm0
1808 movdqu 16(%rsi),%xmm1
1809 movdqu 32(%rsi),%xmm2
1810 movdqu 48(%rsi),%xmm3
1811 movdqu 64(%rsi),%xmm4
1812 movdqu 80(%rsi),%xmm5
1815 movdqa %xmm0,384(%rsp)
1816 movdqa %xmm1,384+16(%rsp)
1817 movdqa %xmm2,416(%rsp)
1818 movdqa %xmm3,416+16(%rsp)
1819 movdqa %xmm4,448(%rsp)
1820 movdqa %xmm5,448+16(%rsp)
1823 movdqu 0(%rsi),%xmm0
1824 pshufd $0xb1,%xmm5,%xmm3
1825 movdqu 16(%rsi),%xmm1
1826 movdqu 32(%rsi),%xmm2
1828 movdqu 48(%rsi),%xmm3
1829 movq 64+0(%rsi),%rax
1830 movq 64+8(%rsi),%r14
1831 movq 64+16(%rsi),%r15
1832 movq 64+24(%rsi),%r8
1833 movdqa %xmm0,480(%rsp)
1834 pshufd $0x1e,%xmm5,%xmm4
1835 movdqa %xmm1,480+16(%rsp)
1836 movdqu 64(%rsi),%xmm0
1837 movdqu 80(%rsi),%xmm1
1838 movdqa %xmm2,512(%rsp)
1839 movdqa %xmm3,512+16(%rsp)
1843 .byte 102,72,15,110,199
1845 leaq 64-0(%rsi),%rsi
1846 movq %rax,544+0(%rsp)
1847 movq %r14,544+8(%rsp)
1848 movq %r15,544+16(%rsp)
1849 movq %r8,544+24(%rsp)
1851 call __ecp_nistz256_sqr_montq
1854 pshufd $0xb1,%xmm1,%xmm4
1856 pshufd $0,%xmm5,%xmm5
1857 pshufd $0x1e,%xmm4,%xmm3
1861 pshufd $0,%xmm4,%xmm4
1862 movq 64+0(%rbx),%rax
1863 movq 64+8(%rbx),%r14
1864 movq 64+16(%rbx),%r15
1865 movq 64+24(%rbx),%r8
1866 .byte 102,72,15,110,203
1868 leaq 64-0(%rbx),%rsi
1870 call __ecp_nistz256_sqr_montq
1875 movq 8+96(%rsp),%r10
1876 leaq 0+96(%rsp),%rsi
1877 movq 16+96(%rsp),%r11
1878 movq 24+96(%rsp),%r12
1880 call __ecp_nistz256_mul_montq
1885 movq 8+32(%rsp),%r10
1886 leaq 0+32(%rsp),%rsi
1887 movq 16+32(%rsp),%r11
1888 movq 24+32(%rsp),%r12
1890 call __ecp_nistz256_mul_montq
1894 movq 0+224(%rsp),%r9
1895 movq 8+224(%rsp),%r10
1896 leaq 0+224(%rsp),%rsi
1897 movq 16+224(%rsp),%r11
1898 movq 24+224(%rsp),%r12
1900 call __ecp_nistz256_mul_montq
1904 movq 0+256(%rsp),%r9
1905 movq 8+256(%rsp),%r10
1906 leaq 0+256(%rsp),%rsi
1907 movq 16+256(%rsp),%r11
1908 movq 24+256(%rsp),%r12
1910 call __ecp_nistz256_mul_montq
1914 call __ecp_nistz256_sub_fromq
1921 .byte 102,73,15,110,220
1926 movq 8+96(%rsp),%r10
1927 leaq 0+96(%rsp),%rsi
1928 movq 16+96(%rsp),%r11
1929 movq 24+96(%rsp),%r12
1931 call __ecp_nistz256_mul_montq
1936 movq 8+32(%rsp),%r10
1937 leaq 0+32(%rsp),%rsi
1938 movq 16+32(%rsp),%r11
1939 movq 24+32(%rsp),%r12
1941 call __ecp_nistz256_mul_montq
1945 call __ecp_nistz256_sub_fromq
1953 .byte 102,73,15,126,208
1954 .byte 102,73,15,126,217
1960 .byte 102,72,15,126,199
1962 movdqu %xmm0,0(%rdi)
1963 movdqu %xmm0,16(%rdi)
1964 movdqu %xmm0,32(%rdi)
1965 movdqu %xmm0,48(%rdi)
1966 movdqu %xmm0,64(%rdi)
1967 movdqu %xmm0,80(%rdi)
1972 .byte 102,72,15,126,206
1973 .byte 102,72,15,126,199
1975 jmp .Lpoint_double_shortcutq
1979 movq 0+64(%rsp),%rax
1980 movq 8+64(%rsp),%r14
1981 leaq 0+64(%rsp),%rsi
1982 movq 16+64(%rsp),%r15
1983 movq 24+64(%rsp),%r8
1985 call __ecp_nistz256_sqr_montq
1992 movq 16+0(%rsp),%r11
1993 movq 24+0(%rsp),%r12
1995 call __ecp_nistz256_mul_montq
2000 movq 16+0(%rsp),%r15
2003 call __ecp_nistz256_sqr_montq
2007 movq 0+352(%rsp),%r9
2008 movq 8+352(%rsp),%r10
2009 leaq 0+352(%rsp),%rsi
2010 movq 16+352(%rsp),%r11
2011 movq 24+352(%rsp),%r12
2013 call __ecp_nistz256_mul_montq
2018 movq 8+32(%rsp),%r10
2019 leaq 0+32(%rsp),%rsi
2020 movq 16+32(%rsp),%r11
2021 movq 24+32(%rsp),%r12
2023 call __ecp_nistz256_mul_montq
2028 movq 8+32(%rsp),%r10
2029 leaq 0+32(%rsp),%rsi
2030 movq 16+32(%rsp),%r11
2031 movq 24+32(%rsp),%r12
2033 call __ecp_nistz256_mul_montq
2065 call __ecp_nistz256_subq
2069 call __ecp_nistz256_sub_fromq
2071 movq 192+0(%rsp),%rax
2072 movq 192+8(%rsp),%rbp
2073 movq 192+16(%rsp),%rcx
2074 movq 192+24(%rsp),%r10
2077 call __ecp_nistz256_subq
2085 movq 0+224(%rsp),%r9
2086 movq 8+224(%rsp),%r10
2087 leaq 0+224(%rsp),%rsi
2088 movq 16+224(%rsp),%r11
2089 movq 24+224(%rsp),%r12
2091 call __ecp_nistz256_mul_montq
2096 movq 8+64(%rsp),%r10
2097 leaq 0+64(%rsp),%rsi
2098 movq 16+64(%rsp),%r11
2099 movq 24+64(%rsp),%r12
2101 call __ecp_nistz256_mul_montq
2105 call __ecp_nistz256_sub_fromq
2107 .byte 102,72,15,126,199
2111 pandn 352(%rsp),%xmm0
2113 pandn 352+16(%rsp),%xmm1
2115 pand 544(%rsp),%xmm2
2116 pand 544+16(%rsp),%xmm3
2126 pand 448(%rsp),%xmm2
2127 pand 448+16(%rsp),%xmm3
2130 movdqu %xmm2,64(%rdi)
2131 movdqu %xmm3,80(%rdi)
2135 pandn 288(%rsp),%xmm0
2137 pandn 288+16(%rsp),%xmm1
2139 pand 480(%rsp),%xmm2
2140 pand 480+16(%rsp),%xmm3
2150 pand 384(%rsp),%xmm2
2151 pand 384+16(%rsp),%xmm3
2154 movdqu %xmm2,0(%rdi)
2155 movdqu %xmm3,16(%rdi)
2159 pandn 320(%rsp),%xmm0
2161 pandn 320+16(%rsp),%xmm1
2163 pand 512(%rsp),%xmm2
2164 pand 512+16(%rsp),%xmm3
2174 pand 416(%rsp),%xmm2
2175 pand 416+16(%rsp),%xmm3
2178 movdqu %xmm2,32(%rdi)
2179 movdqu %xmm3,48(%rdi)
2190 .size ecp_nistz256_point_add,.-ecp_nistz256_point_add
2191 .globl ecp_nistz256_point_add_affine
2192 .type ecp_nistz256_point_add_affine,@function
2194 ecp_nistz256_point_add_affine:
2196 andl OPENSSL_ia32cap_P+8(%rip),%ecx
2198 je .Lpoint_add_affinex
2207 movdqu 0(%rsi),%xmm0
2209 movdqu 16(%rsi),%xmm1
2210 movdqu 32(%rsi),%xmm2
2211 movdqu 48(%rsi),%xmm3
2212 movdqu 64(%rsi),%xmm4
2213 movdqu 80(%rsi),%xmm5
2214 movq 64+0(%rsi),%rax
2215 movq 64+8(%rsi),%r14
2216 movq 64+16(%rsi),%r15
2217 movq 64+24(%rsi),%r8
2218 movdqa %xmm0,320(%rsp)
2219 movdqa %xmm1,320+16(%rsp)
2220 movdqa %xmm2,352(%rsp)
2221 movdqa %xmm3,352+16(%rsp)
2222 movdqa %xmm4,384(%rsp)
2223 movdqa %xmm5,384+16(%rsp)
2226 movdqu 0(%rbx),%xmm0
2227 pshufd $0xb1,%xmm5,%xmm3
2228 movdqu 16(%rbx),%xmm1
2229 movdqu 32(%rbx),%xmm2
2231 movdqu 48(%rbx),%xmm3
2232 movdqa %xmm0,416(%rsp)
2233 pshufd $0x1e,%xmm5,%xmm4
2234 movdqa %xmm1,416+16(%rsp)
2236 .byte 102,72,15,110,199
2237 movdqa %xmm2,448(%rsp)
2238 movdqa %xmm3,448+16(%rsp)
2244 leaq 64-0(%rsi),%rsi
2246 call __ecp_nistz256_sqr_montq
2249 pshufd $0xb1,%xmm3,%xmm4
2254 pshufd $0,%xmm5,%xmm5
2255 pshufd $0x1e,%xmm4,%xmm3
2261 pshufd $0,%xmm4,%xmm4
2263 leaq 32-0(%rsp),%rsi
2266 call __ecp_nistz256_mul_montq
2270 call __ecp_nistz256_sub_fromq
2275 movq 8+32(%rsp),%r10
2276 leaq 0+32(%rsp),%rsi
2277 movq 16+32(%rsp),%r11
2278 movq 24+32(%rsp),%r12
2280 call __ecp_nistz256_mul_montq
2285 movq 8+64(%rsp),%r10
2286 leaq 0+64(%rsp),%rsi
2287 movq 16+64(%rsp),%r11
2288 movq 24+64(%rsp),%r12
2290 call __ecp_nistz256_mul_montq
2295 movq 8+32(%rsp),%r10
2296 leaq 0+32(%rsp),%rsi
2297 movq 16+32(%rsp),%r11
2298 movq 24+32(%rsp),%r12
2300 call __ecp_nistz256_mul_montq
2304 call __ecp_nistz256_sub_fromq
2306 movq 0+64(%rsp),%rax
2307 movq 8+64(%rsp),%r14
2308 leaq 0+64(%rsp),%rsi
2309 movq 16+64(%rsp),%r15
2310 movq 24+64(%rsp),%r8
2312 call __ecp_nistz256_sqr_montq
2314 movq 0+96(%rsp),%rax
2315 movq 8+96(%rsp),%r14
2316 leaq 0+96(%rsp),%rsi
2317 movq 16+96(%rsp),%r15
2318 movq 24+96(%rsp),%r8
2320 call __ecp_nistz256_sqr_montq
2325 movq 8+64(%rsp),%r10
2326 leaq 0+64(%rsp),%rsi
2327 movq 16+64(%rsp),%r11
2328 movq 24+64(%rsp),%r12
2330 call __ecp_nistz256_mul_montq
2334 movq 0+128(%rsp),%r9
2335 movq 8+128(%rsp),%r10
2336 leaq 0+128(%rsp),%rsi
2337 movq 16+128(%rsp),%r11
2338 movq 24+128(%rsp),%r12
2340 call __ecp_nistz256_mul_montq
2372 call __ecp_nistz256_subq
2376 call __ecp_nistz256_sub_fromq
2380 movq 0+16(%rsp),%rcx
2381 movq 0+24(%rsp),%r10
2384 call __ecp_nistz256_subq
2392 movq 0+160(%rsp),%r9
2393 movq 8+160(%rsp),%r10
2394 leaq 0+160(%rsp),%rsi
2395 movq 16+160(%rsp),%r11
2396 movq 24+160(%rsp),%r12
2398 call __ecp_nistz256_mul_montq
2403 movq 8+64(%rsp),%r10
2404 leaq 0+64(%rsp),%rsi
2405 movq 16+64(%rsp),%r11
2406 movq 24+64(%rsp),%r12
2408 call __ecp_nistz256_mul_montq
2412 call __ecp_nistz256_sub_fromq
2414 .byte 102,72,15,126,199
2418 pandn 288(%rsp),%xmm0
2420 pandn 288+16(%rsp),%xmm1
2422 pand .LONE_mont(%rip),%xmm2
2423 pand .LONE_mont+16(%rip),%xmm3
2433 pand 384(%rsp),%xmm2
2434 pand 384+16(%rsp),%xmm3
2437 movdqu %xmm2,64(%rdi)
2438 movdqu %xmm3,80(%rdi)
2442 pandn 224(%rsp),%xmm0
2444 pandn 224+16(%rsp),%xmm1
2446 pand 416(%rsp),%xmm2
2447 pand 416+16(%rsp),%xmm3
2457 pand 320(%rsp),%xmm2
2458 pand 320+16(%rsp),%xmm3
2461 movdqu %xmm2,0(%rdi)
2462 movdqu %xmm3,16(%rdi)
2466 pandn 256(%rsp),%xmm0
2468 pandn 256+16(%rsp),%xmm1
2470 pand 448(%rsp),%xmm2
2471 pand 448+16(%rsp),%xmm3
2481 pand 352(%rsp),%xmm2
2482 pand 352+16(%rsp),%xmm3
2485 movdqu %xmm2,32(%rdi)
2486 movdqu %xmm3,48(%rdi)
2496 .size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine
2497 .type __ecp_nistz256_add_tox,@function
2499 __ecp_nistz256_add_tox:
2528 .size __ecp_nistz256_add_tox,.-__ecp_nistz256_add_tox
2530 .type __ecp_nistz256_sub_fromx,@function
2532 __ecp_nistz256_sub_fromx:
2561 .size __ecp_nistz256_sub_fromx,.-__ecp_nistz256_sub_fromx
2563 .type __ecp_nistz256_subx,@function
2565 __ecp_nistz256_subx:
2590 .size __ecp_nistz256_subx,.-__ecp_nistz256_subx
2592 .type __ecp_nistz256_mul_by_2x,@function
2594 __ecp_nistz256_mul_by_2x:
2623 .size __ecp_nistz256_mul_by_2x,.-__ecp_nistz256_mul_by_2x
2624 .type ecp_nistz256_point_doublex,@function
2626 ecp_nistz256_point_doublex:
2636 .Lpoint_double_shortcutx:
2637 movdqu 0(%rsi),%xmm0
2639 movdqu 16(%rsi),%xmm1
2640 movq 32+0(%rsi),%r12
2641 movq 32+8(%rsi),%r13
2642 movq 32+16(%rsi),%r8
2643 movq 32+24(%rsi),%r9
2644 movq .Lpoly+8(%rip),%r14
2645 movq .Lpoly+24(%rip),%r15
2646 movdqa %xmm0,96(%rsp)
2647 movdqa %xmm1,96+16(%rsp)
2650 .byte 102,72,15,110,199
2651 .byte 102,73,15,110,202
2652 .byte 102,73,15,110,211
2655 call __ecp_nistz256_mul_by_2x
2657 movq 64+0(%rsi),%rdx
2658 movq 64+8(%rsi),%r14
2659 movq 64+16(%rsi),%r15
2660 movq 64+24(%rsi),%r8
2661 leaq 64-128(%rsi),%rsi
2663 call __ecp_nistz256_sqr_montx
2667 leaq -128+0(%rsp),%rsi
2668 movq 16+0(%rsp),%r15
2671 call __ecp_nistz256_sqr_montx
2675 movq 64+8(%rbx),%r10
2676 movq 64+16(%rbx),%r11
2677 movq 64+24(%rbx),%r12
2678 leaq 64-128(%rbx),%rsi
2680 .byte 102,72,15,126,215
2681 call __ecp_nistz256_mul_montx
2682 call __ecp_nistz256_mul_by_2x
2684 movq 96+0(%rsp),%r12
2685 movq 96+8(%rsp),%r13
2687 movq 96+16(%rsp),%r8
2688 movq 96+24(%rsp),%r9
2690 call __ecp_nistz256_add_tox
2692 movq 96+0(%rsp),%r12
2693 movq 96+8(%rsp),%r13
2695 movq 96+16(%rsp),%r8
2696 movq 96+24(%rsp),%r9
2698 call __ecp_nistz256_sub_fromx
2702 leaq -128+0(%rsp),%rsi
2703 movq 16+0(%rsp),%r15
2705 .byte 102,72,15,126,207
2706 call __ecp_nistz256_sqr_montx
2748 movq 8+32(%rsp),%r10
2749 leaq -128+32(%rsp),%rsi
2750 movq 16+32(%rsp),%r11
2751 movq 24+32(%rsp),%r12
2753 call __ecp_nistz256_mul_montx
2756 call __ecp_nistz256_mul_by_2x
2760 call __ecp_nistz256_add_tox
2766 leaq -128+0(%rsp),%rsi
2767 movq 16+0(%rsp),%r11
2768 movq 24+0(%rsp),%r12
2770 call __ecp_nistz256_mul_montx
2773 call __ecp_nistz256_mul_by_2x
2775 movq 0+32(%rsp),%rdx
2776 movq 8+32(%rsp),%r14
2777 leaq -128+32(%rsp),%rsi
2778 movq 16+32(%rsp),%r15
2779 movq 24+32(%rsp),%r8
2780 .byte 102,72,15,126,199
2781 call __ecp_nistz256_sqr_montx
2788 call __ecp_nistz256_sub_fromx
2792 movq 0+16(%rsp),%rcx
2793 movq 0+24(%rsp),%r10
2795 call __ecp_nistz256_subx
2806 leaq 0-128(%rsp),%rsi
2811 call __ecp_nistz256_mul_montx
2813 .byte 102,72,15,126,203
2814 .byte 102,72,15,126,207
2815 call __ecp_nistz256_sub_fromx
2825 .size ecp_nistz256_point_doublex,.-ecp_nistz256_point_doublex
2826 .type ecp_nistz256_point_addx,@function
2828 ecp_nistz256_point_addx:
2838 movdqu 0(%rsi),%xmm0
2839 movdqu 16(%rsi),%xmm1
2840 movdqu 32(%rsi),%xmm2
2841 movdqu 48(%rsi),%xmm3
2842 movdqu 64(%rsi),%xmm4
2843 movdqu 80(%rsi),%xmm5
2846 movdqa %xmm0,384(%rsp)
2847 movdqa %xmm1,384+16(%rsp)
2848 movdqa %xmm2,416(%rsp)
2849 movdqa %xmm3,416+16(%rsp)
2850 movdqa %xmm4,448(%rsp)
2851 movdqa %xmm5,448+16(%rsp)
2854 movdqu 0(%rsi),%xmm0
2855 pshufd $0xb1,%xmm5,%xmm3
2856 movdqu 16(%rsi),%xmm1
2857 movdqu 32(%rsi),%xmm2
2859 movdqu 48(%rsi),%xmm3
2860 movq 64+0(%rsi),%rdx
2861 movq 64+8(%rsi),%r14
2862 movq 64+16(%rsi),%r15
2863 movq 64+24(%rsi),%r8
2864 movdqa %xmm0,480(%rsp)
2865 pshufd $0x1e,%xmm5,%xmm4
2866 movdqa %xmm1,480+16(%rsp)
2867 movdqu 64(%rsi),%xmm0
2868 movdqu 80(%rsi),%xmm1
2869 movdqa %xmm2,512(%rsp)
2870 movdqa %xmm3,512+16(%rsp)
2874 .byte 102,72,15,110,199
2876 leaq 64-128(%rsi),%rsi
2877 movq %rdx,544+0(%rsp)
2878 movq %r14,544+8(%rsp)
2879 movq %r15,544+16(%rsp)
2880 movq %r8,544+24(%rsp)
2882 call __ecp_nistz256_sqr_montx
2885 pshufd $0xb1,%xmm1,%xmm4
2887 pshufd $0,%xmm5,%xmm5
2888 pshufd $0x1e,%xmm4,%xmm3
2892 pshufd $0,%xmm4,%xmm4
2893 movq 64+0(%rbx),%rdx
2894 movq 64+8(%rbx),%r14
2895 movq 64+16(%rbx),%r15
2896 movq 64+24(%rbx),%r8
2897 .byte 102,72,15,110,203
2899 leaq 64-128(%rbx),%rsi
2901 call __ecp_nistz256_sqr_montx
2906 movq 8+96(%rsp),%r10
2907 leaq -128+96(%rsp),%rsi
2908 movq 16+96(%rsp),%r11
2909 movq 24+96(%rsp),%r12
2911 call __ecp_nistz256_mul_montx
2916 movq 8+32(%rsp),%r10
2917 leaq -128+32(%rsp),%rsi
2918 movq 16+32(%rsp),%r11
2919 movq 24+32(%rsp),%r12
2921 call __ecp_nistz256_mul_montx
2925 movq 0+224(%rsp),%r9
2926 movq 8+224(%rsp),%r10
2927 leaq -128+224(%rsp),%rsi
2928 movq 16+224(%rsp),%r11
2929 movq 24+224(%rsp),%r12
2931 call __ecp_nistz256_mul_montx
2935 movq 0+256(%rsp),%r9
2936 movq 8+256(%rsp),%r10
2937 leaq -128+256(%rsp),%rsi
2938 movq 16+256(%rsp),%r11
2939 movq 24+256(%rsp),%r12
2941 call __ecp_nistz256_mul_montx
2945 call __ecp_nistz256_sub_fromx
2952 .byte 102,73,15,110,220
2957 movq 8+96(%rsp),%r10
2958 leaq -128+96(%rsp),%rsi
2959 movq 16+96(%rsp),%r11
2960 movq 24+96(%rsp),%r12
2962 call __ecp_nistz256_mul_montx
2967 movq 8+32(%rsp),%r10
2968 leaq -128+32(%rsp),%rsi
2969 movq 16+32(%rsp),%r11
2970 movq 24+32(%rsp),%r12
2972 call __ecp_nistz256_mul_montx
2976 call __ecp_nistz256_sub_fromx
2984 .byte 102,73,15,126,208
2985 .byte 102,73,15,126,217
2991 .byte 102,72,15,126,199
2993 movdqu %xmm0,0(%rdi)
2994 movdqu %xmm0,16(%rdi)
2995 movdqu %xmm0,32(%rdi)
2996 movdqu %xmm0,48(%rdi)
2997 movdqu %xmm0,64(%rdi)
2998 movdqu %xmm0,80(%rdi)
3003 .byte 102,72,15,126,206
3004 .byte 102,72,15,126,199
3006 jmp .Lpoint_double_shortcutx
3010 movq 0+64(%rsp),%rdx
3011 movq 8+64(%rsp),%r14
3012 leaq -128+64(%rsp),%rsi
3013 movq 16+64(%rsp),%r15
3014 movq 24+64(%rsp),%r8
3016 call __ecp_nistz256_sqr_montx
3022 leaq -128+0(%rsp),%rsi
3023 movq 16+0(%rsp),%r11
3024 movq 24+0(%rsp),%r12
3026 call __ecp_nistz256_mul_montx
3030 leaq -128+0(%rsp),%rsi
3031 movq 16+0(%rsp),%r15
3034 call __ecp_nistz256_sqr_montx
3038 movq 0+352(%rsp),%r9
3039 movq 8+352(%rsp),%r10
3040 leaq -128+352(%rsp),%rsi
3041 movq 16+352(%rsp),%r11
3042 movq 24+352(%rsp),%r12
3044 call __ecp_nistz256_mul_montx
3049 movq 8+32(%rsp),%r10
3050 leaq -128+32(%rsp),%rsi
3051 movq 16+32(%rsp),%r11
3052 movq 24+32(%rsp),%r12
3054 call __ecp_nistz256_mul_montx
3059 movq 8+32(%rsp),%r10
3060 leaq -128+32(%rsp),%rsi
3061 movq 16+32(%rsp),%r11
3062 movq 24+32(%rsp),%r12
3064 call __ecp_nistz256_mul_montx
3096 call __ecp_nistz256_subx
3100 call __ecp_nistz256_sub_fromx
3102 movq 192+0(%rsp),%rax
3103 movq 192+8(%rsp),%rbp
3104 movq 192+16(%rsp),%rcx
3105 movq 192+24(%rsp),%r10
3108 call __ecp_nistz256_subx
3116 movq 0+224(%rsp),%r9
3117 movq 8+224(%rsp),%r10
3118 leaq -128+224(%rsp),%rsi
3119 movq 16+224(%rsp),%r11
3120 movq 24+224(%rsp),%r12
3122 call __ecp_nistz256_mul_montx
3127 movq 8+64(%rsp),%r10
3128 leaq -128+64(%rsp),%rsi
3129 movq 16+64(%rsp),%r11
3130 movq 24+64(%rsp),%r12
3132 call __ecp_nistz256_mul_montx
3136 call __ecp_nistz256_sub_fromx
3138 .byte 102,72,15,126,199
3142 pandn 352(%rsp),%xmm0
3144 pandn 352+16(%rsp),%xmm1
3146 pand 544(%rsp),%xmm2
3147 pand 544+16(%rsp),%xmm3
3157 pand 448(%rsp),%xmm2
3158 pand 448+16(%rsp),%xmm3
3161 movdqu %xmm2,64(%rdi)
3162 movdqu %xmm3,80(%rdi)
3166 pandn 288(%rsp),%xmm0
3168 pandn 288+16(%rsp),%xmm1
3170 pand 480(%rsp),%xmm2
3171 pand 480+16(%rsp),%xmm3
3181 pand 384(%rsp),%xmm2
3182 pand 384+16(%rsp),%xmm3
3185 movdqu %xmm2,0(%rdi)
3186 movdqu %xmm3,16(%rdi)
3190 pandn 320(%rsp),%xmm0
3192 pandn 320+16(%rsp),%xmm1
3194 pand 512(%rsp),%xmm2
3195 pand 512+16(%rsp),%xmm3
3205 pand 416(%rsp),%xmm2
3206 pand 416+16(%rsp),%xmm3
3209 movdqu %xmm2,32(%rdi)
3210 movdqu %xmm3,48(%rdi)
3221 .size ecp_nistz256_point_addx,.-ecp_nistz256_point_addx
3222 .type ecp_nistz256_point_add_affinex,@function
3224 ecp_nistz256_point_add_affinex:
3225 .Lpoint_add_affinex:
3234 movdqu 0(%rsi),%xmm0
3236 movdqu 16(%rsi),%xmm1
3237 movdqu 32(%rsi),%xmm2
3238 movdqu 48(%rsi),%xmm3
3239 movdqu 64(%rsi),%xmm4
3240 movdqu 80(%rsi),%xmm5
3241 movq 64+0(%rsi),%rdx
3242 movq 64+8(%rsi),%r14
3243 movq 64+16(%rsi),%r15
3244 movq 64+24(%rsi),%r8
3245 movdqa %xmm0,320(%rsp)
3246 movdqa %xmm1,320+16(%rsp)
3247 movdqa %xmm2,352(%rsp)
3248 movdqa %xmm3,352+16(%rsp)
3249 movdqa %xmm4,384(%rsp)
3250 movdqa %xmm5,384+16(%rsp)
3253 movdqu 0(%rbx),%xmm0
3254 pshufd $0xb1,%xmm5,%xmm3
3255 movdqu 16(%rbx),%xmm1
3256 movdqu 32(%rbx),%xmm2
3258 movdqu 48(%rbx),%xmm3
3259 movdqa %xmm0,416(%rsp)
3260 pshufd $0x1e,%xmm5,%xmm4
3261 movdqa %xmm1,416+16(%rsp)
3263 .byte 102,72,15,110,199
3264 movdqa %xmm2,448(%rsp)
3265 movdqa %xmm3,448+16(%rsp)
3271 leaq 64-128(%rsi),%rsi
3273 call __ecp_nistz256_sqr_montx
3276 pshufd $0xb1,%xmm3,%xmm4
3281 pshufd $0,%xmm5,%xmm5
3282 pshufd $0x1e,%xmm4,%xmm3
3288 pshufd $0,%xmm4,%xmm4
3290 leaq 32-128(%rsp),%rsi
3293 call __ecp_nistz256_mul_montx
3297 call __ecp_nistz256_sub_fromx
3302 movq 8+32(%rsp),%r10
3303 leaq -128+32(%rsp),%rsi
3304 movq 16+32(%rsp),%r11
3305 movq 24+32(%rsp),%r12
3307 call __ecp_nistz256_mul_montx
3312 movq 8+64(%rsp),%r10
3313 leaq -128+64(%rsp),%rsi
3314 movq 16+64(%rsp),%r11
3315 movq 24+64(%rsp),%r12
3317 call __ecp_nistz256_mul_montx
3322 movq 8+32(%rsp),%r10
3323 leaq -128+32(%rsp),%rsi
3324 movq 16+32(%rsp),%r11
3325 movq 24+32(%rsp),%r12
3327 call __ecp_nistz256_mul_montx
3331 call __ecp_nistz256_sub_fromx
3333 movq 0+64(%rsp),%rdx
3334 movq 8+64(%rsp),%r14
3335 leaq -128+64(%rsp),%rsi
3336 movq 16+64(%rsp),%r15
3337 movq 24+64(%rsp),%r8
3339 call __ecp_nistz256_sqr_montx
3341 movq 0+96(%rsp),%rdx
3342 movq 8+96(%rsp),%r14
3343 leaq -128+96(%rsp),%rsi
3344 movq 16+96(%rsp),%r15
3345 movq 24+96(%rsp),%r8
3347 call __ecp_nistz256_sqr_montx
3352 movq 8+64(%rsp),%r10
3353 leaq -128+64(%rsp),%rsi
3354 movq 16+64(%rsp),%r11
3355 movq 24+64(%rsp),%r12
3357 call __ecp_nistz256_mul_montx
3361 movq 0+128(%rsp),%r9
3362 movq 8+128(%rsp),%r10
3363 leaq -128+128(%rsp),%rsi
3364 movq 16+128(%rsp),%r11
3365 movq 24+128(%rsp),%r12
3367 call __ecp_nistz256_mul_montx
3399 call __ecp_nistz256_subx
3403 call __ecp_nistz256_sub_fromx
3407 movq 0+16(%rsp),%rcx
3408 movq 0+24(%rsp),%r10
3411 call __ecp_nistz256_subx
3419 movq 0+160(%rsp),%r9
3420 movq 8+160(%rsp),%r10
3421 leaq -128+160(%rsp),%rsi
3422 movq 16+160(%rsp),%r11
3423 movq 24+160(%rsp),%r12
3425 call __ecp_nistz256_mul_montx
3430 movq 8+64(%rsp),%r10
3431 leaq -128+64(%rsp),%rsi
3432 movq 16+64(%rsp),%r11
3433 movq 24+64(%rsp),%r12
3435 call __ecp_nistz256_mul_montx
3439 call __ecp_nistz256_sub_fromx
3441 .byte 102,72,15,126,199
3445 pandn 288(%rsp),%xmm0
3447 pandn 288+16(%rsp),%xmm1
3449 pand .LONE_mont(%rip),%xmm2
3450 pand .LONE_mont+16(%rip),%xmm3
3460 pand 384(%rsp),%xmm2
3461 pand 384+16(%rsp),%xmm3
3464 movdqu %xmm2,64(%rdi)
3465 movdqu %xmm3,80(%rdi)
3469 pandn 224(%rsp),%xmm0
3471 pandn 224+16(%rsp),%xmm1
3473 pand 416(%rsp),%xmm2
3474 pand 416+16(%rsp),%xmm3
3484 pand 320(%rsp),%xmm2
3485 pand 320+16(%rsp),%xmm3
3488 movdqu %xmm2,0(%rdi)
3489 movdqu %xmm3,16(%rdi)
3493 pandn 256(%rsp),%xmm0
3495 pandn 256+16(%rsp),%xmm1
3497 pand 448(%rsp),%xmm2
3498 pand 448+16(%rsp),%xmm3
3508 pand 352(%rsp),%xmm2
3509 pand 352+16(%rsp),%xmm3
3512 movdqu %xmm2,32(%rdi)
3513 movdqu %xmm3,48(%rdi)
3523 .size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex