Home | History | Annotate | Download | only in x86
      1 /*
      2 Copyright (c) 2014, Intel Corporation
      3 All rights reserved.
      4 
      5 Redistribution and use in source and binary forms, with or without
      6 modification, 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 
     19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
     20 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     21 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     22 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
     23 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     24 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     25 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
     26 ANY 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
     28 SOFTWARE, 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
    179 static_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
    191 ENTRY(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:
    313 END(cos)
    314 # -- End  cos
    315 
    316 # Start file scope ASM
    317 ALIAS_SYMBOL(cosl, cos);
    318 # End file scope ASM
    319 	.section .rodata, "a"
    320 	.align 16
    321 	.align 16
    322 static_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