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
1041 movq .Lpoly+24(%rip),%rdx
1064 shlxq %rsi,%r10,%rcx
1066 shrxq %rsi,%r10,%rax
1072 mulxq %r10,%rcx,%r10
1074 shlxq %rsi,%r11,%rcx
1076 shrxq %rsi,%r11,%rax
1082 mulxq %r11,%rcx,%r11
1088 movq .Lpoly+8(%rip),%rsi
1114 .size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx
1121 .globl ecp_nistz256_from_mont
1122 .type ecp_nistz256_from_mont,@function
1124 ecp_nistz256_from_mont:
1129 movq .Lpoly+24(%rip),%r13
1134 movq .Lpoly+8(%rip),%r12
1210 .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont
1213 .globl ecp_nistz256_select_w5
1214 .type ecp_nistz256_select_w5,@function
1216 ecp_nistz256_select_w5:
1217 movl OPENSSL_ia32cap_P+8(%rip),%eax
1219 jnz .Lavx2_select_w5
1220 movdqa .LOne(%rip),%xmm0
1231 pshufd $0,%xmm1,%xmm1
1234 .Lselect_loop_sse_w5:
1238 pcmpeqd %xmm1,%xmm15
1240 movdqa 0(%rsi),%xmm9
1241 movdqa 16(%rsi),%xmm10
1242 movdqa 32(%rsi),%xmm11
1243 movdqa 48(%rsi),%xmm12
1244 movdqa 64(%rsi),%xmm13
1245 movdqa 80(%rsi),%xmm14
1262 jnz .Lselect_loop_sse_w5
1264 movdqu %xmm2,0(%rdi)
1265 movdqu %xmm3,16(%rdi)
1266 movdqu %xmm4,32(%rdi)
1267 movdqu %xmm5,48(%rdi)
1268 movdqu %xmm6,64(%rdi)
1269 movdqu %xmm7,80(%rdi)
1271 .size ecp_nistz256_select_w5,.-ecp_nistz256_select_w5
1275 .globl ecp_nistz256_select_w7
1276 .type ecp_nistz256_select_w7,@function
1278 ecp_nistz256_select_w7:
1279 movl OPENSSL_ia32cap_P+8(%rip),%eax
1281 jnz .Lavx2_select_w7
1282 movdqa .LOne(%rip),%xmm8
1291 pshufd $0,%xmm1,%xmm1
1294 .Lselect_loop_sse_w7:
1297 movdqa 0(%rsi),%xmm9
1298 movdqa 16(%rsi),%xmm10
1299 pcmpeqd %xmm1,%xmm15
1300 movdqa 32(%rsi),%xmm11
1301 movdqa 48(%rsi),%xmm12
1311 prefetcht0 255(%rsi)
1315 jnz .Lselect_loop_sse_w7
1317 movdqu %xmm2,0(%rdi)
1318 movdqu %xmm3,16(%rdi)
1319 movdqu %xmm4,32(%rdi)
1320 movdqu %xmm5,48(%rdi)
1322 .size ecp_nistz256_select_w7,.-ecp_nistz256_select_w7
1325 .type ecp_nistz256_avx2_select_w5,@function
1327 ecp_nistz256_avx2_select_w5:
1330 vmovdqa .LTwo(%rip),%ymm0
1332 vpxor %ymm2,%ymm2,%ymm2
1333 vpxor %ymm3,%ymm3,%ymm3
1334 vpxor %ymm4,%ymm4,%ymm4
1336 vmovdqa .LOne(%rip),%ymm5
1337 vmovdqa .LTwo(%rip),%ymm10
1340 vpermd %ymm1,%ymm2,%ymm1
1343 .Lselect_loop_avx2_w5:
1345 vmovdqa 0(%rsi),%ymm6
1346 vmovdqa 32(%rsi),%ymm7
1347 vmovdqa 64(%rsi),%ymm8
1349 vmovdqa 96(%rsi),%ymm11
1350 vmovdqa 128(%rsi),%ymm12
1351 vmovdqa 160(%rsi),%ymm13
1353 vpcmpeqd %ymm1,%ymm5,%ymm9
1354 vpcmpeqd %ymm1,%ymm10,%ymm14
1356 vpaddd %ymm0,%ymm5,%ymm5
1357 vpaddd %ymm0,%ymm10,%ymm10
1360 vpand %ymm9,%ymm6,%ymm6
1361 vpand %ymm9,%ymm7,%ymm7
1362 vpand %ymm9,%ymm8,%ymm8
1363 vpand %ymm14,%ymm11,%ymm11
1364 vpand %ymm14,%ymm12,%ymm12
1365 vpand %ymm14,%ymm13,%ymm13
1367 vpxor %ymm6,%ymm2,%ymm2
1368 vpxor %ymm7,%ymm3,%ymm3
1369 vpxor %ymm8,%ymm4,%ymm4
1370 vpxor %ymm11,%ymm2,%ymm2
1371 vpxor %ymm12,%ymm3,%ymm3
1372 vpxor %ymm13,%ymm4,%ymm4
1375 jnz .Lselect_loop_avx2_w5
1377 vmovdqu %ymm2,0(%rdi)
1378 vmovdqu %ymm3,32(%rdi)
1379 vmovdqu %ymm4,64(%rdi)
1382 .size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5
1386 .globl ecp_nistz256_avx2_select_w7
1387 .type ecp_nistz256_avx2_select_w7,@function
1389 ecp_nistz256_avx2_select_w7:
1392 vmovdqa .LThree(%rip),%ymm0
1394 vpxor %ymm2,%ymm2,%ymm2
1395 vpxor %ymm3,%ymm3,%ymm3
1397 vmovdqa .LOne(%rip),%ymm4
1398 vmovdqa .LTwo(%rip),%ymm8
1399 vmovdqa .LThree(%rip),%ymm12
1402 vpermd %ymm1,%ymm2,%ymm1
1406 .Lselect_loop_avx2_w7:
1408 vmovdqa 0(%rsi),%ymm5
1409 vmovdqa 32(%rsi),%ymm6
1411 vmovdqa 64(%rsi),%ymm9
1412 vmovdqa 96(%rsi),%ymm10
1414 vmovdqa 128(%rsi),%ymm13
1415 vmovdqa 160(%rsi),%ymm14
1417 vpcmpeqd %ymm1,%ymm4,%ymm7
1418 vpcmpeqd %ymm1,%ymm8,%ymm11
1419 vpcmpeqd %ymm1,%ymm12,%ymm15
1421 vpaddd %ymm0,%ymm4,%ymm4
1422 vpaddd %ymm0,%ymm8,%ymm8
1423 vpaddd %ymm0,%ymm12,%ymm12
1426 vpand %ymm7,%ymm5,%ymm5
1427 vpand %ymm7,%ymm6,%ymm6
1428 vpand %ymm11,%ymm9,%ymm9
1429 vpand %ymm11,%ymm10,%ymm10
1430 vpand %ymm15,%ymm13,%ymm13
1431 vpand %ymm15,%ymm14,%ymm14
1433 vpxor %ymm5,%ymm2,%ymm2
1434 vpxor %ymm6,%ymm3,%ymm3
1435 vpxor %ymm9,%ymm2,%ymm2
1436 vpxor %ymm10,%ymm3,%ymm3
1437 vpxor %ymm13,%ymm2,%ymm2
1438 vpxor %ymm14,%ymm3,%ymm3
1441 jnz .Lselect_loop_avx2_w7
1444 vmovdqa 0(%rsi),%ymm5
1445 vmovdqa 32(%rsi),%ymm6
1447 vpcmpeqd %ymm1,%ymm4,%ymm7
1449 vpand %ymm7,%ymm5,%ymm5
1450 vpand %ymm7,%ymm6,%ymm6
1452 vpxor %ymm5,%ymm2,%ymm2
1453 vpxor %ymm6,%ymm3,%ymm3
1455 vmovdqu %ymm2,0(%rdi)
1456 vmovdqu %ymm3,32(%rdi)
1459 .size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7
1460 .type __ecp_nistz256_add_toq,@function
1462 __ecp_nistz256_add_toq:
1490 .size __ecp_nistz256_add_toq,.-__ecp_nistz256_add_toq
1492 .type __ecp_nistz256_sub_fromq,@function
1494 __ecp_nistz256_sub_fromq:
1521 .size __ecp_nistz256_sub_fromq,.-__ecp_nistz256_sub_fromq
1523 .type __ecp_nistz256_subq,@function
1525 __ecp_nistz256_subq:
1548 .size __ecp_nistz256_subq,.-__ecp_nistz256_subq
1550 .type __ecp_nistz256_mul_by_2q,@function
1552 __ecp_nistz256_mul_by_2q:
1580 .size __ecp_nistz256_mul_by_2q,.-__ecp_nistz256_mul_by_2q
1581 .globl ecp_nistz256_point_double
1582 .type ecp_nistz256_point_double,@function
1584 ecp_nistz256_point_double:
1586 andl OPENSSL_ia32cap_P+8(%rip),%ecx
1597 .Lpoint_double_shortcutq:
1598 movdqu 0(%rsi),%xmm0
1600 movdqu 16(%rsi),%xmm1
1601 movq 32+0(%rsi),%r12
1602 movq 32+8(%rsi),%r13
1603 movq 32+16(%rsi),%r8
1604 movq 32+24(%rsi),%r9
1605 movq .Lpoly+8(%rip),%r14
1606 movq .Lpoly+24(%rip),%r15
1607 movdqa %xmm0,96(%rsp)
1608 movdqa %xmm1,96+16(%rsp)
1611 .byte 102,72,15,110,199
1612 .byte 102,73,15,110,202
1613 .byte 102,73,15,110,211
1616 call __ecp_nistz256_mul_by_2q
1618 movq 64+0(%rsi),%rax
1619 movq 64+8(%rsi),%r14
1620 movq 64+16(%rsi),%r15
1621 movq 64+24(%rsi),%r8
1622 leaq 64-0(%rsi),%rsi
1624 call __ecp_nistz256_sqr_montq
1629 movq 16+0(%rsp),%r15
1632 call __ecp_nistz256_sqr_montq
1636 movq 64+8(%rbx),%r10
1637 movq 64+16(%rbx),%r11
1638 movq 64+24(%rbx),%r12
1639 leaq 64-0(%rbx),%rsi
1641 .byte 102,72,15,126,215
1642 call __ecp_nistz256_mul_montq
1643 call __ecp_nistz256_mul_by_2q
1645 movq 96+0(%rsp),%r12
1646 movq 96+8(%rsp),%r13
1648 movq 96+16(%rsp),%r8
1649 movq 96+24(%rsp),%r9
1651 call __ecp_nistz256_add_toq
1653 movq 96+0(%rsp),%r12
1654 movq 96+8(%rsp),%r13
1656 movq 96+16(%rsp),%r8
1657 movq 96+24(%rsp),%r9
1659 call __ecp_nistz256_sub_fromq
1664 movq 16+0(%rsp),%r15
1666 .byte 102,72,15,126,207
1667 call __ecp_nistz256_sqr_montq
1709 movq 8+32(%rsp),%r10
1710 leaq 0+32(%rsp),%rsi
1711 movq 16+32(%rsp),%r11
1712 movq 24+32(%rsp),%r12
1714 call __ecp_nistz256_mul_montq
1717 call __ecp_nistz256_mul_by_2q
1721 call __ecp_nistz256_add_toq
1728 movq 16+0(%rsp),%r11
1729 movq 24+0(%rsp),%r12
1731 call __ecp_nistz256_mul_montq
1734 call __ecp_nistz256_mul_by_2q
1736 movq 0+32(%rsp),%rax
1737 movq 8+32(%rsp),%r14
1738 leaq 0+32(%rsp),%rsi
1739 movq 16+32(%rsp),%r15
1740 movq 24+32(%rsp),%r8
1741 .byte 102,72,15,126,199
1742 call __ecp_nistz256_sqr_montq
1749 call __ecp_nistz256_sub_fromq
1753 movq 0+16(%rsp),%rcx
1754 movq 0+24(%rsp),%r10
1756 call __ecp_nistz256_subq
1772 call __ecp_nistz256_mul_montq
1774 .byte 102,72,15,126,203
1775 .byte 102,72,15,126,207
1776 call __ecp_nistz256_sub_fromq
1786 .size ecp_nistz256_point_double,.-ecp_nistz256_point_double
1787 .globl ecp_nistz256_point_add
1788 .type ecp_nistz256_point_add,@function
1790 ecp_nistz256_point_add:
1792 andl OPENSSL_ia32cap_P+8(%rip),%ecx
1803 movdqu 0(%rsi),%xmm0
1804 movdqu 16(%rsi),%xmm1
1805 movdqu 32(%rsi),%xmm2
1806 movdqu 48(%rsi),%xmm3
1807 movdqu 64(%rsi),%xmm4
1808 movdqu 80(%rsi),%xmm5
1811 movdqa %xmm0,384(%rsp)
1812 movdqa %xmm1,384+16(%rsp)
1813 movdqa %xmm2,416(%rsp)
1814 movdqa %xmm3,416+16(%rsp)
1815 movdqa %xmm4,448(%rsp)
1816 movdqa %xmm5,448+16(%rsp)
1819 movdqu 0(%rsi),%xmm0
1820 pshufd $0xb1,%xmm5,%xmm3
1821 movdqu 16(%rsi),%xmm1
1822 movdqu 32(%rsi),%xmm2
1824 movdqu 48(%rsi),%xmm3
1825 movq 64+0(%rsi),%rax
1826 movq 64+8(%rsi),%r14
1827 movq 64+16(%rsi),%r15
1828 movq 64+24(%rsi),%r8
1829 movdqa %xmm0,480(%rsp)
1830 pshufd $0x1e,%xmm5,%xmm4
1831 movdqa %xmm1,480+16(%rsp)
1832 movdqu 64(%rsi),%xmm0
1833 movdqu 80(%rsi),%xmm1
1834 movdqa %xmm2,512(%rsp)
1835 movdqa %xmm3,512+16(%rsp)
1839 .byte 102,72,15,110,199
1841 leaq 64-0(%rsi),%rsi
1842 movq %rax,544+0(%rsp)
1843 movq %r14,544+8(%rsp)
1844 movq %r15,544+16(%rsp)
1845 movq %r8,544+24(%rsp)
1847 call __ecp_nistz256_sqr_montq
1850 pshufd $0xb1,%xmm1,%xmm4
1852 pshufd $0,%xmm5,%xmm5
1853 pshufd $0x1e,%xmm4,%xmm3
1857 pshufd $0,%xmm4,%xmm4
1858 movq 64+0(%rbx),%rax
1859 movq 64+8(%rbx),%r14
1860 movq 64+16(%rbx),%r15
1861 movq 64+24(%rbx),%r8
1862 .byte 102,72,15,110,203
1864 leaq 64-0(%rbx),%rsi
1866 call __ecp_nistz256_sqr_montq
1871 movq 8+96(%rsp),%r10
1872 leaq 0+96(%rsp),%rsi
1873 movq 16+96(%rsp),%r11
1874 movq 24+96(%rsp),%r12
1876 call __ecp_nistz256_mul_montq
1881 movq 8+32(%rsp),%r10
1882 leaq 0+32(%rsp),%rsi
1883 movq 16+32(%rsp),%r11
1884 movq 24+32(%rsp),%r12
1886 call __ecp_nistz256_mul_montq
1890 movq 0+224(%rsp),%r9
1891 movq 8+224(%rsp),%r10
1892 leaq 0+224(%rsp),%rsi
1893 movq 16+224(%rsp),%r11
1894 movq 24+224(%rsp),%r12
1896 call __ecp_nistz256_mul_montq
1900 movq 0+256(%rsp),%r9
1901 movq 8+256(%rsp),%r10
1902 leaq 0+256(%rsp),%rsi
1903 movq 16+256(%rsp),%r11
1904 movq 24+256(%rsp),%r12
1906 call __ecp_nistz256_mul_montq
1910 call __ecp_nistz256_sub_fromq
1917 .byte 102,73,15,110,220
1922 movq 8+96(%rsp),%r10
1923 leaq 0+96(%rsp),%rsi
1924 movq 16+96(%rsp),%r11
1925 movq 24+96(%rsp),%r12
1927 call __ecp_nistz256_mul_montq
1932 movq 8+32(%rsp),%r10
1933 leaq 0+32(%rsp),%rsi
1934 movq 16+32(%rsp),%r11
1935 movq 24+32(%rsp),%r12
1937 call __ecp_nistz256_mul_montq
1941 call __ecp_nistz256_sub_fromq
1949 .byte 102,73,15,126,208
1950 .byte 102,73,15,126,217
1956 .byte 102,72,15,126,199
1958 movdqu %xmm0,0(%rdi)
1959 movdqu %xmm0,16(%rdi)
1960 movdqu %xmm0,32(%rdi)
1961 movdqu %xmm0,48(%rdi)
1962 movdqu %xmm0,64(%rdi)
1963 movdqu %xmm0,80(%rdi)
1968 .byte 102,72,15,126,206
1969 .byte 102,72,15,126,199
1971 jmp .Lpoint_double_shortcutq
1975 movq 0+64(%rsp),%rax
1976 movq 8+64(%rsp),%r14
1977 leaq 0+64(%rsp),%rsi
1978 movq 16+64(%rsp),%r15
1979 movq 24+64(%rsp),%r8
1981 call __ecp_nistz256_sqr_montq
1988 movq 16+0(%rsp),%r11
1989 movq 24+0(%rsp),%r12
1991 call __ecp_nistz256_mul_montq
1996 movq 16+0(%rsp),%r15
1999 call __ecp_nistz256_sqr_montq
2003 movq 0+352(%rsp),%r9
2004 movq 8+352(%rsp),%r10
2005 leaq 0+352(%rsp),%rsi
2006 movq 16+352(%rsp),%r11
2007 movq 24+352(%rsp),%r12
2009 call __ecp_nistz256_mul_montq
2014 movq 8+32(%rsp),%r10
2015 leaq 0+32(%rsp),%rsi
2016 movq 16+32(%rsp),%r11
2017 movq 24+32(%rsp),%r12
2019 call __ecp_nistz256_mul_montq
2024 movq 8+32(%rsp),%r10
2025 leaq 0+32(%rsp),%rsi
2026 movq 16+32(%rsp),%r11
2027 movq 24+32(%rsp),%r12
2029 call __ecp_nistz256_mul_montq
2061 call __ecp_nistz256_subq
2065 call __ecp_nistz256_sub_fromq
2067 movq 192+0(%rsp),%rax
2068 movq 192+8(%rsp),%rbp
2069 movq 192+16(%rsp),%rcx
2070 movq 192+24(%rsp),%r10
2073 call __ecp_nistz256_subq
2081 movq 0+224(%rsp),%r9
2082 movq 8+224(%rsp),%r10
2083 leaq 0+224(%rsp),%rsi
2084 movq 16+224(%rsp),%r11
2085 movq 24+224(%rsp),%r12
2087 call __ecp_nistz256_mul_montq
2092 movq 8+64(%rsp),%r10
2093 leaq 0+64(%rsp),%rsi
2094 movq 16+64(%rsp),%r11
2095 movq 24+64(%rsp),%r12
2097 call __ecp_nistz256_mul_montq
2101 call __ecp_nistz256_sub_fromq
2103 .byte 102,72,15,126,199
2107 pandn 352(%rsp),%xmm0
2109 pandn 352+16(%rsp),%xmm1
2111 pand 544(%rsp),%xmm2
2112 pand 544+16(%rsp),%xmm3
2122 pand 448(%rsp),%xmm2
2123 pand 448+16(%rsp),%xmm3
2126 movdqu %xmm2,64(%rdi)
2127 movdqu %xmm3,80(%rdi)
2131 pandn 288(%rsp),%xmm0
2133 pandn 288+16(%rsp),%xmm1
2135 pand 480(%rsp),%xmm2
2136 pand 480+16(%rsp),%xmm3
2146 pand 384(%rsp),%xmm2
2147 pand 384+16(%rsp),%xmm3
2150 movdqu %xmm2,0(%rdi)
2151 movdqu %xmm3,16(%rdi)
2155 pandn 320(%rsp),%xmm0
2157 pandn 320+16(%rsp),%xmm1
2159 pand 512(%rsp),%xmm2
2160 pand 512+16(%rsp),%xmm3
2170 pand 416(%rsp),%xmm2
2171 pand 416+16(%rsp),%xmm3
2174 movdqu %xmm2,32(%rdi)
2175 movdqu %xmm3,48(%rdi)
2186 .size ecp_nistz256_point_add,.-ecp_nistz256_point_add
2187 .globl ecp_nistz256_point_add_affine
2188 .type ecp_nistz256_point_add_affine,@function
2190 ecp_nistz256_point_add_affine:
2192 andl OPENSSL_ia32cap_P+8(%rip),%ecx
2194 je .Lpoint_add_affinex
2203 movdqu 0(%rsi),%xmm0
2205 movdqu 16(%rsi),%xmm1
2206 movdqu 32(%rsi),%xmm2
2207 movdqu 48(%rsi),%xmm3
2208 movdqu 64(%rsi),%xmm4
2209 movdqu 80(%rsi),%xmm5
2210 movq 64+0(%rsi),%rax
2211 movq 64+8(%rsi),%r14
2212 movq 64+16(%rsi),%r15
2213 movq 64+24(%rsi),%r8
2214 movdqa %xmm0,320(%rsp)
2215 movdqa %xmm1,320+16(%rsp)
2216 movdqa %xmm2,352(%rsp)
2217 movdqa %xmm3,352+16(%rsp)
2218 movdqa %xmm4,384(%rsp)
2219 movdqa %xmm5,384+16(%rsp)
2222 movdqu 0(%rbx),%xmm0
2223 pshufd $0xb1,%xmm5,%xmm3
2224 movdqu 16(%rbx),%xmm1
2225 movdqu 32(%rbx),%xmm2
2227 movdqu 48(%rbx),%xmm3
2228 movdqa %xmm0,416(%rsp)
2229 pshufd $0x1e,%xmm5,%xmm4
2230 movdqa %xmm1,416+16(%rsp)
2232 .byte 102,72,15,110,199
2233 movdqa %xmm2,448(%rsp)
2234 movdqa %xmm3,448+16(%rsp)
2240 leaq 64-0(%rsi),%rsi
2242 call __ecp_nistz256_sqr_montq
2245 pshufd $0xb1,%xmm3,%xmm4
2250 pshufd $0,%xmm5,%xmm5
2251 pshufd $0x1e,%xmm4,%xmm3
2257 pshufd $0,%xmm4,%xmm4
2259 leaq 32-0(%rsp),%rsi
2262 call __ecp_nistz256_mul_montq
2266 call __ecp_nistz256_sub_fromq
2271 movq 8+32(%rsp),%r10
2272 leaq 0+32(%rsp),%rsi
2273 movq 16+32(%rsp),%r11
2274 movq 24+32(%rsp),%r12
2276 call __ecp_nistz256_mul_montq
2281 movq 8+64(%rsp),%r10
2282 leaq 0+64(%rsp),%rsi
2283 movq 16+64(%rsp),%r11
2284 movq 24+64(%rsp),%r12
2286 call __ecp_nistz256_mul_montq
2291 movq 8+32(%rsp),%r10
2292 leaq 0+32(%rsp),%rsi
2293 movq 16+32(%rsp),%r11
2294 movq 24+32(%rsp),%r12
2296 call __ecp_nistz256_mul_montq
2300 call __ecp_nistz256_sub_fromq
2302 movq 0+64(%rsp),%rax
2303 movq 8+64(%rsp),%r14
2304 leaq 0+64(%rsp),%rsi
2305 movq 16+64(%rsp),%r15
2306 movq 24+64(%rsp),%r8
2308 call __ecp_nistz256_sqr_montq
2310 movq 0+96(%rsp),%rax
2311 movq 8+96(%rsp),%r14
2312 leaq 0+96(%rsp),%rsi
2313 movq 16+96(%rsp),%r15
2314 movq 24+96(%rsp),%r8
2316 call __ecp_nistz256_sqr_montq
2321 movq 8+64(%rsp),%r10
2322 leaq 0+64(%rsp),%rsi
2323 movq 16+64(%rsp),%r11
2324 movq 24+64(%rsp),%r12
2326 call __ecp_nistz256_mul_montq
2330 movq 0+128(%rsp),%r9
2331 movq 8+128(%rsp),%r10
2332 leaq 0+128(%rsp),%rsi
2333 movq 16+128(%rsp),%r11
2334 movq 24+128(%rsp),%r12
2336 call __ecp_nistz256_mul_montq
2368 call __ecp_nistz256_subq
2372 call __ecp_nistz256_sub_fromq
2376 movq 0+16(%rsp),%rcx
2377 movq 0+24(%rsp),%r10
2380 call __ecp_nistz256_subq
2388 movq 0+160(%rsp),%r9
2389 movq 8+160(%rsp),%r10
2390 leaq 0+160(%rsp),%rsi
2391 movq 16+160(%rsp),%r11
2392 movq 24+160(%rsp),%r12
2394 call __ecp_nistz256_mul_montq
2399 movq 8+64(%rsp),%r10
2400 leaq 0+64(%rsp),%rsi
2401 movq 16+64(%rsp),%r11
2402 movq 24+64(%rsp),%r12
2404 call __ecp_nistz256_mul_montq
2408 call __ecp_nistz256_sub_fromq
2410 .byte 102,72,15,126,199
2414 pandn 288(%rsp),%xmm0
2416 pandn 288+16(%rsp),%xmm1
2418 pand .LONE_mont(%rip),%xmm2
2419 pand .LONE_mont+16(%rip),%xmm3
2429 pand 384(%rsp),%xmm2
2430 pand 384+16(%rsp),%xmm3
2433 movdqu %xmm2,64(%rdi)
2434 movdqu %xmm3,80(%rdi)
2438 pandn 224(%rsp),%xmm0
2440 pandn 224+16(%rsp),%xmm1
2442 pand 416(%rsp),%xmm2
2443 pand 416+16(%rsp),%xmm3
2453 pand 320(%rsp),%xmm2
2454 pand 320+16(%rsp),%xmm3
2457 movdqu %xmm2,0(%rdi)
2458 movdqu %xmm3,16(%rdi)
2462 pandn 256(%rsp),%xmm0
2464 pandn 256+16(%rsp),%xmm1
2466 pand 448(%rsp),%xmm2
2467 pand 448+16(%rsp),%xmm3
2477 pand 352(%rsp),%xmm2
2478 pand 352+16(%rsp),%xmm3
2481 movdqu %xmm2,32(%rdi)
2482 movdqu %xmm3,48(%rdi)
2492 .size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine
2493 .type __ecp_nistz256_add_tox,@function
2495 __ecp_nistz256_add_tox:
2524 .size __ecp_nistz256_add_tox,.-__ecp_nistz256_add_tox
2526 .type __ecp_nistz256_sub_fromx,@function
2528 __ecp_nistz256_sub_fromx:
2557 .size __ecp_nistz256_sub_fromx,.-__ecp_nistz256_sub_fromx
2559 .type __ecp_nistz256_subx,@function
2561 __ecp_nistz256_subx:
2586 .size __ecp_nistz256_subx,.-__ecp_nistz256_subx
2588 .type __ecp_nistz256_mul_by_2x,@function
2590 __ecp_nistz256_mul_by_2x:
2619 .size __ecp_nistz256_mul_by_2x,.-__ecp_nistz256_mul_by_2x
2620 .type ecp_nistz256_point_doublex,@function
2622 ecp_nistz256_point_doublex:
2632 .Lpoint_double_shortcutx:
2633 movdqu 0(%rsi),%xmm0
2635 movdqu 16(%rsi),%xmm1
2636 movq 32+0(%rsi),%r12
2637 movq 32+8(%rsi),%r13
2638 movq 32+16(%rsi),%r8
2639 movq 32+24(%rsi),%r9
2640 movq .Lpoly+8(%rip),%r14
2641 movq .Lpoly+24(%rip),%r15
2642 movdqa %xmm0,96(%rsp)
2643 movdqa %xmm1,96+16(%rsp)
2646 .byte 102,72,15,110,199
2647 .byte 102,73,15,110,202
2648 .byte 102,73,15,110,211
2651 call __ecp_nistz256_mul_by_2x
2653 movq 64+0(%rsi),%rdx
2654 movq 64+8(%rsi),%r14
2655 movq 64+16(%rsi),%r15
2656 movq 64+24(%rsi),%r8
2657 leaq 64-128(%rsi),%rsi
2659 call __ecp_nistz256_sqr_montx
2663 leaq -128+0(%rsp),%rsi
2664 movq 16+0(%rsp),%r15
2667 call __ecp_nistz256_sqr_montx
2671 movq 64+8(%rbx),%r10
2672 movq 64+16(%rbx),%r11
2673 movq 64+24(%rbx),%r12
2674 leaq 64-128(%rbx),%rsi
2676 .byte 102,72,15,126,215
2677 call __ecp_nistz256_mul_montx
2678 call __ecp_nistz256_mul_by_2x
2680 movq 96+0(%rsp),%r12
2681 movq 96+8(%rsp),%r13
2683 movq 96+16(%rsp),%r8
2684 movq 96+24(%rsp),%r9
2686 call __ecp_nistz256_add_tox
2688 movq 96+0(%rsp),%r12
2689 movq 96+8(%rsp),%r13
2691 movq 96+16(%rsp),%r8
2692 movq 96+24(%rsp),%r9
2694 call __ecp_nistz256_sub_fromx
2698 leaq -128+0(%rsp),%rsi
2699 movq 16+0(%rsp),%r15
2701 .byte 102,72,15,126,207
2702 call __ecp_nistz256_sqr_montx
2744 movq 8+32(%rsp),%r10
2745 leaq -128+32(%rsp),%rsi
2746 movq 16+32(%rsp),%r11
2747 movq 24+32(%rsp),%r12
2749 call __ecp_nistz256_mul_montx
2752 call __ecp_nistz256_mul_by_2x
2756 call __ecp_nistz256_add_tox
2762 leaq -128+0(%rsp),%rsi
2763 movq 16+0(%rsp),%r11
2764 movq 24+0(%rsp),%r12
2766 call __ecp_nistz256_mul_montx
2769 call __ecp_nistz256_mul_by_2x
2771 movq 0+32(%rsp),%rdx
2772 movq 8+32(%rsp),%r14
2773 leaq -128+32(%rsp),%rsi
2774 movq 16+32(%rsp),%r15
2775 movq 24+32(%rsp),%r8
2776 .byte 102,72,15,126,199
2777 call __ecp_nistz256_sqr_montx
2784 call __ecp_nistz256_sub_fromx
2788 movq 0+16(%rsp),%rcx
2789 movq 0+24(%rsp),%r10
2791 call __ecp_nistz256_subx
2802 leaq 0-128(%rsp),%rsi
2807 call __ecp_nistz256_mul_montx
2809 .byte 102,72,15,126,203
2810 .byte 102,72,15,126,207
2811 call __ecp_nistz256_sub_fromx
2821 .size ecp_nistz256_point_doublex,.-ecp_nistz256_point_doublex
2822 .type ecp_nistz256_point_addx,@function
2824 ecp_nistz256_point_addx:
2834 movdqu 0(%rsi),%xmm0
2835 movdqu 16(%rsi),%xmm1
2836 movdqu 32(%rsi),%xmm2
2837 movdqu 48(%rsi),%xmm3
2838 movdqu 64(%rsi),%xmm4
2839 movdqu 80(%rsi),%xmm5
2842 movdqa %xmm0,384(%rsp)
2843 movdqa %xmm1,384+16(%rsp)
2844 movdqa %xmm2,416(%rsp)
2845 movdqa %xmm3,416+16(%rsp)
2846 movdqa %xmm4,448(%rsp)
2847 movdqa %xmm5,448+16(%rsp)
2850 movdqu 0(%rsi),%xmm0
2851 pshufd $0xb1,%xmm5,%xmm3
2852 movdqu 16(%rsi),%xmm1
2853 movdqu 32(%rsi),%xmm2
2855 movdqu 48(%rsi),%xmm3
2856 movq 64+0(%rsi),%rdx
2857 movq 64+8(%rsi),%r14
2858 movq 64+16(%rsi),%r15
2859 movq 64+24(%rsi),%r8
2860 movdqa %xmm0,480(%rsp)
2861 pshufd $0x1e,%xmm5,%xmm4
2862 movdqa %xmm1,480+16(%rsp)
2863 movdqu 64(%rsi),%xmm0
2864 movdqu 80(%rsi),%xmm1
2865 movdqa %xmm2,512(%rsp)
2866 movdqa %xmm3,512+16(%rsp)
2870 .byte 102,72,15,110,199
2872 leaq 64-128(%rsi),%rsi
2873 movq %rdx,544+0(%rsp)
2874 movq %r14,544+8(%rsp)
2875 movq %r15,544+16(%rsp)
2876 movq %r8,544+24(%rsp)
2878 call __ecp_nistz256_sqr_montx
2881 pshufd $0xb1,%xmm1,%xmm4
2883 pshufd $0,%xmm5,%xmm5
2884 pshufd $0x1e,%xmm4,%xmm3
2888 pshufd $0,%xmm4,%xmm4
2889 movq 64+0(%rbx),%rdx
2890 movq 64+8(%rbx),%r14
2891 movq 64+16(%rbx),%r15
2892 movq 64+24(%rbx),%r8
2893 .byte 102,72,15,110,203
2895 leaq 64-128(%rbx),%rsi
2897 call __ecp_nistz256_sqr_montx
2902 movq 8+96(%rsp),%r10
2903 leaq -128+96(%rsp),%rsi
2904 movq 16+96(%rsp),%r11
2905 movq 24+96(%rsp),%r12
2907 call __ecp_nistz256_mul_montx
2912 movq 8+32(%rsp),%r10
2913 leaq -128+32(%rsp),%rsi
2914 movq 16+32(%rsp),%r11
2915 movq 24+32(%rsp),%r12
2917 call __ecp_nistz256_mul_montx
2921 movq 0+224(%rsp),%r9
2922 movq 8+224(%rsp),%r10
2923 leaq -128+224(%rsp),%rsi
2924 movq 16+224(%rsp),%r11
2925 movq 24+224(%rsp),%r12
2927 call __ecp_nistz256_mul_montx
2931 movq 0+256(%rsp),%r9
2932 movq 8+256(%rsp),%r10
2933 leaq -128+256(%rsp),%rsi
2934 movq 16+256(%rsp),%r11
2935 movq 24+256(%rsp),%r12
2937 call __ecp_nistz256_mul_montx
2941 call __ecp_nistz256_sub_fromx
2948 .byte 102,73,15,110,220
2953 movq 8+96(%rsp),%r10
2954 leaq -128+96(%rsp),%rsi
2955 movq 16+96(%rsp),%r11
2956 movq 24+96(%rsp),%r12
2958 call __ecp_nistz256_mul_montx
2963 movq 8+32(%rsp),%r10
2964 leaq -128+32(%rsp),%rsi
2965 movq 16+32(%rsp),%r11
2966 movq 24+32(%rsp),%r12
2968 call __ecp_nistz256_mul_montx
2972 call __ecp_nistz256_sub_fromx
2980 .byte 102,73,15,126,208
2981 .byte 102,73,15,126,217
2987 .byte 102,72,15,126,199
2989 movdqu %xmm0,0(%rdi)
2990 movdqu %xmm0,16(%rdi)
2991 movdqu %xmm0,32(%rdi)
2992 movdqu %xmm0,48(%rdi)
2993 movdqu %xmm0,64(%rdi)
2994 movdqu %xmm0,80(%rdi)
2999 .byte 102,72,15,126,206
3000 .byte 102,72,15,126,199
3002 jmp .Lpoint_double_shortcutx
3006 movq 0+64(%rsp),%rdx
3007 movq 8+64(%rsp),%r14
3008 leaq -128+64(%rsp),%rsi
3009 movq 16+64(%rsp),%r15
3010 movq 24+64(%rsp),%r8
3012 call __ecp_nistz256_sqr_montx
3018 leaq -128+0(%rsp),%rsi
3019 movq 16+0(%rsp),%r11
3020 movq 24+0(%rsp),%r12
3022 call __ecp_nistz256_mul_montx
3026 leaq -128+0(%rsp),%rsi
3027 movq 16+0(%rsp),%r15
3030 call __ecp_nistz256_sqr_montx
3034 movq 0+352(%rsp),%r9
3035 movq 8+352(%rsp),%r10
3036 leaq -128+352(%rsp),%rsi
3037 movq 16+352(%rsp),%r11
3038 movq 24+352(%rsp),%r12
3040 call __ecp_nistz256_mul_montx
3045 movq 8+32(%rsp),%r10
3046 leaq -128+32(%rsp),%rsi
3047 movq 16+32(%rsp),%r11
3048 movq 24+32(%rsp),%r12
3050 call __ecp_nistz256_mul_montx
3055 movq 8+32(%rsp),%r10
3056 leaq -128+32(%rsp),%rsi
3057 movq 16+32(%rsp),%r11
3058 movq 24+32(%rsp),%r12
3060 call __ecp_nistz256_mul_montx
3092 call __ecp_nistz256_subx
3096 call __ecp_nistz256_sub_fromx
3098 movq 192+0(%rsp),%rax
3099 movq 192+8(%rsp),%rbp
3100 movq 192+16(%rsp),%rcx
3101 movq 192+24(%rsp),%r10
3104 call __ecp_nistz256_subx
3112 movq 0+224(%rsp),%r9
3113 movq 8+224(%rsp),%r10
3114 leaq -128+224(%rsp),%rsi
3115 movq 16+224(%rsp),%r11
3116 movq 24+224(%rsp),%r12
3118 call __ecp_nistz256_mul_montx
3123 movq 8+64(%rsp),%r10
3124 leaq -128+64(%rsp),%rsi
3125 movq 16+64(%rsp),%r11
3126 movq 24+64(%rsp),%r12
3128 call __ecp_nistz256_mul_montx
3132 call __ecp_nistz256_sub_fromx
3134 .byte 102,72,15,126,199
3138 pandn 352(%rsp),%xmm0
3140 pandn 352+16(%rsp),%xmm1
3142 pand 544(%rsp),%xmm2
3143 pand 544+16(%rsp),%xmm3
3153 pand 448(%rsp),%xmm2
3154 pand 448+16(%rsp),%xmm3
3157 movdqu %xmm2,64(%rdi)
3158 movdqu %xmm3,80(%rdi)
3162 pandn 288(%rsp),%xmm0
3164 pandn 288+16(%rsp),%xmm1
3166 pand 480(%rsp),%xmm2
3167 pand 480+16(%rsp),%xmm3
3177 pand 384(%rsp),%xmm2
3178 pand 384+16(%rsp),%xmm3
3181 movdqu %xmm2,0(%rdi)
3182 movdqu %xmm3,16(%rdi)
3186 pandn 320(%rsp),%xmm0
3188 pandn 320+16(%rsp),%xmm1
3190 pand 512(%rsp),%xmm2
3191 pand 512+16(%rsp),%xmm3
3201 pand 416(%rsp),%xmm2
3202 pand 416+16(%rsp),%xmm3
3205 movdqu %xmm2,32(%rdi)
3206 movdqu %xmm3,48(%rdi)
3217 .size ecp_nistz256_point_addx,.-ecp_nistz256_point_addx
3218 .type ecp_nistz256_point_add_affinex,@function
3220 ecp_nistz256_point_add_affinex:
3221 .Lpoint_add_affinex:
3230 movdqu 0(%rsi),%xmm0
3232 movdqu 16(%rsi),%xmm1
3233 movdqu 32(%rsi),%xmm2
3234 movdqu 48(%rsi),%xmm3
3235 movdqu 64(%rsi),%xmm4
3236 movdqu 80(%rsi),%xmm5
3237 movq 64+0(%rsi),%rdx
3238 movq 64+8(%rsi),%r14
3239 movq 64+16(%rsi),%r15
3240 movq 64+24(%rsi),%r8
3241 movdqa %xmm0,320(%rsp)
3242 movdqa %xmm1,320+16(%rsp)
3243 movdqa %xmm2,352(%rsp)
3244 movdqa %xmm3,352+16(%rsp)
3245 movdqa %xmm4,384(%rsp)
3246 movdqa %xmm5,384+16(%rsp)
3249 movdqu 0(%rbx),%xmm0
3250 pshufd $0xb1,%xmm5,%xmm3
3251 movdqu 16(%rbx),%xmm1
3252 movdqu 32(%rbx),%xmm2
3254 movdqu 48(%rbx),%xmm3
3255 movdqa %xmm0,416(%rsp)
3256 pshufd $0x1e,%xmm5,%xmm4
3257 movdqa %xmm1,416+16(%rsp)
3259 .byte 102,72,15,110,199
3260 movdqa %xmm2,448(%rsp)
3261 movdqa %xmm3,448+16(%rsp)
3267 leaq 64-128(%rsi),%rsi
3269 call __ecp_nistz256_sqr_montx
3272 pshufd $0xb1,%xmm3,%xmm4
3277 pshufd $0,%xmm5,%xmm5
3278 pshufd $0x1e,%xmm4,%xmm3
3284 pshufd $0,%xmm4,%xmm4
3286 leaq 32-128(%rsp),%rsi
3289 call __ecp_nistz256_mul_montx
3293 call __ecp_nistz256_sub_fromx
3298 movq 8+32(%rsp),%r10
3299 leaq -128+32(%rsp),%rsi
3300 movq 16+32(%rsp),%r11
3301 movq 24+32(%rsp),%r12
3303 call __ecp_nistz256_mul_montx
3308 movq 8+64(%rsp),%r10
3309 leaq -128+64(%rsp),%rsi
3310 movq 16+64(%rsp),%r11
3311 movq 24+64(%rsp),%r12
3313 call __ecp_nistz256_mul_montx
3318 movq 8+32(%rsp),%r10
3319 leaq -128+32(%rsp),%rsi
3320 movq 16+32(%rsp),%r11
3321 movq 24+32(%rsp),%r12
3323 call __ecp_nistz256_mul_montx
3327 call __ecp_nistz256_sub_fromx
3329 movq 0+64(%rsp),%rdx
3330 movq 8+64(%rsp),%r14
3331 leaq -128+64(%rsp),%rsi
3332 movq 16+64(%rsp),%r15
3333 movq 24+64(%rsp),%r8
3335 call __ecp_nistz256_sqr_montx
3337 movq 0+96(%rsp),%rdx
3338 movq 8+96(%rsp),%r14
3339 leaq -128+96(%rsp),%rsi
3340 movq 16+96(%rsp),%r15
3341 movq 24+96(%rsp),%r8
3343 call __ecp_nistz256_sqr_montx
3348 movq 8+64(%rsp),%r10
3349 leaq -128+64(%rsp),%rsi
3350 movq 16+64(%rsp),%r11
3351 movq 24+64(%rsp),%r12
3353 call __ecp_nistz256_mul_montx
3357 movq 0+128(%rsp),%r9
3358 movq 8+128(%rsp),%r10
3359 leaq -128+128(%rsp),%rsi
3360 movq 16+128(%rsp),%r11
3361 movq 24+128(%rsp),%r12
3363 call __ecp_nistz256_mul_montx
3395 call __ecp_nistz256_subx
3399 call __ecp_nistz256_sub_fromx
3403 movq 0+16(%rsp),%rcx
3404 movq 0+24(%rsp),%r10
3407 call __ecp_nistz256_subx
3415 movq 0+160(%rsp),%r9
3416 movq 8+160(%rsp),%r10
3417 leaq -128+160(%rsp),%rsi
3418 movq 16+160(%rsp),%r11
3419 movq 24+160(%rsp),%r12
3421 call __ecp_nistz256_mul_montx
3426 movq 8+64(%rsp),%r10
3427 leaq -128+64(%rsp),%rsi
3428 movq 16+64(%rsp),%r11
3429 movq 24+64(%rsp),%r12
3431 call __ecp_nistz256_mul_montx
3435 call __ecp_nistz256_sub_fromx
3437 .byte 102,72,15,126,199
3441 pandn 288(%rsp),%xmm0
3443 pandn 288+16(%rsp),%xmm1
3445 pand .LONE_mont(%rip),%xmm2
3446 pand .LONE_mont+16(%rip),%xmm3
3456 pand 384(%rsp),%xmm2
3457 pand 384+16(%rsp),%xmm3
3460 movdqu %xmm2,64(%rdi)
3461 movdqu %xmm3,80(%rdi)
3465 pandn 224(%rsp),%xmm0
3467 pandn 224+16(%rsp),%xmm1
3469 pand 416(%rsp),%xmm2
3470 pand 416+16(%rsp),%xmm3
3480 pand 320(%rsp),%xmm2
3481 pand 320+16(%rsp),%xmm3
3484 movdqu %xmm2,0(%rdi)
3485 movdqu %xmm3,16(%rdi)
3489 pandn 256(%rsp),%xmm0
3491 pandn 256+16(%rsp),%xmm1
3493 pand 448(%rsp),%xmm2
3494 pand 448+16(%rsp),%xmm3
3504 pand 352(%rsp),%xmm2
3505 pand 352+16(%rsp),%xmm3
3508 movdqu %xmm2,32(%rdi)
3509 movdqu %xmm3,48(%rdi)
3519 .size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex