1/* 2Copyright (c) 2014, Intel Corporation 3All rights reserved. 4 5Redistribution and use in source and binary forms, with or without 6modification, are permitted provided that the following conditions are met: 7 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 11 * Redistributions in binary form must reproduce the above copyright notice, 12 * this list of conditions and the following disclaimer in the documentation 13 * and/or other materials provided with the distribution. 14 15 * Neither the name of Intel Corporation nor the names of its contributors 16 * may be used to endorse or promote products derived from this software 17 * without specific prior written permission. 18 19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 23ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29*/ 30 31/******************************************************************************/ 32// ALGORITHM DESCRIPTION 33// --------------------- 34// 35// Polynomials coefficients and other constants. 36// 37// Note that in this algorithm, there is a different polynomial for 38// each breakpoint, so there are 32 sets of polynomial coefficients 39// as well as 32 instances of the other constants. 40// 41// The polynomial coefficients and constants are offset from the start 42// of the main block as follows: 43// 44// 0: c8 | c0 45// 16: c9 | c1 46// 32: c10 | c2 47// 48: c11 | c3 48// 64: c12 | c4 49// 80: c13 | c5 50// 96: c14 | c6 51// 112: c15 | c7 52// 128: T_hi 53// 136: T_lo 54// 144: Sigma 55// 152: T_hl 56// 160: Tau 57// 168: Mask 58// 176: (end of block) 59// 60// The total table size is therefore 5632 bytes. 61// 62// Note that c0 and c1 are always zero. We could try storing 63// other constants here, and just loading the low part of the 64// SIMD register in these cases, after ensuring the high part 65// is zero. 66// 67// The higher terms of the polynomial are computed in the *low* 68// part of the SIMD register. This is so we can overlap the 69// multiplication by r^8 and the unpacking of the other part. 70// 71// The constants are: 72// T_hi + T_lo = accurate constant term in power series 73// Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit) 74// Tau = multiplier for the reciprocal, always -1 or 0 75// 76// The basic reconstruction formula using these constants is: 77// 78// High = tau * recip_hi + t_hi 79// Med = (sgn * r + t_hl * r)_hi 80// Low = (sgn * r + t_hl * r)_lo + 81// tau * recip_lo + T_lo + (T_hl + sigma) * c + pol 82// 83// where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15 84// 85// (c0 = c1 = 0, but using them keeps SIMD regularity) 86// 87// We then do a compensated sum High + Med, add the low parts together 88// and then do the final sum. 89// 90// Here recip_hi + recip_lo is an accurate reciprocal of the remainder 91// modulo pi/2 92// 93// Special cases: 94// tan(NaN) = quiet NaN, and raise invalid exception 95// tan(INF) = NaN and raise invalid exception 96// tan(+/-0) = +/-0 97// 98/******************************************************************************/ 99 100#include <private/bionic_asm.h> 101# -- Begin static_func 102 .text 103 .align __bionic_asm_align 104 .type static_func, @function 105static_func: 106..B1.1: 107 call ..L2 108..L2: 109 popl %eax 110 lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax 111 lea static_const_table@GOTOFF(%eax), %eax 112 ret 113 .size static_func,.-static_func 114# -- End static_func 115 116# -- Begin tan 117ENTRY(tan) 118# parameter 1: 8 + %ebp 119..B2.1: 120..B2.2: 121 pushl %ebp 122 movl %esp, %ebp 123 subl $120, %esp 124 movl %ebx, 56(%esp) 125 call static_func 126 movl %eax, %ebx 127 movsd 128(%esp), %xmm0 128 pextrw $3, %xmm0, %eax 129 andl $32767, %eax 130 subl $14368, %eax 131 cmpl $2216, %eax 132 ja .L_2TAG_PACKET_0.0.2 133 movapd 5840(%ebx), %xmm5 134 movapd 5856(%ebx), %xmm6 135 unpcklpd %xmm0, %xmm0 136 movapd 5712(%ebx), %xmm4 137 andpd %xmm0, %xmm4 138 movapd 5632(%ebx), %xmm1 139 mulpd %xmm0, %xmm1 140 orpd %xmm4, %xmm5 141 addpd %xmm5, %xmm1 142 movapd %xmm1, %xmm7 143 unpckhpd %xmm7, %xmm7 144 cvttsd2si %xmm7, %edx 145 cvttpd2dq %xmm1, %xmm1 146 cvtdq2pd %xmm1, %xmm1 147 mulpd %xmm6, %xmm1 148 movapd 5664(%ebx), %xmm3 149 movsd 5728(%ebx), %xmm5 150 addl $469248, %edx 151 movapd 5680(%ebx), %xmm4 152 mulpd %xmm1, %xmm3 153 andl $31, %edx 154 mulsd %xmm1, %xmm5 155 movl %edx, %ecx 156 mulpd %xmm1, %xmm4 157 shll $1, %ecx 158 subpd %xmm3, %xmm0 159 mulpd 5696(%ebx), %xmm1 160 addl %ecx, %edx 161 shll $2, %ecx 162 addl %ecx, %edx 163 addsd %xmm0, %xmm5 164 movapd %xmm0, %xmm2 165 subpd %xmm4, %xmm0 166 movsd 5744(%ebx), %xmm6 167 shll $4, %edx 168 lea (%ebx), %eax 169 andpd 5776(%ebx), %xmm5 170 movapd %xmm0, %xmm3 171 addl %edx, %eax 172 subpd %xmm0, %xmm2 173 unpckhpd %xmm0, %xmm0 174 divsd %xmm5, %xmm6 175 subpd %xmm4, %xmm2 176 movapd 16(%eax), %xmm7 177 subsd %xmm5, %xmm3 178 mulpd %xmm0, %xmm7 179 subpd %xmm1, %xmm2 180 movapd 48(%eax), %xmm1 181 mulpd %xmm0, %xmm1 182 movapd 96(%eax), %xmm4 183 mulpd %xmm0, %xmm4 184 addsd %xmm3, %xmm2 185 movapd %xmm0, %xmm3 186 mulpd %xmm0, %xmm0 187 addpd (%eax), %xmm7 188 addpd 32(%eax), %xmm1 189 mulpd %xmm0, %xmm1 190 addpd 80(%eax), %xmm4 191 addpd %xmm1, %xmm7 192 movapd 112(%eax), %xmm1 193 mulpd %xmm0, %xmm1 194 mulpd %xmm0, %xmm0 195 addpd %xmm1, %xmm4 196 movapd 64(%eax), %xmm1 197 mulpd %xmm0, %xmm1 198 addpd %xmm1, %xmm7 199 movapd %xmm3, %xmm1 200 mulpd %xmm0, %xmm3 201 mulsd %xmm0, %xmm0 202 mulpd 144(%eax), %xmm1 203 mulpd %xmm3, %xmm4 204 movapd %xmm1, %xmm3 205 addpd %xmm4, %xmm7 206 movapd %xmm1, %xmm4 207 mulsd %xmm7, %xmm0 208 unpckhpd %xmm7, %xmm7 209 addsd %xmm7, %xmm0 210 unpckhpd %xmm1, %xmm1 211 addsd %xmm1, %xmm3 212 subsd %xmm3, %xmm4 213 addsd %xmm4, %xmm1 214 movapd %xmm2, %xmm4 215 movsd 144(%eax), %xmm7 216 unpckhpd %xmm2, %xmm2 217 addsd 152(%eax), %xmm7 218 mulsd %xmm2, %xmm7 219 addsd 136(%eax), %xmm7 220 addsd %xmm1, %xmm7 221 addsd %xmm7, %xmm0 222 movsd 5744(%ebx), %xmm7 223 mulsd %xmm6, %xmm4 224 movsd 168(%eax), %xmm2 225 andpd %xmm6, %xmm2 226 mulsd %xmm2, %xmm5 227 mulsd 160(%eax), %xmm6 228 subsd %xmm5, %xmm7 229 subsd 128(%eax), %xmm2 230 subsd %xmm4, %xmm7 231 mulsd %xmm6, %xmm7 232 movapd %xmm3, %xmm4 233 subsd %xmm2, %xmm3 234 addsd %xmm3, %xmm2 235 subsd %xmm2, %xmm4 236 addsd %xmm4, %xmm0 237 subsd %xmm7, %xmm0 238 addsd %xmm3, %xmm0 239 movsd %xmm0, (%esp) 240 fldl (%esp) 241 jmp .L_2TAG_PACKET_1.0.2 242.L_2TAG_PACKET_0.0.2: 243 jg .L_2TAG_PACKET_2.0.2 244 shrl $4, %eax 245 cmpl $268434558, %eax 246 jne .L_2TAG_PACKET_3.0.2 247 movapd %xmm0, %xmm3 248 mulsd 5808(%ebx), %xmm3 249.L_2TAG_PACKET_3.0.2: 250 movsd 5792(%ebx), %xmm3 251 mulsd %xmm0, %xmm3 252 addsd %xmm0, %xmm3 253 mulsd 5808(%ebx), %xmm3 254 movsd %xmm3, (%esp) 255 fldl (%esp) 256 jmp .L_2TAG_PACKET_1.0.2 257.L_2TAG_PACKET_2.0.2: 258 movq 5712(%ebx), %xmm7 259 andpd %xmm0, %xmm7 260 xorpd %xmm0, %xmm7 261 ucomisd 5760(%ebx), %xmm7 262 je .L_2TAG_PACKET_4.0.2 263 subl $32, %esp 264 movsd %xmm0, (%esp) 265 lea 40(%esp), %eax 266 movl %eax, 8(%esp) 267 movl $2, %eax 268 movl %eax, 12(%esp) 269 call __libm_tancot_huge 270 addl $32, %esp 271 fldl 8(%esp) 272 jmp .L_2TAG_PACKET_1.0.2 273.L_2TAG_PACKET_4.0.2: 274 movq %xmm0, (%esp) 275 fldl (%esp) 276 fsubl (%esp) 277.L_2TAG_PACKET_1.0.2: 278 movl 56(%esp), %ebx 279 movl %ebp, %esp 280 popl %ebp 281 ret 282..B2.3: 283END(tan) 284# -- End tan 285 286# Start file scope ASM 287ALIAS_SYMBOL(tanl, tan); 288# End file scope ASM 289 .section .rodata, "a" 290 .align 16 291 .align 16 292static_const_table: 293 .long 0 294 .long 0 295 .long 0 296 .long 0 297 .long 2284589306 298 .long 1066820852 299 .long 0 300 .long 0 301 .long 0 302 .long 0 303 .long 0 304 .long 0 305 .long 1441186365 306 .long 1065494243 307 .long 1431655765 308 .long 1070945621 309 .long 0 310 .long 0 311 .long 0 312 .long 0 313 .long 236289504 314 .long 1064135997 315 .long 286331153 316 .long 1069617425 317 .long 0 318 .long 0 319 .long 0 320 .long 0 321 .long 1160476131 322 .long 1062722102 323 .long 463583772 324 .long 1068212666 325 .long 0 326 .long 0 327 .long 0 328 .long 0 329 .long 0 330 .long 1072693248 331 .long 0 332 .long 0 333 .long 0 334 .long 0 335 .long 0 336 .long 0 337 .long 1313038235 338 .long 1066745731 339 .long 0 340 .long 0 341 .long 1013878342 342 .long 1067152618 343 .long 0 344 .long 0 345 .long 3663426833 346 .long 1065725283 347 .long 3693284251 348 .long 1069118808 349 .long 650852232 350 .long 1065882376 351 .long 1996245381 352 .long 1071000265 353 .long 2008746170 354 .long 1064664197 355 .long 3055842593 356 .long 1068578846 357 .long 1495406348 358 .long 1064652437 359 .long 2269530157 360 .long 1069711235 361 .long 285563696 362 .long 1063576465 363 .long 1046897440 364 .long 1067705865 365 .long 233429731 366 .long 1063453151 367 .long 522045958 368 .long 1068476590 369 .long 2354785698 370 .long 1069102779 371 .long 1317599141 372 .long 1012432133 373 .long 0 374 .long 1072693248 375 .long 2828230105 376 .long 1065606626 377 .long 0 378 .long 0 379 .long 0 380 .long 0 381 .long 1512545955 382 .long 1068119047 383 .long 0 384 .long 0 385 .long 1127048698 386 .long 1067909459 387 .long 0 388 .long 0 389 .long 2300200450 390 .long 1067254767 391 .long 3593250296 392 .long 1070233561 393 .long 3009365544 394 .long 1066902117 395 .long 1127373050 396 .long 1071173457 397 .long 3046103305 398 .long 1066371299 399 .long 24583402 400 .long 1069723988 401 .long 4082511758 402 .long 1065914199 403 .long 3223889699 404 .long 1070020367 405 .long 548927984 406 .long 1065415756 407 .long 558065897 408 .long 1068949418 409 .long 680073315 410 .long 1064940726 411 .long 388873200 412 .long 1068944270 413 .long 3763679576 414 .long 1070167541 415 .long 1497360404 416 .long 1009710547 417 .long 0 418 .long 1072693248 419 .long 64931152 420 .long 1067729411 421 .long 0 422 .long 0 423 .long 0 424 .long 0 425 .long 2467582782 426 .long 1069256389 427 .long 0 428 .long 0 429 .long 162150096 430 .long 1068946420 431 .long 0 432 .long 0 433 .long 3702794237 434 .long 1068579152 435 .long 3631919291 436 .long 1070936926 437 .long 3456821413 438 .long 1068217218 439 .long 2031366438 440 .long 1071495745 441 .long 1596664020 442 .long 1067799281 443 .long 1509038701 444 .long 1070601643 445 .long 583171477 446 .long 1067510148 447 .long 3785344682 448 .long 1070618476 449 .long 2402036048 450 .long 1067075736 451 .long 3233018412 452 .long 1069913186 453 .long 411280568 454 .long 1066710556 455 .long 1065584192 456 .long 1069747896 457 .long 895247324 458 .long 1070819848 459 .long 500078909 460 .long 3161288781 461 .long 0 462 .long 1072693248 463 .long 729983843 464 .long 1068994194 465 .long 0 466 .long 0 467 .long 0 468 .long 0 469 .long 1458794562 470 .long 1070398550 471 .long 0 472 .long 0 473 .long 2857777489 474 .long 1070137637 475 .long 0 476 .long 0 477 .long 1024359517 478 .long 1069876531 479 .long 2616040238 480 .long 1071582937 481 .long 1609024636 482 .long 1069675088 483 .long 2529240549 484 .long 1071836633 485 .long 1510128600 486 .long 1069440113 487 .long 2251697184 488 .long 1071253687 489 .long 1262761453 490 .long 1069142850 491 .long 1263091857 492 .long 1071190461 493 .long 3043383486 494 .long 1068885191 495 .long 2476932470 496 .long 1070842002 497 .long 3659995028 498 .long 1068669200 499 .long 855891755 500 .long 1070696894 501 .long 2583490354 502 .long 1071284857 503 .long 3062633575 504 .long 1014008623 505 .long 0 506 .long 1072693248 507 .long 2550940471 508 .long 1069938201 509 .long 0 510 .long 0 511 .long 0 512 .long 0 513 .long 3422807297 514 .long 1071640847 515 .long 0 516 .long 0 517 .long 1151658053 518 .long 1071494715 519 .long 0 520 .long 0 521 .long 929607071 522 .long 1071346340 523 .long 1037049034 524 .long 1072037305 525 .long 2786928657 526 .long 1071215282 527 .long 1447406859 528 .long 1072265209 529 .long 3490952107 530 .long 1071090851 531 .long 3205232916 532 .long 1071968658 533 .long 1297344304 534 .long 1070977120 535 .long 1066110976 536 .long 1071946035 537 .long 3803721480 538 .long 1070871082 539 .long 1496754229 540 .long 1071807201 541 .long 2982550683 542 .long 1070773243 543 .long 4014441989 544 .long 1071736222 545 .long 419968236 546 .long 1071717047 547 .long 3451266538 548 .long 3163444811 549 .long 0 550 .long 1072693248 551 .long 2960267235 552 .long 1070745841 553 .long 0 554 .long 0 555 .long 0 556 .long 0 557 .long 724322768 558 .long 1072881308 559 .long 0 560 .long 0 561 .long 643153048 562 .long 1072905816 563 .long 0 564 .long 0 565 .long 4285079458 566 .long 1072928558 567 .long 3912524733 568 .long 1072622983 569 .long 118362272 570 .long 1072952754 571 .long 4107767972 572 .long 1072827408 573 .long 2689502883 574 .long 1072976922 575 .long 946523347 576 .long 1072772766 577 .long 573204189 578 .long 1073001761 579 .long 581531518 580 .long 1072826391 581 .long 1386236526 582 .long 1073026959 583 .long 3718905905 584 .long 1072832823 585 .long 1145558140 586 .long 1073052673 587 .long 513572637 588 .long 1072861969 589 .long 716700048 590 .long 1071997368 591 .long 547126769 592 .long 1015523525 593 .long 0 594 .long 1072693248 595 .long 1097907398 596 .long 1071420120 597 .long 0 598 .long 0 599 .long 0 600 .long 0 601 .long 3349892442 602 .long 1074290212 603 .long 0 604 .long 0 605 .long 3913197405 606 .long 1074501181 607 .long 0 608 .long 0 609 .long 2494034522 610 .long 1074739170 611 .long 1264738763 612 .long 1073084804 613 .long 1520293906 614 .long 1074899632 615 .long 1958936600 616 .long 1073411493 617 .long 2133649635 618 .long 1075052171 619 .long 4270740730 620 .long 1073574708 621 .long 1728930189 622 .long 1075224844 623 .long 1303998552 624 .long 1073799186 625 .long 618611933 626 .long 1075420255 627 .long 1769828046 628 .long 1073938542 629 .long 2200537986 630 .long 1075641421 631 .long 433361110 632 .long 1074105369 633 .long 719595600 634 .long 1072317184 635 .long 294527206 636 .long 3162140088 637 .long 0 638 .long 1073741824 639 .long 3811788216 640 .long 3218400550 641 .long 0 642 .long 0 643 .long 0 644 .long 0 645 .long 1704352102 646 .long 1075943001 647 .long 0 648 .long 0 649 .long 2284589306 650 .long 1076258036 651 .long 0 652 .long 0 653 .long 2211264291 654 .long 1076659010 655 .long 0 656 .long 1073741824 657 .long 1441186365 658 .long 1077028579 659 .long 1431655765 660 .long 1074091349 661 .long 876943673 662 .long 1077353622 663 .long 2863311531 664 .long 1074440874 665 .long 236289504 666 .long 1077767485 667 .long 286331153 668 .long 1074860305 669 .long 2805473311 670 .long 1078115278 671 .long 95443718 672 .long 1075163227 673 .long 1160476131 674 .long 1078450742 675 .long 463583772 676 .long 1075552698 677 .long 0 678 .long 1072693248 679 .long 0 680 .long 0 681 .long 0 682 .long 1073741824 683 .long 0 684 .long 0 685 .long 0 686 .long 0 687 .long 0 688 .long 0 689 .long 1330165971 690 .long 3207850745 691 .long 0 692 .long 0 693 .long 217536623 694 .long 1059109098 695 .long 0 696 .long 0 697 .long 3492120849 698 .long 3205151475 699 .long 602185705 700 .long 3215678092 701 .long 760422958 702 .long 1056312597 703 .long 555127889 704 .long 1067545266 705 .long 3139784124 706 .long 3202470837 707 .long 3690544014 708 .long 3213150171 709 .long 95707915 710 .long 1053635428 711 .long 4003114407 712 .long 1064581412 713 .long 2034926231 714 .long 3199711161 715 .long 3759536023 716 .long 3210559989 717 .long 3826928214 718 .long 1050893819 719 .long 3837960785 720 .long 1061790379 721 .long 1526325248 722 .long 3217967566 723 .long 2356426521 724 .long 1025423456 725 .long 0 726 .long 0 727 .long 457728975 728 .long 1071088276 729 .long 0 730 .long 1072693248 731 .long 0 732 .long 4294967288 733 .long 1398462608 734 .long 3207303968 735 .long 0 736 .long 0 737 .long 26205983 738 .long 1058461213 739 .long 0 740 .long 0 741 .long 56226238 742 .long 3204528612 743 .long 2754706541 744 .long 3215359511 745 .long 2187799823 746 .long 1055634437 747 .long 790323742 748 .long 1067402587 749 .long 1372385848 750 .long 3201651479 751 .long 4097292716 752 .long 3212856302 753 .long 3348210357 754 .long 1052830099 755 .long 2442796466 756 .long 1064337602 757 .long 862608142 758 .long 3198830754 759 .long 170296152 760 .long 3210060867 761 .long 3755571428 762 .long 1049933343 763 .long 3614866008 764 .long 1061361670 765 .long 719978496 766 .long 3217669096 767 .long 1998842465 768 .long 3174703977 769 .long 0 770 .long 0 771 .long 3749156607 772 .long 1071048258 773 .long 0 774 .long 1072693248 775 .long 0 776 .long 4294967288 777 .long 3120498638 778 .long 3206749304 779 .long 0 780 .long 0 781 .long 2773578114 782 .long 1058009312 783 .long 0 784 .long 0 785 .long 2030783676 786 .long 3203817873 787 .long 2223654598 788 .long 3215071936 789 .long 2976134650 790 .long 1054987244 791 .long 706390066 792 .long 1067217386 793 .long 4258437615 794 .long 3200900378 795 .long 1066252975 796 .long 3212391267 797 .long 815777514 798 .long 1051989462 799 .long 3202745457 800 .long 1064010682 801 .long 2493556375 802 .long 3198004753 803 .long 1046243251 804 .long 3209678971 805 .long 2593078846 806 .long 1049017717 807 .long 2763962276 808 .long 1060970161 809 .long 701480960 810 .long 3217377742 811 .long 3205862232 812 .long 3174660915 813 .long 0 814 .long 0 815 .long 2267016812 816 .long 1071015664 817 .long 0 818 .long 1072693248 819 .long 0 820 .long 4294967288 821 .long 2107155798 822 .long 3206166872 823 .long 0 824 .long 0 825 .long 2642992129 826 .long 1057424578 827 .long 0 828 .long 0 829 .long 1936992811 830 .long 3203204426 831 .long 1485063559 832 .long 3214682643 833 .long 1432914553 834 .long 1054319398 835 .long 3996381654 836 .long 1067075828 837 .long 2833029256 838 .long 3200223545 839 .long 2866066872 840 .long 3211982662 841 .long 2432888737 842 .long 1051234178 843 .long 3669764559 844 .long 1063748136 845 .long 2458496952 846 .long 3197170774 847 .long 1948234989 848 .long 3209098147 849 .long 2843698787 850 .long 1048163519 851 .long 3398041407 852 .long 1060559728 853 .long 2829230080 854 .long 3217092115 855 .long 1034046433 856 .long 3174271903 857 .long 0 858 .long 0 859 .long 298675305 860 .long 1070989821 861 .long 0 862 .long 1072693248 863 .long 0 864 .long 4294967288 865 .long 437603223 866 .long 3205589761 867 .long 0 868 .long 0 869 .long 759330352 870 .long 1057048511 871 .long 0 872 .long 0 873 .long 3107463368 874 .long 3202507988 875 .long 3144465176 876 .long 3214191500 877 .long 2290961810 878 .long 1053841035 879 .long 1618153340 880 .long 1066971547 881 .long 3836869393 882 .long 3199400272 883 .long 584032116 884 .long 3211469261 885 .long 1245704358 886 .long 1050626462 887 .long 4247487438 888 .long 1063561943 889 .long 1669034927 890 .long 3196274812 891 .long 3844233498 892 .long 3208626322 893 .long 2706958524 894 .long 1047411374 895 .long 3857199098 896 .long 1060281647 897 .long 3593904128 898 .long 3216590719 899 .long 3267547836 900 .long 3172163321 901 .long 0 902 .long 0 903 .long 4076712227 904 .long 1070970214 905 .long 0 906 .long 1072693248 907 .long 0 908 .long 4294967288 909 .long 3290090340 910 .long 3204793485 911 .long 0 912 .long 0 913 .long 3685760367 914 .long 1056668370 915 .long 0 916 .long 0 917 .long 2655163949 918 .long 3201674917 919 .long 628750575 920 .long 3213566872 921 .long 680140505 922 .long 1053299777 923 .long 2954464709 924 .long 1066900026 925 .long 803201619 926 .long 3198516435 927 .long 1466315631 928 .long 3210837162 929 .long 1611220163 930 .long 1049972438 931 .long 2766187256 932 .long 1063437894 933 .long 1804579484 934 .long 3195331491 935 .long 3695969289 936 .long 3207854418 937 .long 2617238373 938 .long 1046675948 939 .long 3095830084 940 .long 1060095334 941 .long 3789570048 942 .long 3216034914 943 .long 23826559 944 .long 3172048060 945 .long 0 946 .long 0 947 .long 3870939386 948 .long 1070956467 949 .long 0 950 .long 1072693248 951 .long 0 952 .long 4294967288 953 .long 1571758758 954 .long 3203672535 955 .long 0 956 .long 0 957 .long 113026373 958 .long 1056416381 959 .long 0 960 .long 0 961 .long 1913766298 962 .long 3200523326 963 .long 2507068734 964 .long 3212502004 965 .long 4000648818 966 .long 1053003803 967 .long 2446607349 968 .long 1066858259 969 .long 912662124 970 .long 3197333001 971 .long 1349489537 972 .long 3209765608 973 .long 3412972607 974 .long 1049641401 975 .long 1721283327 976 .long 1063366855 977 .long 1466691883 978 .long 3194116746 979 .long 3852528092 980 .long 3206760861 981 .long 285443293 982 .long 1046158380 983 .long 1758739894 984 .long 1059895449 985 .long 1858781184 986 .long 3214984212 987 .long 3447575948 988 .long 1024675855 989 .long 0 990 .long 0 991 .long 2242038011 992 .long 1070948320 993 .long 0 994 .long 1072693248 995 .long 0 996 .long 4294967288 997 .long 0 998 .long 0 999 .long 0 1000 .long 0 1001 .long 737611454 1002 .long 1056336527 1003 .long 0 1004 .long 0 1005 .long 0 1006 .long 0 1007 .long 0 1008 .long 0 1009 .long 3594790527 1010 .long 1052911621 1011 .long 381774871 1012 .long 1066844524 1013 .long 0 1014 .long 0 1015 .long 0 1016 .long 0 1017 .long 3303051618 1018 .long 1049456050 1019 .long 3154187623 1020 .long 1063343722 1021 .long 0 1022 .long 0 1023 .long 0 1024 .long 0 1025 .long 528061788 1026 .long 1045944910 1027 .long 2469719819 1028 .long 1059831159 1029 .long 0 1030 .long 0 1031 .long 0 1032 .long 0 1033 .long 0 1034 .long 0 1035 .long 1431655765 1036 .long 1070945621 1037 .long 0 1038 .long 1072693248 1039 .long 0 1040 .long 4294967288 1041 .long 1571758758 1042 .long 1056188887 1043 .long 0 1044 .long 0 1045 .long 113026373 1046 .long 1056416381 1047 .long 0 1048 .long 0 1049 .long 1913766298 1050 .long 1053039678 1051 .long 2507068734 1052 .long 1065018356 1053 .long 4000648818 1054 .long 1053003803 1055 .long 2446607349 1056 .long 1066858259 1057 .long 912662124 1058 .long 1049849353 1059 .long 1349489537 1060 .long 1062281960 1061 .long 3412972607 1062 .long 1049641401 1063 .long 1721283327 1064 .long 1063366855 1065 .long 1466691883 1066 .long 1046633098 1067 .long 3852528092 1068 .long 1059277213 1069 .long 285443293 1070 .long 1046158380 1071 .long 1758739894 1072 .long 1059895449 1073 .long 1858781184 1074 .long 1067500564 1075 .long 3447575948 1076 .long 3172159503 1077 .long 0 1078 .long 0 1079 .long 2242038011 1080 .long 1070948320 1081 .long 0 1082 .long 1072693248 1083 .long 0 1084 .long 4294967288 1085 .long 3290090340 1086 .long 1057309837 1087 .long 0 1088 .long 0 1089 .long 3685760367 1090 .long 1056668370 1091 .long 0 1092 .long 0 1093 .long 2655163949 1094 .long 1054191269 1095 .long 628750575 1096 .long 1066083224 1097 .long 680140505 1098 .long 1053299777 1099 .long 2954464709 1100 .long 1066900026 1101 .long 803201619 1102 .long 1051032787 1103 .long 1466315631 1104 .long 1063353514 1105 .long 1611220163 1106 .long 1049972438 1107 .long 2766187256 1108 .long 1063437894 1109 .long 1804579484 1110 .long 1047847843 1111 .long 3695969289 1112 .long 1060370770 1113 .long 2617238373 1114 .long 1046675948 1115 .long 3095830084 1116 .long 1060095334 1117 .long 3789570048 1118 .long 1068551266 1119 .long 23826559 1120 .long 1024564412 1121 .long 0 1122 .long 0 1123 .long 3870939386 1124 .long 1070956467 1125 .long 0 1126 .long 1072693248 1127 .long 0 1128 .long 4294967288 1129 .long 437603223 1130 .long 1058106113 1131 .long 0 1132 .long 0 1133 .long 759330352 1134 .long 1057048511 1135 .long 0 1136 .long 0 1137 .long 3107463368 1138 .long 1055024340 1139 .long 3144465176 1140 .long 1066707852 1141 .long 2290961810 1142 .long 1053841035 1143 .long 1618153340 1144 .long 1066971547 1145 .long 3836869393 1146 .long 1051916624 1147 .long 584032116 1148 .long 1063985613 1149 .long 1245704358 1150 .long 1050626462 1151 .long 4247487438 1152 .long 1063561943 1153 .long 1669034927 1154 .long 1048791164 1155 .long 3844233498 1156 .long 1061142674 1157 .long 2706958524 1158 .long 1047411374 1159 .long 3857199098 1160 .long 1060281647 1161 .long 3593904128 1162 .long 1069107071 1163 .long 3267547836 1164 .long 1024679673 1165 .long 0 1166 .long 0 1167 .long 4076712227 1168 .long 1070970214 1169 .long 0 1170 .long 1072693248 1171 .long 0 1172 .long 4294967288 1173 .long 2107155798 1174 .long 1058683224 1175 .long 0 1176 .long 0 1177 .long 2642992129 1178 .long 1057424578 1179 .long 0 1180 .long 0 1181 .long 1936992811 1182 .long 1055720778 1183 .long 1485063559 1184 .long 1067198995 1185 .long 1432914553 1186 .long 1054319398 1187 .long 3996381654 1188 .long 1067075828 1189 .long 2833029256 1190 .long 1052739897 1191 .long 2866066872 1192 .long 1064499014 1193 .long 2432888737 1194 .long 1051234178 1195 .long 3669764559 1196 .long 1063748136 1197 .long 2458496952 1198 .long 1049687126 1199 .long 1948234989 1200 .long 1061614499 1201 .long 2843698787 1202 .long 1048163519 1203 .long 3398041407 1204 .long 1060559728 1205 .long 2829230080 1206 .long 1069608467 1207 .long 1034046433 1208 .long 1026788255 1209 .long 0 1210 .long 0 1211 .long 298675305 1212 .long 1070989821 1213 .long 0 1214 .long 1072693248 1215 .long 0 1216 .long 4294967288 1217 .long 3120498638 1218 .long 1059265656 1219 .long 0 1220 .long 0 1221 .long 2773578114 1222 .long 1058009312 1223 .long 0 1224 .long 0 1225 .long 2030783676 1226 .long 1056334225 1227 .long 2223654598 1228 .long 1067588288 1229 .long 2976134650 1230 .long 1054987244 1231 .long 706390066 1232 .long 1067217386 1233 .long 4258437615 1234 .long 1053416730 1235 .long 1066252975 1236 .long 1064907619 1237 .long 815777514 1238 .long 1051989462 1239 .long 3202745457 1240 .long 1064010682 1241 .long 2493556375 1242 .long 1050521105 1243 .long 1046243251 1244 .long 1062195323 1245 .long 2593078846 1246 .long 1049017717 1247 .long 2763962276 1248 .long 1060970161 1249 .long 701480960 1250 .long 1069894094 1251 .long 3205862232 1252 .long 1027177267 1253 .long 0 1254 .long 0 1255 .long 2267016812 1256 .long 1071015664 1257 .long 0 1258 .long 1072693248 1259 .long 0 1260 .long 4294967288 1261 .long 1398462608 1262 .long 1059820320 1263 .long 0 1264 .long 0 1265 .long 26205983 1266 .long 1058461213 1267 .long 0 1268 .long 0 1269 .long 56226238 1270 .long 1057044964 1271 .long 2754706541 1272 .long 1067875863 1273 .long 2187799823 1274 .long 1055634437 1275 .long 790323742 1276 .long 1067402587 1277 .long 1372385848 1278 .long 1054167831 1279 .long 4097292716 1280 .long 1065372654 1281 .long 3348210357 1282 .long 1052830099 1283 .long 2442796466 1284 .long 1064337602 1285 .long 862608142 1286 .long 1051347106 1287 .long 170296152 1288 .long 1062577219 1289 .long 3755571428 1290 .long 1049933343 1291 .long 3614866008 1292 .long 1061361670 1293 .long 719978496 1294 .long 1070185448 1295 .long 1998842465 1296 .long 1027220329 1297 .long 0 1298 .long 0 1299 .long 3749156607 1300 .long 1071048258 1301 .long 0 1302 .long 1072693248 1303 .long 0 1304 .long 4294967288 1305 .long 1330165971 1306 .long 1060367097 1307 .long 0 1308 .long 0 1309 .long 217536623 1310 .long 1059109098 1311 .long 0 1312 .long 0 1313 .long 3492120849 1314 .long 1057667827 1315 .long 602185705 1316 .long 1068194444 1317 .long 760422958 1318 .long 1056312597 1319 .long 555127889 1320 .long 1067545266 1321 .long 3139784124 1322 .long 1054987189 1323 .long 3690544014 1324 .long 1065666523 1325 .long 95707915 1326 .long 1053635428 1327 .long 4003114407 1328 .long 1064581412 1329 .long 2034926231 1330 .long 1052227513 1331 .long 3759536023 1332 .long 1063076341 1333 .long 3826928214 1334 .long 1050893819 1335 .long 3837960785 1336 .long 1061790379 1337 .long 1526325248 1338 .long 1070483918 1339 .long 2356426521 1340 .long 3172907104 1341 .long 0 1342 .long 0 1343 .long 457728975 1344 .long 1071088276 1345 .long 0 1346 .long 1072693248 1347 .long 0 1348 .long 4294967288 1349 .long 1704352102 1350 .long 3223426649 1351 .long 0 1352 .long 0 1353 .long 2284589306 1354 .long 1076258036 1355 .long 0 1356 .long 0 1357 .long 2211264291 1358 .long 3224142658 1359 .long 0 1360 .long 3221225472 1361 .long 1441186365 1362 .long 1077028579 1363 .long 1431655765 1364 .long 1074091349 1365 .long 876943673 1366 .long 3224837270 1367 .long 2863311531 1368 .long 3221924522 1369 .long 236289504 1370 .long 1077767485 1371 .long 286331153 1372 .long 1074860305 1373 .long 2805473311 1374 .long 3225598926 1375 .long 95443718 1376 .long 3222646875 1377 .long 1160476131 1378 .long 1078450742 1379 .long 463583772 1380 .long 1075552698 1381 .long 0 1382 .long 3220176896 1383 .long 0 1384 .long 0 1385 .long 0 1386 .long 1073741824 1387 .long 0 1388 .long 0 1389 .long 0 1390 .long 0 1391 .long 0 1392 .long 0 1393 .long 3349892442 1394 .long 3221773860 1395 .long 0 1396 .long 0 1397 .long 3913197405 1398 .long 1074501181 1399 .long 0 1400 .long 0 1401 .long 2494034522 1402 .long 3222222818 1403 .long 1264738763 1404 .long 3220568452 1405 .long 1520293906 1406 .long 1074899632 1407 .long 1958936600 1408 .long 1073411493 1409 .long 2133649635 1410 .long 3222535819 1411 .long 4270740730 1412 .long 3221058356 1413 .long 1728930189 1414 .long 1075224844 1415 .long 1303998552 1416 .long 1073799186 1417 .long 618611933 1418 .long 3222903903 1419 .long 1769828046 1420 .long 3221422190 1421 .long 2200537986 1422 .long 1075641421 1423 .long 433361110 1424 .long 1074105369 1425 .long 719595600 1426 .long 3219800832 1427 .long 294527206 1428 .long 1014656440 1429 .long 0 1430 .long 1073741824 1431 .long 3811788216 1432 .long 3218400550 1433 .long 0 1434 .long 0 1435 .long 0 1436 .long 0 1437 .long 724322768 1438 .long 3220364956 1439 .long 0 1440 .long 0 1441 .long 643153048 1442 .long 1072905816 1443 .long 0 1444 .long 0 1445 .long 4285079458 1446 .long 3220412206 1447 .long 3912524733 1448 .long 3220106631 1449 .long 118362272 1450 .long 1072952754 1451 .long 4107767972 1452 .long 1072827408 1453 .long 2689502883 1454 .long 3220460570 1455 .long 946523347 1456 .long 3220256414 1457 .long 573204189 1458 .long 1073001761 1459 .long 581531518 1460 .long 1072826391 1461 .long 1386236526 1462 .long 3220510607 1463 .long 3718905905 1464 .long 3220316471 1465 .long 1145558140 1466 .long 1073052673 1467 .long 513572637 1468 .long 1072861969 1469 .long 716700048 1470 .long 3219481016 1471 .long 547126769 1472 .long 3163007173 1473 .long 0 1474 .long 1072693248 1475 .long 1097907398 1476 .long 1071420120 1477 .long 0 1478 .long 0 1479 .long 0 1480 .long 0 1481 .long 3422807297 1482 .long 3219124495 1483 .long 0 1484 .long 0 1485 .long 1151658053 1486 .long 1071494715 1487 .long 0 1488 .long 0 1489 .long 929607071 1490 .long 3218829988 1491 .long 1037049034 1492 .long 3219520953 1493 .long 2786928657 1494 .long 1071215282 1495 .long 1447406859 1496 .long 1072265209 1497 .long 3490952107 1498 .long 3218574499 1499 .long 3205232916 1500 .long 3219452306 1501 .long 1297344304 1502 .long 1070977120 1503 .long 1066110976 1504 .long 1071946035 1505 .long 3803721480 1506 .long 3218354730 1507 .long 1496754229 1508 .long 3219290849 1509 .long 2982550683 1510 .long 1070773243 1511 .long 4014441989 1512 .long 1071736222 1513 .long 419968236 1514 .long 3219200695 1515 .long 3451266538 1516 .long 1015961163 1517 .long 0 1518 .long 1072693248 1519 .long 2960267235 1520 .long 1070745841 1521 .long 0 1522 .long 0 1523 .long 0 1524 .long 0 1525 .long 1458794562 1526 .long 3217882198 1527 .long 0 1528 .long 0 1529 .long 2857777489 1530 .long 1070137637 1531 .long 0 1532 .long 0 1533 .long 1024359517 1534 .long 3217360179 1535 .long 2616040238 1536 .long 3219066585 1537 .long 1609024636 1538 .long 1069675088 1539 .long 2529240549 1540 .long 1071836633 1541 .long 1510128600 1542 .long 3216923761 1543 .long 2251697184 1544 .long 3218737335 1545 .long 1262761453 1546 .long 1069142850 1547 .long 1263091857 1548 .long 1071190461 1549 .long 3043383486 1550 .long 3216368839 1551 .long 2476932470 1552 .long 3218325650 1553 .long 3659995028 1554 .long 1068669200 1555 .long 855891755 1556 .long 1070696894 1557 .long 2583490354 1558 .long 3218768505 1559 .long 3062633575 1560 .long 3161492271 1561 .long 0 1562 .long 1072693248 1563 .long 2550940471 1564 .long 1069938201 1565 .long 0 1566 .long 0 1567 .long 0 1568 .long 0 1569 .long 2467582782 1570 .long 3216740037 1571 .long 0 1572 .long 0 1573 .long 162150096 1574 .long 1068946420 1575 .long 0 1576 .long 0 1577 .long 3702794237 1578 .long 3216062800 1579 .long 3631919291 1580 .long 3218420574 1581 .long 3456821413 1582 .long 1068217218 1583 .long 2031366438 1584 .long 1071495745 1585 .long 1596664020 1586 .long 3215282929 1587 .long 1509038701 1588 .long 3218085291 1589 .long 583171477 1590 .long 1067510148 1591 .long 3785344682 1592 .long 1070618476 1593 .long 2402036048 1594 .long 3214559384 1595 .long 3233018412 1596 .long 3217396834 1597 .long 411280568 1598 .long 1066710556 1599 .long 1065584192 1600 .long 1069747896 1601 .long 895247324 1602 .long 3218303496 1603 .long 500078909 1604 .long 1013805133 1605 .long 0 1606 .long 1072693248 1607 .long 729983843 1608 .long 1068994194 1609 .long 0 1610 .long 0 1611 .long 0 1612 .long 0 1613 .long 1512545955 1614 .long 3215602695 1615 .long 0 1616 .long 0 1617 .long 1127048698 1618 .long 1067909459 1619 .long 0 1620 .long 0 1621 .long 2300200450 1622 .long 3214738415 1623 .long 3593250296 1624 .long 3217717209 1625 .long 3009365544 1626 .long 1066902117 1627 .long 1127373050 1628 .long 1071173457 1629 .long 3046103305 1630 .long 3213854947 1631 .long 24583402 1632 .long 3217207636 1633 .long 4082511758 1634 .long 1065914199 1635 .long 3223889699 1636 .long 1070020367 1637 .long 548927984 1638 .long 3212899404 1639 .long 558065897 1640 .long 3216433066 1641 .long 680073315 1642 .long 1064940726 1643 .long 388873200 1644 .long 1068944270 1645 .long 3763679576 1646 .long 3217651189 1647 .long 1497360404 1648 .long 3157194195 1649 .long 0 1650 .long 1072693248 1651 .long 64931152 1652 .long 1067729411 1653 .long 0 1654 .long 0 1655 .long 0 1656 .long 0 1657 .long 1313038235 1658 .long 3214229379 1659 .long 0 1660 .long 0 1661 .long 1013878342 1662 .long 1067152618 1663 .long 0 1664 .long 0 1665 .long 3663426833 1666 .long 3213208931 1667 .long 3693284251 1668 .long 3216602456 1669 .long 650852232 1670 .long 1065882376 1671 .long 1996245381 1672 .long 1071000265 1673 .long 2008746170 1674 .long 3212147845 1675 .long 3055842593 1676 .long 3216062494 1677 .long 1495406348 1678 .long 1064652437 1679 .long 2269530157 1680 .long 1069711235 1681 .long 285563696 1682 .long 3211060113 1683 .long 1046897440 1684 .long 3215189513 1685 .long 233429731 1686 .long 1063453151 1687 .long 522045958 1688 .long 1068476590 1689 .long 2354785698 1690 .long 3216586427 1691 .long 1317599141 1692 .long 3159915781 1693 .long 0 1694 .long 1072693248 1695 .long 2828230105 1696 .long 1065606626 1697 .long 0 1698 .long 0 1699 .long 0 1700 .long 0 1701 .long 1841940611 1702 .long 1071931184 1703 .long 1841940611 1704 .long 1076125488 1705 .long 0 1706 .long 1131937792 1707 .long 0 1708 .long 1127743488 1709 .long 1413758976 1710 .long 1069097467 1711 .long 1413742592 1712 .long 1069097467 1713 .long 1734819840 1714 .long 3174229945 1715 .long 1280049152 1716 .long 1028033571 1717 .long 923219018 1718 .long 984130272 1719 .long 57701189 1720 .long 988383790 1721 .long 0 1722 .long 2147483648 1723 .long 0 1724 .long 2147483648 1725 .long 1734816687 1726 .long 1026746297 1727 .long 0 1728 .long 0 1729 .long 0 1730 .long 1072693248 1731 .long 0 1732 .long 0 1733 .long 0 1734 .long 2146435072 1735 .long 0 1736 .long 0 1737 .long 4294705152 1738 .long 4294967295 1739 .long 0 1740 .long 0 1741 .long 0 1742 .long 1130364928 1743 .long 0 1744 .long 0 1745 .long 0 1746 .long 1015021568 1747 .long 0 1748 .long 0 1749 .long 0 1750 .long 1017118720 1751 .long 0 1752 .long 0 1753 .long 0 1754 .long 1071644672 1755 .long 0 1756 .long 1071644672 1757 .long 0 1758 .long 1076887552 1759 .long 0 1760 .long 1072693248 1761 .type static_const_table,@object 1762 .size static_const_table,5872 1763 .data 1764 .hidden __libm_tancot_huge 1765 .section .note.GNU-stack, "" 1766# End 1767