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// 1. RANGE REDUCTION 36// 37// We perform an initial range reduction from X to r with 38// 39// X =~= N * pi/32 + r 40// 41// so that |r| <= pi/64 + epsilon. We restrict inputs to those 42// where |N| <= 932560. Beyond this, the range reduction is 43// insufficiently accurate. For extremely small inputs, 44// denormalization can occur internally, impacting performance. 45// This means that the main path is actually only taken for 46// 2^-252 <= |X| < 90112. 47// 48// To avoid branches, we perform the range reduction to full 49// accuracy each time. 50// 51// X - N * (P_1 + P_2 + P_3) 52// 53// where P_1 and P_2 are 32-bit numbers (so multiplication by N 54// is exact) and P_3 is a 53-bit number. Together, these 55// approximate pi well enough for all cases in the restricted 56// range. 57// 58// The main reduction sequence is: 59// 60// y = 32/pi * x 61// N = integer(y) 62// (computed by adding and subtracting off SHIFTER) 63// 64// m_1 = N * P_1 65// m_2 = N * P_2 66// r_1 = x - m_1 67// r = r_1 - m_2 68// (this r can be used for most of the calculation) 69// 70// c_1 = r_1 - r 71// m_3 = N * P_3 72// c_2 = c_1 - m_2 73// c = c_2 - m_3 74// 75// 2. MAIN ALGORITHM 76// 77// The algorithm uses a table lookup based on B = M * pi / 32 78// where M = N mod 64. The stored values are: 79// sigma closest power of 2 to cos(B) 80// C_hl 53-bit cos(B) - sigma 81// S_hi + S_lo 2 * 53-bit sin(B) 82// 83// The computation is organized as follows: 84// 85// sin(B + r + c) = [sin(B) + sigma * r] + 86// r * (cos(B) - sigma) + 87// sin(B) * [cos(r + c) - 1] + 88// cos(B) * [sin(r + c) - r] 89// 90// which is approximately: 91// 92// [S_hi + sigma * r] + 93// C_hl * r + 94// S_lo + S_hi * [(cos(r) - 1) - r * c] + 95// (C_hl + sigma) * [(sin(r) - r) + c] 96// 97// and this is what is actually computed. We separate this sum 98// into four parts: 99// 100// hi + med + pols + corr 101// 102// where 103// 104// hi = S_hi + sigma r 105// med = C_hl * r 106// pols = S_hi * (cos(r) - 1) + (C_hl + sigma) * (sin(r) - r) 107// corr = S_lo + c * ((C_hl + sigma) - S_hi * r) 108// 109// 3. POLYNOMIAL 110// 111// The polynomial S_hi * (cos(r) - 1) + (C_hl + sigma) * 112// (sin(r) - r) can be rearranged freely, since it is quite 113// small, so we exploit parallelism to the fullest. 114// 115// psc4 = SC_4 * r_1 116// msc4 = psc4 * r 117// r2 = r * r 118// msc2 = SC_2 * r2 119// r4 = r2 * r2 120// psc3 = SC_3 + msc4 121// psc1 = SC_1 + msc2 122// msc3 = r4 * psc3 123// sincospols = psc1 + msc3 124// pols = sincospols * 125// <S_hi * r^2 | (C_hl + sigma) * r^3> 126// 127// 4. CORRECTION TERM 128// 129// This is where the "c" component of the range reduction is 130// taken into account; recall that just "r" is used for most of 131// the calculation. 132// 133// -c = m_3 - c_2 134// -d = S_hi * r - (C_hl + sigma) 135// corr = -c * -d + S_lo 136// 137// 5. COMPENSATED SUMMATIONS 138// 139// The two successive compensated summations add up the high 140// and medium parts, leaving just the low parts to add up at 141// the end. 142// 143// rs = sigma * r 144// res_int = S_hi + rs 145// k_0 = S_hi - res_int 146// k_2 = k_0 + rs 147// med = C_hl * r 148// res_hi = res_int + med 149// k_1 = res_int - res_hi 150// k_3 = k_1 + med 151// 152// 6. FINAL SUMMATION 153// 154// We now add up all the small parts: 155// 156// res_lo = pols(hi) + pols(lo) + corr + k_1 + k_3 157// 158// Now the overall result is just: 159// 160// res_hi + res_lo 161// 162// 7. SMALL ARGUMENTS 163// 164// Inputs with |X| < 2^-252 are treated specially as 165// 1 - |x|. 166// 167// Special cases: 168// cos(NaN) = quiet NaN, and raise invalid exception 169// cos(INF) = NaN and raise invalid exception 170// cos(0) = 1 171// 172/******************************************************************************/ 173 174#include <private/bionic_asm.h> 175# -- Begin static_func 176 .text 177 .align __bionic_asm_align 178 .type static_func, @function 179static_func: 180..B1.1: 181 call ..L2 182..L2: 183 popl %eax 184 lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax 185 lea static_const_table@GOTOFF(%eax), %eax 186 ret 187 .size static_func,.-static_func 188# -- End static_func 189 190# -- Begin cos 191ENTRY(cos) 192# parameter 1: 8 + %ebp 193..B2.1: 194..B2.2: 195 pushl %ebp 196 movl %esp, %ebp 197 subl $120, %esp 198 movl %ebx, 56(%esp) 199 call static_func 200 movl %eax, %ebx 201 movsd 128(%esp), %xmm0 202 pextrw $3, %xmm0, %eax 203 andl $32767, %eax 204 subl $12336, %eax 205 cmpl $4293, %eax 206 ja .L_2TAG_PACKET_0.0.2 207 movsd 2160(%ebx), %xmm1 208 mulsd %xmm0, %xmm1 209 movapd 2240(%ebx), %xmm5 210 movsd 2224(%ebx), %xmm4 211 andpd %xmm0, %xmm4 212 orps %xmm4, %xmm5 213 movsd 2128(%ebx), %xmm3 214 movapd 2112(%ebx), %xmm2 215 addpd %xmm5, %xmm1 216 cvttsd2si %xmm1, %edx 217 cvtsi2sdl %edx, %xmm1 218 mulsd %xmm1, %xmm3 219 unpcklpd %xmm1, %xmm1 220 addl $1865232, %edx 221 movapd %xmm0, %xmm4 222 andl $63, %edx 223 movapd 2096(%ebx), %xmm5 224 lea (%ebx), %eax 225 shll $5, %edx 226 addl %edx, %eax 227 mulpd %xmm1, %xmm2 228 subsd %xmm3, %xmm0 229 mulsd 2144(%ebx), %xmm1 230 subsd %xmm3, %xmm4 231 movsd 8(%eax), %xmm7 232 unpcklpd %xmm0, %xmm0 233 movapd %xmm4, %xmm3 234 subsd %xmm2, %xmm4 235 mulpd %xmm0, %xmm5 236 subpd %xmm2, %xmm0 237 movapd 2064(%ebx), %xmm6 238 mulsd %xmm4, %xmm7 239 subsd %xmm4, %xmm3 240 mulpd %xmm0, %xmm5 241 mulpd %xmm0, %xmm0 242 subsd %xmm2, %xmm3 243 movapd (%eax), %xmm2 244 subsd %xmm3, %xmm1 245 movsd 24(%eax), %xmm3 246 addsd %xmm3, %xmm2 247 subsd %xmm2, %xmm7 248 mulsd %xmm4, %xmm2 249 mulpd %xmm0, %xmm6 250 mulsd %xmm4, %xmm3 251 mulpd %xmm0, %xmm2 252 mulpd %xmm0, %xmm0 253 addpd 2080(%ebx), %xmm5 254 mulsd (%eax), %xmm4 255 addpd 2048(%ebx), %xmm6 256 mulpd %xmm0, %xmm5 257 movapd %xmm3, %xmm0 258 addsd 8(%eax), %xmm3 259 mulpd %xmm7, %xmm1 260 movapd %xmm4, %xmm7 261 addsd %xmm3, %xmm4 262 addpd %xmm5, %xmm6 263 movsd 8(%eax), %xmm5 264 subsd %xmm3, %xmm5 265 subsd %xmm4, %xmm3 266 addsd 16(%eax), %xmm1 267 mulpd %xmm2, %xmm6 268 addsd %xmm0, %xmm5 269 addsd %xmm7, %xmm3 270 addsd %xmm5, %xmm1 271 addsd %xmm3, %xmm1 272 addsd %xmm6, %xmm1 273 unpckhpd %xmm6, %xmm6 274 addsd %xmm6, %xmm1 275 addsd %xmm1, %xmm4 276 movsd %xmm4, (%esp) 277 fldl (%esp) 278 jmp .L_2TAG_PACKET_1.0.2 279.L_2TAG_PACKET_0.0.2: 280 jg .L_2TAG_PACKET_2.0.2 281 pextrw $3, %xmm0, %eax 282 andl $32767, %eax 283 pinsrw $3, %eax, %xmm0 284 movsd 2192(%ebx), %xmm1 285 subsd %xmm0, %xmm1 286 movsd %xmm1, (%esp) 287 fldl (%esp) 288 jmp .L_2TAG_PACKET_1.0.2 289.L_2TAG_PACKET_2.0.2: 290 movl 132(%esp), %eax 291 andl $2146435072, %eax 292 cmpl $2146435072, %eax 293 je .L_2TAG_PACKET_3.0.2 294 subl $32, %esp 295 movsd %xmm0, (%esp) 296 lea 40(%esp), %eax 297 movl %eax, 8(%esp) 298 movl $1, %eax 299 movl %eax, 12(%esp) 300 call __libm_sincos_huge 301 addl $32, %esp 302 fldl 8(%esp) 303 jmp .L_2TAG_PACKET_1.0.2 304.L_2TAG_PACKET_3.0.2: 305 fldl 128(%esp) 306 fmull 2208(%ebx) 307.L_2TAG_PACKET_1.0.2: 308 movl 56(%esp), %ebx 309 movl %ebp, %esp 310 popl %ebp 311 ret 312..B2.3: 313END(cos) 314# -- End cos 315 316# Start file scope ASM 317ALIAS_SYMBOL(cosl, cos); 318# End file scope ASM 319 .section .rodata, "a" 320 .align 16 321 .align 16 322static_const_table: 323 .long 0 324 .long 0 325 .long 0 326 .long 0 327 .long 0 328 .long 0 329 .long 0 330 .long 1072693248 331 .long 393047345 332 .long 3212032302 333 .long 3156849708 334 .long 1069094822 335 .long 3758096384 336 .long 3158189848 337 .long 0 338 .long 1072693248 339 .long 18115067 340 .long 3214126342 341 .long 1013556747 342 .long 1070135480 343 .long 3221225472 344 .long 3160567065 345 .long 0 346 .long 1072693248 347 .long 2476548698 348 .long 3215330282 349 .long 785751814 350 .long 1070765062 351 .long 2684354560 352 .long 3161838221 353 .long 0 354 .long 1072693248 355 .long 2255197647 356 .long 3216211105 357 .long 2796464483 358 .long 1071152610 359 .long 3758096384 360 .long 3160878317 361 .long 0 362 .long 1072693248 363 .long 1945768569 364 .long 3216915048 365 .long 939980347 366 .long 1071524701 367 .long 536870912 368 .long 1012796809 369 .long 0 370 .long 1072693248 371 .long 1539668340 372 .long 3217396327 373 .long 967731400 374 .long 1071761211 375 .long 536870912 376 .long 1015752157 377 .long 0 378 .long 1072693248 379 .long 1403757309 380 .long 3217886718 381 .long 621354454 382 .long 1071926515 383 .long 536870912 384 .long 1013450602 385 .long 0 386 .long 1072693248 387 .long 2583490354 388 .long 1070236281 389 .long 1719614413 390 .long 1072079006 391 .long 536870912 392 .long 3163282740 393 .long 0 394 .long 1071644672 395 .long 2485417816 396 .long 1069626316 397 .long 1796544321 398 .long 1072217216 399 .long 536870912 400 .long 3162686945 401 .long 0 402 .long 1071644672 403 .long 2598800519 404 .long 1068266419 405 .long 688824739 406 .long 1072339814 407 .long 3758096384 408 .long 1010431536 409 .long 0 410 .long 1071644672 411 .long 2140183630 412 .long 3214756396 413 .long 4051746225 414 .long 1072445618 415 .long 2147483648 416 .long 3161907377 417 .long 0 418 .long 1071644672 419 .long 1699043957 420 .long 3216902261 421 .long 3476196678 422 .long 1072533611 423 .long 536870912 424 .long 1014257638 425 .long 0 426 .long 1071644672 427 .long 1991047213 428 .long 1067753521 429 .long 1455828442 430 .long 1072602945 431 .long 3758096384 432 .long 1015505073 433 .long 0 434 .long 1070596096 435 .long 240740309 436 .long 3215727903 437 .long 3489094832 438 .long 1072652951 439 .long 536870912 440 .long 1014325783 441 .long 0 442 .long 1070596096 443 .long 257503056 444 .long 3214647653 445 .long 2748392742 446 .long 1072683149 447 .long 1073741824 448 .long 3163061750 449 .long 0 450 .long 1069547520 451 .long 0 452 .long 0 453 .long 0 454 .long 1072693248 455 .long 0 456 .long 0 457 .long 0 458 .long 0 459 .long 257503056 460 .long 1067164005 461 .long 2748392742 462 .long 1072683149 463 .long 1073741824 464 .long 3163061750 465 .long 0 466 .long 3217031168 467 .long 240740309 468 .long 1068244255 469 .long 3489094832 470 .long 1072652951 471 .long 536870912 472 .long 1014325783 473 .long 0 474 .long 3218079744 475 .long 1991047213 476 .long 3215237169 477 .long 1455828442 478 .long 1072602945 479 .long 3758096384 480 .long 1015505073 481 .long 0 482 .long 3218079744 483 .long 1699043957 484 .long 1069418613 485 .long 3476196678 486 .long 1072533611 487 .long 536870912 488 .long 1014257638 489 .long 0 490 .long 3219128320 491 .long 2140183630 492 .long 1067272748 493 .long 4051746225 494 .long 1072445618 495 .long 2147483648 496 .long 3161907377 497 .long 0 498 .long 3219128320 499 .long 2598800519 500 .long 3215750067 501 .long 688824739 502 .long 1072339814 503 .long 3758096384 504 .long 1010431536 505 .long 0 506 .long 3219128320 507 .long 2485417816 508 .long 3217109964 509 .long 1796544321 510 .long 1072217216 511 .long 536870912 512 .long 3162686945 513 .long 0 514 .long 3219128320 515 .long 2583490354 516 .long 3217719929 517 .long 1719614413 518 .long 1072079006 519 .long 536870912 520 .long 3163282740 521 .long 0 522 .long 3219128320 523 .long 1403757309 524 .long 1070403070 525 .long 621354454 526 .long 1071926515 527 .long 536870912 528 .long 1013450602 529 .long 0 530 .long 3220176896 531 .long 1539668340 532 .long 1069912679 533 .long 967731400 534 .long 1071761211 535 .long 536870912 536 .long 1015752157 537 .long 0 538 .long 3220176896 539 .long 1945768569 540 .long 1069431400 541 .long 939980347 542 .long 1071524701 543 .long 536870912 544 .long 1012796809 545 .long 0 546 .long 3220176896 547 .long 2255197647 548 .long 1068727457 549 .long 2796464483 550 .long 1071152610 551 .long 3758096384 552 .long 3160878317 553 .long 0 554 .long 3220176896 555 .long 2476548698 556 .long 1067846634 557 .long 785751814 558 .long 1070765062 559 .long 2684354560 560 .long 3161838221 561 .long 0 562 .long 3220176896 563 .long 18115067 564 .long 1066642694 565 .long 1013556747 566 .long 1070135480 567 .long 3221225472 568 .long 3160567065 569 .long 0 570 .long 3220176896 571 .long 393047345 572 .long 1064548654 573 .long 3156849708 574 .long 1069094822 575 .long 3758096384 576 .long 3158189848 577 .long 0 578 .long 3220176896 579 .long 0 580 .long 0 581 .long 0 582 .long 0 583 .long 0 584 .long 0 585 .long 0 586 .long 3220176896 587 .long 393047345 588 .long 1064548654 589 .long 3156849708 590 .long 3216578470 591 .long 3758096384 592 .long 1010706200 593 .long 0 594 .long 3220176896 595 .long 18115067 596 .long 1066642694 597 .long 1013556747 598 .long 3217619128 599 .long 3221225472 600 .long 1013083417 601 .long 0 602 .long 3220176896 603 .long 2476548698 604 .long 1067846634 605 .long 785751814 606 .long 3218248710 607 .long 2684354560 608 .long 1014354573 609 .long 0 610 .long 3220176896 611 .long 2255197647 612 .long 1068727457 613 .long 2796464483 614 .long 3218636258 615 .long 3758096384 616 .long 1013394669 617 .long 0 618 .long 3220176896 619 .long 1945768569 620 .long 1069431400 621 .long 939980347 622 .long 3219008349 623 .long 536870912 624 .long 3160280457 625 .long 0 626 .long 3220176896 627 .long 1539668340 628 .long 1069912679 629 .long 967731400 630 .long 3219244859 631 .long 536870912 632 .long 3163235805 633 .long 0 634 .long 3220176896 635 .long 1403757309 636 .long 1070403070 637 .long 621354454 638 .long 3219410163 639 .long 536870912 640 .long 3160934250 641 .long 0 642 .long 3220176896 643 .long 2583490354 644 .long 3217719929 645 .long 1719614413 646 .long 3219562654 647 .long 536870912 648 .long 1015799092 649 .long 0 650 .long 3219128320 651 .long 2485417816 652 .long 3217109964 653 .long 1796544321 654 .long 3219700864 655 .long 536870912 656 .long 1015203297 657 .long 0 658 .long 3219128320 659 .long 2598800519 660 .long 3215750067 661 .long 688824739 662 .long 3219823462 663 .long 3758096384 664 .long 3157915184 665 .long 0 666 .long 3219128320 667 .long 2140183630 668 .long 1067272748 669 .long 4051746225 670 .long 3219929266 671 .long 2147483648 672 .long 1014423729 673 .long 0 674 .long 3219128320 675 .long 1699043957 676 .long 1069418613 677 .long 3476196678 678 .long 3220017259 679 .long 536870912 680 .long 3161741286 681 .long 0 682 .long 3219128320 683 .long 1991047213 684 .long 3215237169 685 .long 1455828442 686 .long 3220086593 687 .long 3758096384 688 .long 3162988721 689 .long 0 690 .long 3218079744 691 .long 240740309 692 .long 1068244255 693 .long 3489094832 694 .long 3220136599 695 .long 536870912 696 .long 3161809431 697 .long 0 698 .long 3218079744 699 .long 257503056 700 .long 1067164005 701 .long 2748392742 702 .long 3220166797 703 .long 1073741824 704 .long 1015578102 705 .long 0 706 .long 3217031168 707 .long 0 708 .long 0 709 .long 0 710 .long 3220176896 711 .long 0 712 .long 0 713 .long 0 714 .long 0 715 .long 257503056 716 .long 3214647653 717 .long 2748392742 718 .long 3220166797 719 .long 1073741824 720 .long 1015578102 721 .long 0 722 .long 1069547520 723 .long 240740309 724 .long 3215727903 725 .long 3489094832 726 .long 3220136599 727 .long 536870912 728 .long 3161809431 729 .long 0 730 .long 1070596096 731 .long 1991047213 732 .long 1067753521 733 .long 1455828442 734 .long 3220086593 735 .long 3758096384 736 .long 3162988721 737 .long 0 738 .long 1070596096 739 .long 1699043957 740 .long 3216902261 741 .long 3476196678 742 .long 3220017259 743 .long 536870912 744 .long 3161741286 745 .long 0 746 .long 1071644672 747 .long 2140183630 748 .long 3214756396 749 .long 4051746225 750 .long 3219929266 751 .long 2147483648 752 .long 1014423729 753 .long 0 754 .long 1071644672 755 .long 2598800519 756 .long 1068266419 757 .long 688824739 758 .long 3219823462 759 .long 3758096384 760 .long 3157915184 761 .long 0 762 .long 1071644672 763 .long 2485417816 764 .long 1069626316 765 .long 1796544321 766 .long 3219700864 767 .long 536870912 768 .long 1015203297 769 .long 0 770 .long 1071644672 771 .long 2583490354 772 .long 1070236281 773 .long 1719614413 774 .long 3219562654 775 .long 536870912 776 .long 1015799092 777 .long 0 778 .long 1071644672 779 .long 1403757309 780 .long 3217886718 781 .long 621354454 782 .long 3219410163 783 .long 536870912 784 .long 3160934250 785 .long 0 786 .long 1072693248 787 .long 1539668340 788 .long 3217396327 789 .long 967731400 790 .long 3219244859 791 .long 536870912 792 .long 3163235805 793 .long 0 794 .long 1072693248 795 .long 1945768569 796 .long 3216915048 797 .long 939980347 798 .long 3219008349 799 .long 536870912 800 .long 3160280457 801 .long 0 802 .long 1072693248 803 .long 2255197647 804 .long 3216211105 805 .long 2796464483 806 .long 3218636258 807 .long 3758096384 808 .long 1013394669 809 .long 0 810 .long 1072693248 811 .long 2476548698 812 .long 3215330282 813 .long 785751814 814 .long 3218248710 815 .long 2684354560 816 .long 1014354573 817 .long 0 818 .long 1072693248 819 .long 18115067 820 .long 3214126342 821 .long 1013556747 822 .long 3217619128 823 .long 3221225472 824 .long 1013083417 825 .long 0 826 .long 1072693248 827 .long 393047345 828 .long 3212032302 829 .long 3156849708 830 .long 3216578470 831 .long 3758096384 832 .long 1010706200 833 .long 0 834 .long 1072693248 835 .long 1431655765 836 .long 3217380693 837 .long 0 838 .long 3219128320 839 .long 286331153 840 .long 1065423121 841 .long 1431655765 842 .long 1067799893 843 .long 436314138 844 .long 3207201184 845 .long 381774871 846 .long 3210133868 847 .long 2773927732 848 .long 1053236707 849 .long 436314138 850 .long 1056571808 851 .long 442499072 852 .long 1032893537 853 .long 442499072 854 .long 1032893537 855 .long 1413480448 856 .long 1069097467 857 .long 0 858 .long 0 859 .long 771977331 860 .long 996350346 861 .long 0 862 .long 0 863 .long 1841940611 864 .long 1076125488 865 .long 0 866 .long 0 867 .long 0 868 .long 1127743488 869 .long 0 870 .long 0 871 .long 0 872 .long 1072693248 873 .long 0 874 .long 0 875 .long 0 876 .long 2147483648 877 .long 0 878 .long 0 879 .long 0 880 .long 2147483648 881 .long 0 882 .long 0 883 .long 0 884 .long 1071644672 885 .long 0 886 .long 1071644672 887 .type static_const_table,@object 888 .size static_const_table,2256 889 .data 890 .hidden __libm_sincos_huge 891 .section .note.GNU-stack, "" 892# End 893