| Jingwei Zhang | 5d4f0e6 | 2014-10-31 18:29:18 +0800 | [diff] [blame] | 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 | //     If |x| < SNN (SNN meaning the smallest normal number), we | 
|  | 165 | //     simply perform 0.1111111 cdots 1111 * x. For SNN <= |x|, we | 
|  | 166 | //     do 2^-55 * (2^55 * x - x). | 
|  | 167 | // | 
|  | 168 | // Special cases: | 
|  | 169 | //  sin(NaN) = quiet NaN, and raise invalid exception | 
|  | 170 | //  sin(INF) = NaN and raise invalid exception | 
|  | 171 | //  sin(+/-0) = +/-0 | 
|  | 172 | // | 
|  | 173 | /******************************************************************************/ | 
|  | 174 |  | 
|  | 175 | #include <private/bionic_asm.h> | 
|  | 176 | # -- Begin  static_func | 
|  | 177 | .text | 
|  | 178 | .align __bionic_asm_align | 
|  | 179 | .type static_func, @function | 
|  | 180 | static_func: | 
|  | 181 | ..B1.1: | 
|  | 182 | call      ..L2 | 
|  | 183 | ..L2: | 
|  | 184 | popl      %eax | 
|  | 185 | lea       _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax | 
|  | 186 | lea       static_const_table@GOTOFF(%eax), %eax | 
|  | 187 | ret | 
|  | 188 | .size   static_func,.-static_func | 
|  | 189 | # -- End  static_func | 
|  | 190 |  | 
|  | 191 | # -- Begin  sin | 
|  | 192 | ENTRY(sin) | 
|  | 193 | # parameter 1: 8 + %ebp | 
|  | 194 | ..B2.1: | 
|  | 195 | ..B2.2: | 
|  | 196 | pushl     %ebp | 
|  | 197 | movl      %esp, %ebp | 
|  | 198 | subl      $120, %esp | 
|  | 199 | movl      %ebx, 56(%esp) | 
|  | 200 | call      static_func | 
|  | 201 | movl      %eax, %ebx | 
|  | 202 | movsd     128(%esp), %xmm0 | 
|  | 203 | pextrw    $3, %xmm0, %eax | 
|  | 204 | andl      $32767, %eax | 
|  | 205 | subl      $12336, %eax | 
|  | 206 | cmpl      $4293, %eax | 
|  | 207 | ja        .L_2TAG_PACKET_0.0.2 | 
|  | 208 | movsd     2160(%ebx), %xmm1 | 
|  | 209 | mulsd     %xmm0, %xmm1 | 
|  | 210 | movsd     2272(%ebx), %xmm5 | 
|  | 211 | movapd    2256(%ebx), %xmm4 | 
|  | 212 | andpd     %xmm0, %xmm4 | 
|  | 213 | orps      %xmm4, %xmm5 | 
|  | 214 | movsd     2128(%ebx), %xmm3 | 
|  | 215 | movapd    2112(%ebx), %xmm2 | 
|  | 216 | addpd     %xmm5, %xmm1 | 
|  | 217 | cvttsd2si %xmm1, %edx | 
|  | 218 | cvtsi2sdl %edx, %xmm1 | 
|  | 219 | mulsd     %xmm1, %xmm3 | 
|  | 220 | unpcklpd  %xmm1, %xmm1 | 
|  | 221 | addl      $1865216, %edx | 
|  | 222 | movapd    %xmm0, %xmm4 | 
|  | 223 | andl      $63, %edx | 
|  | 224 | movapd    2096(%ebx), %xmm5 | 
|  | 225 | lea       (%ebx), %eax | 
|  | 226 | shll      $5, %edx | 
|  | 227 | addl      %edx, %eax | 
|  | 228 | mulpd     %xmm1, %xmm2 | 
|  | 229 | subsd     %xmm3, %xmm0 | 
|  | 230 | mulsd     2144(%ebx), %xmm1 | 
|  | 231 | subsd     %xmm3, %xmm4 | 
|  | 232 | movsd     8(%eax), %xmm7 | 
|  | 233 | unpcklpd  %xmm0, %xmm0 | 
|  | 234 | movapd    %xmm4, %xmm3 | 
|  | 235 | subsd     %xmm2, %xmm4 | 
|  | 236 | mulpd     %xmm0, %xmm5 | 
|  | 237 | subpd     %xmm2, %xmm0 | 
|  | 238 | movapd    2064(%ebx), %xmm6 | 
|  | 239 | mulsd     %xmm4, %xmm7 | 
|  | 240 | subsd     %xmm4, %xmm3 | 
|  | 241 | mulpd     %xmm0, %xmm5 | 
|  | 242 | mulpd     %xmm0, %xmm0 | 
|  | 243 | subsd     %xmm2, %xmm3 | 
|  | 244 | movapd    (%eax), %xmm2 | 
|  | 245 | subsd     %xmm3, %xmm1 | 
|  | 246 | movsd     24(%eax), %xmm3 | 
|  | 247 | addsd     %xmm3, %xmm2 | 
|  | 248 | subsd     %xmm2, %xmm7 | 
|  | 249 | mulsd     %xmm4, %xmm2 | 
|  | 250 | mulpd     %xmm0, %xmm6 | 
|  | 251 | mulsd     %xmm4, %xmm3 | 
|  | 252 | mulpd     %xmm0, %xmm2 | 
|  | 253 | mulpd     %xmm0, %xmm0 | 
|  | 254 | addpd     2080(%ebx), %xmm5 | 
|  | 255 | mulsd     (%eax), %xmm4 | 
|  | 256 | addpd     2048(%ebx), %xmm6 | 
|  | 257 | mulpd     %xmm0, %xmm5 | 
|  | 258 | movapd    %xmm3, %xmm0 | 
|  | 259 | addsd     8(%eax), %xmm3 | 
|  | 260 | mulpd     %xmm7, %xmm1 | 
|  | 261 | movapd    %xmm4, %xmm7 | 
|  | 262 | addsd     %xmm3, %xmm4 | 
|  | 263 | addpd     %xmm5, %xmm6 | 
|  | 264 | movsd     8(%eax), %xmm5 | 
|  | 265 | subsd     %xmm3, %xmm5 | 
|  | 266 | subsd     %xmm4, %xmm3 | 
|  | 267 | addsd     16(%eax), %xmm1 | 
|  | 268 | mulpd     %xmm2, %xmm6 | 
|  | 269 | addsd     %xmm0, %xmm5 | 
|  | 270 | addsd     %xmm7, %xmm3 | 
|  | 271 | addsd     %xmm5, %xmm1 | 
|  | 272 | addsd     %xmm3, %xmm1 | 
|  | 273 | addsd     %xmm6, %xmm1 | 
|  | 274 | unpckhpd  %xmm6, %xmm6 | 
|  | 275 | addsd     %xmm6, %xmm1 | 
|  | 276 | addsd     %xmm1, %xmm4 | 
|  | 277 | movsd     %xmm4, (%esp) | 
|  | 278 | fldl      (%esp) | 
|  | 279 | jmp       .L_2TAG_PACKET_1.0.2 | 
|  | 280 | .L_2TAG_PACKET_0.0.2: | 
|  | 281 | jg        .L_2TAG_PACKET_2.0.2 | 
|  | 282 | shrl      $4, %eax | 
|  | 283 | cmpl      $268434685, %eax | 
|  | 284 | jne       .L_2TAG_PACKET_3.0.2 | 
|  | 285 | movsd     %xmm0, (%esp) | 
|  | 286 | fldl      (%esp) | 
|  | 287 | jmp       .L_2TAG_PACKET_1.0.2 | 
|  | 288 | .L_2TAG_PACKET_3.0.2: | 
|  | 289 | movsd     2192(%ebx), %xmm3 | 
|  | 290 | mulsd     %xmm0, %xmm3 | 
|  | 291 | subsd     %xmm0, %xmm3 | 
|  | 292 | mulsd     2208(%ebx), %xmm3 | 
|  | 293 | movsd     %xmm0, (%esp) | 
|  | 294 | fldl      (%esp) | 
|  | 295 | jmp       .L_2TAG_PACKET_1.0.2 | 
|  | 296 | .L_2TAG_PACKET_2.0.2: | 
|  | 297 | movl      132(%esp), %eax | 
|  | 298 | andl      $2146435072, %eax | 
|  | 299 | cmpl      $2146435072, %eax | 
|  | 300 | je        .L_2TAG_PACKET_4.0.2 | 
|  | 301 | subl      $32, %esp | 
|  | 302 | movsd     %xmm0, (%esp) | 
|  | 303 | lea       40(%esp), %eax | 
|  | 304 | movl      %eax, 8(%esp) | 
|  | 305 | movl      $2, %eax | 
|  | 306 | movl      %eax, 12(%esp) | 
|  | 307 | call      __libm_sincos_huge | 
|  | 308 | addl      $32, %esp | 
|  | 309 | fldl      16(%esp) | 
|  | 310 | jmp       .L_2TAG_PACKET_1.0.2 | 
|  | 311 | .L_2TAG_PACKET_4.0.2: | 
|  | 312 | fldl      128(%esp) | 
|  | 313 | fmull     2240(%ebx) | 
|  | 314 | .L_2TAG_PACKET_1.0.2: | 
|  | 315 | movl      56(%esp), %ebx | 
|  | 316 | movl      %ebp, %esp | 
|  | 317 | popl      %ebp | 
|  | 318 | ret | 
|  | 319 | ..B2.3: | 
|  | 320 | END(sin) | 
|  | 321 | # -- End  sin | 
|  | 322 |  | 
|  | 323 | # Start file scope ASM | 
| Christopher Ferris | 995b813 | 2015-03-13 17:43:52 -0700 | [diff] [blame] | 324 | ALIAS_SYMBOL(sinl, sin); | 
| Jingwei Zhang | 5d4f0e6 | 2014-10-31 18:29:18 +0800 | [diff] [blame] | 325 | # End file scope ASM | 
|  | 326 | .section .rodata, "a" | 
|  | 327 | .align 16 | 
|  | 328 | .align 16 | 
|  | 329 | static_const_table: | 
|  | 330 | .long	0 | 
|  | 331 | .long	0 | 
|  | 332 | .long	0 | 
|  | 333 | .long	0 | 
|  | 334 | .long	0 | 
|  | 335 | .long	0 | 
|  | 336 | .long	0 | 
|  | 337 | .long	1072693248 | 
|  | 338 | .long	393047345 | 
|  | 339 | .long	3212032302 | 
|  | 340 | .long	3156849708 | 
|  | 341 | .long	1069094822 | 
|  | 342 | .long	3758096384 | 
|  | 343 | .long	3158189848 | 
|  | 344 | .long	0 | 
|  | 345 | .long	1072693248 | 
|  | 346 | .long	18115067 | 
|  | 347 | .long	3214126342 | 
|  | 348 | .long	1013556747 | 
|  | 349 | .long	1070135480 | 
|  | 350 | .long	3221225472 | 
|  | 351 | .long	3160567065 | 
|  | 352 | .long	0 | 
|  | 353 | .long	1072693248 | 
|  | 354 | .long	2476548698 | 
|  | 355 | .long	3215330282 | 
|  | 356 | .long	785751814 | 
|  | 357 | .long	1070765062 | 
|  | 358 | .long	2684354560 | 
|  | 359 | .long	3161838221 | 
|  | 360 | .long	0 | 
|  | 361 | .long	1072693248 | 
|  | 362 | .long	2255197647 | 
|  | 363 | .long	3216211105 | 
|  | 364 | .long	2796464483 | 
|  | 365 | .long	1071152610 | 
|  | 366 | .long	3758096384 | 
|  | 367 | .long	3160878317 | 
|  | 368 | .long	0 | 
|  | 369 | .long	1072693248 | 
|  | 370 | .long	1945768569 | 
|  | 371 | .long	3216915048 | 
|  | 372 | .long	939980347 | 
|  | 373 | .long	1071524701 | 
|  | 374 | .long	536870912 | 
|  | 375 | .long	1012796809 | 
|  | 376 | .long	0 | 
|  | 377 | .long	1072693248 | 
|  | 378 | .long	1539668340 | 
|  | 379 | .long	3217396327 | 
|  | 380 | .long	967731400 | 
|  | 381 | .long	1071761211 | 
|  | 382 | .long	536870912 | 
|  | 383 | .long	1015752157 | 
|  | 384 | .long	0 | 
|  | 385 | .long	1072693248 | 
|  | 386 | .long	1403757309 | 
|  | 387 | .long	3217886718 | 
|  | 388 | .long	621354454 | 
|  | 389 | .long	1071926515 | 
|  | 390 | .long	536870912 | 
|  | 391 | .long	1013450602 | 
|  | 392 | .long	0 | 
|  | 393 | .long	1072693248 | 
|  | 394 | .long	2583490354 | 
|  | 395 | .long	1070236281 | 
|  | 396 | .long	1719614413 | 
|  | 397 | .long	1072079006 | 
|  | 398 | .long	536870912 | 
|  | 399 | .long	3163282740 | 
|  | 400 | .long	0 | 
|  | 401 | .long	1071644672 | 
|  | 402 | .long	2485417816 | 
|  | 403 | .long	1069626316 | 
|  | 404 | .long	1796544321 | 
|  | 405 | .long	1072217216 | 
|  | 406 | .long	536870912 | 
|  | 407 | .long	3162686945 | 
|  | 408 | .long	0 | 
|  | 409 | .long	1071644672 | 
|  | 410 | .long	2598800519 | 
|  | 411 | .long	1068266419 | 
|  | 412 | .long	688824739 | 
|  | 413 | .long	1072339814 | 
|  | 414 | .long	3758096384 | 
|  | 415 | .long	1010431536 | 
|  | 416 | .long	0 | 
|  | 417 | .long	1071644672 | 
|  | 418 | .long	2140183630 | 
|  | 419 | .long	3214756396 | 
|  | 420 | .long	4051746225 | 
|  | 421 | .long	1072445618 | 
|  | 422 | .long	2147483648 | 
|  | 423 | .long	3161907377 | 
|  | 424 | .long	0 | 
|  | 425 | .long	1071644672 | 
|  | 426 | .long	1699043957 | 
|  | 427 | .long	3216902261 | 
|  | 428 | .long	3476196678 | 
|  | 429 | .long	1072533611 | 
|  | 430 | .long	536870912 | 
|  | 431 | .long	1014257638 | 
|  | 432 | .long	0 | 
|  | 433 | .long	1071644672 | 
|  | 434 | .long	1991047213 | 
|  | 435 | .long	1067753521 | 
|  | 436 | .long	1455828442 | 
|  | 437 | .long	1072602945 | 
|  | 438 | .long	3758096384 | 
|  | 439 | .long	1015505073 | 
|  | 440 | .long	0 | 
|  | 441 | .long	1070596096 | 
|  | 442 | .long	240740309 | 
|  | 443 | .long	3215727903 | 
|  | 444 | .long	3489094832 | 
|  | 445 | .long	1072652951 | 
|  | 446 | .long	536870912 | 
|  | 447 | .long	1014325783 | 
|  | 448 | .long	0 | 
|  | 449 | .long	1070596096 | 
|  | 450 | .long	257503056 | 
|  | 451 | .long	3214647653 | 
|  | 452 | .long	2748392742 | 
|  | 453 | .long	1072683149 | 
|  | 454 | .long	1073741824 | 
|  | 455 | .long	3163061750 | 
|  | 456 | .long	0 | 
|  | 457 | .long	1069547520 | 
|  | 458 | .long	0 | 
|  | 459 | .long	0 | 
|  | 460 | .long	0 | 
|  | 461 | .long	1072693248 | 
|  | 462 | .long	0 | 
|  | 463 | .long	0 | 
|  | 464 | .long	0 | 
|  | 465 | .long	0 | 
|  | 466 | .long	257503056 | 
|  | 467 | .long	1067164005 | 
|  | 468 | .long	2748392742 | 
|  | 469 | .long	1072683149 | 
|  | 470 | .long	1073741824 | 
|  | 471 | .long	3163061750 | 
|  | 472 | .long	0 | 
|  | 473 | .long	3217031168 | 
|  | 474 | .long	240740309 | 
|  | 475 | .long	1068244255 | 
|  | 476 | .long	3489094832 | 
|  | 477 | .long	1072652951 | 
|  | 478 | .long	536870912 | 
|  | 479 | .long	1014325783 | 
|  | 480 | .long	0 | 
|  | 481 | .long	3218079744 | 
|  | 482 | .long	1991047213 | 
|  | 483 | .long	3215237169 | 
|  | 484 | .long	1455828442 | 
|  | 485 | .long	1072602945 | 
|  | 486 | .long	3758096384 | 
|  | 487 | .long	1015505073 | 
|  | 488 | .long	0 | 
|  | 489 | .long	3218079744 | 
|  | 490 | .long	1699043957 | 
|  | 491 | .long	1069418613 | 
|  | 492 | .long	3476196678 | 
|  | 493 | .long	1072533611 | 
|  | 494 | .long	536870912 | 
|  | 495 | .long	1014257638 | 
|  | 496 | .long	0 | 
|  | 497 | .long	3219128320 | 
|  | 498 | .long	2140183630 | 
|  | 499 | .long	1067272748 | 
|  | 500 | .long	4051746225 | 
|  | 501 | .long	1072445618 | 
|  | 502 | .long	2147483648 | 
|  | 503 | .long	3161907377 | 
|  | 504 | .long	0 | 
|  | 505 | .long	3219128320 | 
|  | 506 | .long	2598800519 | 
|  | 507 | .long	3215750067 | 
|  | 508 | .long	688824739 | 
|  | 509 | .long	1072339814 | 
|  | 510 | .long	3758096384 | 
|  | 511 | .long	1010431536 | 
|  | 512 | .long	0 | 
|  | 513 | .long	3219128320 | 
|  | 514 | .long	2485417816 | 
|  | 515 | .long	3217109964 | 
|  | 516 | .long	1796544321 | 
|  | 517 | .long	1072217216 | 
|  | 518 | .long	536870912 | 
|  | 519 | .long	3162686945 | 
|  | 520 | .long	0 | 
|  | 521 | .long	3219128320 | 
|  | 522 | .long	2583490354 | 
|  | 523 | .long	3217719929 | 
|  | 524 | .long	1719614413 | 
|  | 525 | .long	1072079006 | 
|  | 526 | .long	536870912 | 
|  | 527 | .long	3163282740 | 
|  | 528 | .long	0 | 
|  | 529 | .long	3219128320 | 
|  | 530 | .long	1403757309 | 
|  | 531 | .long	1070403070 | 
|  | 532 | .long	621354454 | 
|  | 533 | .long	1071926515 | 
|  | 534 | .long	536870912 | 
|  | 535 | .long	1013450602 | 
|  | 536 | .long	0 | 
|  | 537 | .long	3220176896 | 
|  | 538 | .long	1539668340 | 
|  | 539 | .long	1069912679 | 
|  | 540 | .long	967731400 | 
|  | 541 | .long	1071761211 | 
|  | 542 | .long	536870912 | 
|  | 543 | .long	1015752157 | 
|  | 544 | .long	0 | 
|  | 545 | .long	3220176896 | 
|  | 546 | .long	1945768569 | 
|  | 547 | .long	1069431400 | 
|  | 548 | .long	939980347 | 
|  | 549 | .long	1071524701 | 
|  | 550 | .long	536870912 | 
|  | 551 | .long	1012796809 | 
|  | 552 | .long	0 | 
|  | 553 | .long	3220176896 | 
|  | 554 | .long	2255197647 | 
|  | 555 | .long	1068727457 | 
|  | 556 | .long	2796464483 | 
|  | 557 | .long	1071152610 | 
|  | 558 | .long	3758096384 | 
|  | 559 | .long	3160878317 | 
|  | 560 | .long	0 | 
|  | 561 | .long	3220176896 | 
|  | 562 | .long	2476548698 | 
|  | 563 | .long	1067846634 | 
|  | 564 | .long	785751814 | 
|  | 565 | .long	1070765062 | 
|  | 566 | .long	2684354560 | 
|  | 567 | .long	3161838221 | 
|  | 568 | .long	0 | 
|  | 569 | .long	3220176896 | 
|  | 570 | .long	18115067 | 
|  | 571 | .long	1066642694 | 
|  | 572 | .long	1013556747 | 
|  | 573 | .long	1070135480 | 
|  | 574 | .long	3221225472 | 
|  | 575 | .long	3160567065 | 
|  | 576 | .long	0 | 
|  | 577 | .long	3220176896 | 
|  | 578 | .long	393047345 | 
|  | 579 | .long	1064548654 | 
|  | 580 | .long	3156849708 | 
|  | 581 | .long	1069094822 | 
|  | 582 | .long	3758096384 | 
|  | 583 | .long	3158189848 | 
|  | 584 | .long	0 | 
|  | 585 | .long	3220176896 | 
|  | 586 | .long	0 | 
|  | 587 | .long	0 | 
|  | 588 | .long	0 | 
|  | 589 | .long	0 | 
|  | 590 | .long	0 | 
|  | 591 | .long	0 | 
|  | 592 | .long	0 | 
|  | 593 | .long	3220176896 | 
|  | 594 | .long	393047345 | 
|  | 595 | .long	1064548654 | 
|  | 596 | .long	3156849708 | 
|  | 597 | .long	3216578470 | 
|  | 598 | .long	3758096384 | 
|  | 599 | .long	1010706200 | 
|  | 600 | .long	0 | 
|  | 601 | .long	3220176896 | 
|  | 602 | .long	18115067 | 
|  | 603 | .long	1066642694 | 
|  | 604 | .long	1013556747 | 
|  | 605 | .long	3217619128 | 
|  | 606 | .long	3221225472 | 
|  | 607 | .long	1013083417 | 
|  | 608 | .long	0 | 
|  | 609 | .long	3220176896 | 
|  | 610 | .long	2476548698 | 
|  | 611 | .long	1067846634 | 
|  | 612 | .long	785751814 | 
|  | 613 | .long	3218248710 | 
|  | 614 | .long	2684354560 | 
|  | 615 | .long	1014354573 | 
|  | 616 | .long	0 | 
|  | 617 | .long	3220176896 | 
|  | 618 | .long	2255197647 | 
|  | 619 | .long	1068727457 | 
|  | 620 | .long	2796464483 | 
|  | 621 | .long	3218636258 | 
|  | 622 | .long	3758096384 | 
|  | 623 | .long	1013394669 | 
|  | 624 | .long	0 | 
|  | 625 | .long	3220176896 | 
|  | 626 | .long	1945768569 | 
|  | 627 | .long	1069431400 | 
|  | 628 | .long	939980347 | 
|  | 629 | .long	3219008349 | 
|  | 630 | .long	536870912 | 
|  | 631 | .long	3160280457 | 
|  | 632 | .long	0 | 
|  | 633 | .long	3220176896 | 
|  | 634 | .long	1539668340 | 
|  | 635 | .long	1069912679 | 
|  | 636 | .long	967731400 | 
|  | 637 | .long	3219244859 | 
|  | 638 | .long	536870912 | 
|  | 639 | .long	3163235805 | 
|  | 640 | .long	0 | 
|  | 641 | .long	3220176896 | 
|  | 642 | .long	1403757309 | 
|  | 643 | .long	1070403070 | 
|  | 644 | .long	621354454 | 
|  | 645 | .long	3219410163 | 
|  | 646 | .long	536870912 | 
|  | 647 | .long	3160934250 | 
|  | 648 | .long	0 | 
|  | 649 | .long	3220176896 | 
|  | 650 | .long	2583490354 | 
|  | 651 | .long	3217719929 | 
|  | 652 | .long	1719614413 | 
|  | 653 | .long	3219562654 | 
|  | 654 | .long	536870912 | 
|  | 655 | .long	1015799092 | 
|  | 656 | .long	0 | 
|  | 657 | .long	3219128320 | 
|  | 658 | .long	2485417816 | 
|  | 659 | .long	3217109964 | 
|  | 660 | .long	1796544321 | 
|  | 661 | .long	3219700864 | 
|  | 662 | .long	536870912 | 
|  | 663 | .long	1015203297 | 
|  | 664 | .long	0 | 
|  | 665 | .long	3219128320 | 
|  | 666 | .long	2598800519 | 
|  | 667 | .long	3215750067 | 
|  | 668 | .long	688824739 | 
|  | 669 | .long	3219823462 | 
|  | 670 | .long	3758096384 | 
|  | 671 | .long	3157915184 | 
|  | 672 | .long	0 | 
|  | 673 | .long	3219128320 | 
|  | 674 | .long	2140183630 | 
|  | 675 | .long	1067272748 | 
|  | 676 | .long	4051746225 | 
|  | 677 | .long	3219929266 | 
|  | 678 | .long	2147483648 | 
|  | 679 | .long	1014423729 | 
|  | 680 | .long	0 | 
|  | 681 | .long	3219128320 | 
|  | 682 | .long	1699043957 | 
|  | 683 | .long	1069418613 | 
|  | 684 | .long	3476196678 | 
|  | 685 | .long	3220017259 | 
|  | 686 | .long	536870912 | 
|  | 687 | .long	3161741286 | 
|  | 688 | .long	0 | 
|  | 689 | .long	3219128320 | 
|  | 690 | .long	1991047213 | 
|  | 691 | .long	3215237169 | 
|  | 692 | .long	1455828442 | 
|  | 693 | .long	3220086593 | 
|  | 694 | .long	3758096384 | 
|  | 695 | .long	3162988721 | 
|  | 696 | .long	0 | 
|  | 697 | .long	3218079744 | 
|  | 698 | .long	240740309 | 
|  | 699 | .long	1068244255 | 
|  | 700 | .long	3489094832 | 
|  | 701 | .long	3220136599 | 
|  | 702 | .long	536870912 | 
|  | 703 | .long	3161809431 | 
|  | 704 | .long	0 | 
|  | 705 | .long	3218079744 | 
|  | 706 | .long	257503056 | 
|  | 707 | .long	1067164005 | 
|  | 708 | .long	2748392742 | 
|  | 709 | .long	3220166797 | 
|  | 710 | .long	1073741824 | 
|  | 711 | .long	1015578102 | 
|  | 712 | .long	0 | 
|  | 713 | .long	3217031168 | 
|  | 714 | .long	0 | 
|  | 715 | .long	0 | 
|  | 716 | .long	0 | 
|  | 717 | .long	3220176896 | 
|  | 718 | .long	0 | 
|  | 719 | .long	0 | 
|  | 720 | .long	0 | 
|  | 721 | .long	0 | 
|  | 722 | .long	257503056 | 
|  | 723 | .long	3214647653 | 
|  | 724 | .long	2748392742 | 
|  | 725 | .long	3220166797 | 
|  | 726 | .long	1073741824 | 
|  | 727 | .long	1015578102 | 
|  | 728 | .long	0 | 
|  | 729 | .long	1069547520 | 
|  | 730 | .long	240740309 | 
|  | 731 | .long	3215727903 | 
|  | 732 | .long	3489094832 | 
|  | 733 | .long	3220136599 | 
|  | 734 | .long	536870912 | 
|  | 735 | .long	3161809431 | 
|  | 736 | .long	0 | 
|  | 737 | .long	1070596096 | 
|  | 738 | .long	1991047213 | 
|  | 739 | .long	1067753521 | 
|  | 740 | .long	1455828442 | 
|  | 741 | .long	3220086593 | 
|  | 742 | .long	3758096384 | 
|  | 743 | .long	3162988721 | 
|  | 744 | .long	0 | 
|  | 745 | .long	1070596096 | 
|  | 746 | .long	1699043957 | 
|  | 747 | .long	3216902261 | 
|  | 748 | .long	3476196678 | 
|  | 749 | .long	3220017259 | 
|  | 750 | .long	536870912 | 
|  | 751 | .long	3161741286 | 
|  | 752 | .long	0 | 
|  | 753 | .long	1071644672 | 
|  | 754 | .long	2140183630 | 
|  | 755 | .long	3214756396 | 
|  | 756 | .long	4051746225 | 
|  | 757 | .long	3219929266 | 
|  | 758 | .long	2147483648 | 
|  | 759 | .long	1014423729 | 
|  | 760 | .long	0 | 
|  | 761 | .long	1071644672 | 
|  | 762 | .long	2598800519 | 
|  | 763 | .long	1068266419 | 
|  | 764 | .long	688824739 | 
|  | 765 | .long	3219823462 | 
|  | 766 | .long	3758096384 | 
|  | 767 | .long	3157915184 | 
|  | 768 | .long	0 | 
|  | 769 | .long	1071644672 | 
|  | 770 | .long	2485417816 | 
|  | 771 | .long	1069626316 | 
|  | 772 | .long	1796544321 | 
|  | 773 | .long	3219700864 | 
|  | 774 | .long	536870912 | 
|  | 775 | .long	1015203297 | 
|  | 776 | .long	0 | 
|  | 777 | .long	1071644672 | 
|  | 778 | .long	2583490354 | 
|  | 779 | .long	1070236281 | 
|  | 780 | .long	1719614413 | 
|  | 781 | .long	3219562654 | 
|  | 782 | .long	536870912 | 
|  | 783 | .long	1015799092 | 
|  | 784 | .long	0 | 
|  | 785 | .long	1071644672 | 
|  | 786 | .long	1403757309 | 
|  | 787 | .long	3217886718 | 
|  | 788 | .long	621354454 | 
|  | 789 | .long	3219410163 | 
|  | 790 | .long	536870912 | 
|  | 791 | .long	3160934250 | 
|  | 792 | .long	0 | 
|  | 793 | .long	1072693248 | 
|  | 794 | .long	1539668340 | 
|  | 795 | .long	3217396327 | 
|  | 796 | .long	967731400 | 
|  | 797 | .long	3219244859 | 
|  | 798 | .long	536870912 | 
|  | 799 | .long	3163235805 | 
|  | 800 | .long	0 | 
|  | 801 | .long	1072693248 | 
|  | 802 | .long	1945768569 | 
|  | 803 | .long	3216915048 | 
|  | 804 | .long	939980347 | 
|  | 805 | .long	3219008349 | 
|  | 806 | .long	536870912 | 
|  | 807 | .long	3160280457 | 
|  | 808 | .long	0 | 
|  | 809 | .long	1072693248 | 
|  | 810 | .long	2255197647 | 
|  | 811 | .long	3216211105 | 
|  | 812 | .long	2796464483 | 
|  | 813 | .long	3218636258 | 
|  | 814 | .long	3758096384 | 
|  | 815 | .long	1013394669 | 
|  | 816 | .long	0 | 
|  | 817 | .long	1072693248 | 
|  | 818 | .long	2476548698 | 
|  | 819 | .long	3215330282 | 
|  | 820 | .long	785751814 | 
|  | 821 | .long	3218248710 | 
|  | 822 | .long	2684354560 | 
|  | 823 | .long	1014354573 | 
|  | 824 | .long	0 | 
|  | 825 | .long	1072693248 | 
|  | 826 | .long	18115067 | 
|  | 827 | .long	3214126342 | 
|  | 828 | .long	1013556747 | 
|  | 829 | .long	3217619128 | 
|  | 830 | .long	3221225472 | 
|  | 831 | .long	1013083417 | 
|  | 832 | .long	0 | 
|  | 833 | .long	1072693248 | 
|  | 834 | .long	393047345 | 
|  | 835 | .long	3212032302 | 
|  | 836 | .long	3156849708 | 
|  | 837 | .long	3216578470 | 
|  | 838 | .long	3758096384 | 
|  | 839 | .long	1010706200 | 
|  | 840 | .long	0 | 
|  | 841 | .long	1072693248 | 
|  | 842 | .long	1431655765 | 
|  | 843 | .long	3217380693 | 
|  | 844 | .long	0 | 
|  | 845 | .long	3219128320 | 
|  | 846 | .long	286331153 | 
|  | 847 | .long	1065423121 | 
|  | 848 | .long	1431655765 | 
|  | 849 | .long	1067799893 | 
|  | 850 | .long	436314138 | 
|  | 851 | .long	3207201184 | 
|  | 852 | .long	381774871 | 
|  | 853 | .long	3210133868 | 
|  | 854 | .long	2773927732 | 
|  | 855 | .long	1053236707 | 
|  | 856 | .long	436314138 | 
|  | 857 | .long	1056571808 | 
|  | 858 | .long	442499072 | 
|  | 859 | .long	1032893537 | 
|  | 860 | .long	442499072 | 
|  | 861 | .long	1032893537 | 
|  | 862 | .long	1413480448 | 
|  | 863 | .long	1069097467 | 
|  | 864 | .long	0 | 
|  | 865 | .long	0 | 
|  | 866 | .long	771977331 | 
|  | 867 | .long	996350346 | 
|  | 868 | .long	0 | 
|  | 869 | .long	0 | 
|  | 870 | .long	1841940611 | 
|  | 871 | .long	1076125488 | 
|  | 872 | .long	0 | 
|  | 873 | .long	0 | 
|  | 874 | .long	0 | 
|  | 875 | .long	1127743488 | 
|  | 876 | .long	0 | 
|  | 877 | .long	0 | 
|  | 878 | .long	0 | 
|  | 879 | .long	1130364928 | 
|  | 880 | .long	0 | 
|  | 881 | .long	0 | 
|  | 882 | .long	0 | 
|  | 883 | .long	1015021568 | 
|  | 884 | .long	0 | 
|  | 885 | .long	0 | 
|  | 886 | .long	4294967295 | 
|  | 887 | .long	1072693247 | 
|  | 888 | .long	0 | 
|  | 889 | .long	0 | 
|  | 890 | .long	0 | 
|  | 891 | .long	2147483648 | 
|  | 892 | .long	0 | 
|  | 893 | .long	0 | 
|  | 894 | .long	0 | 
|  | 895 | .long	2147483648 | 
|  | 896 | .long	0 | 
|  | 897 | .long	2147483648 | 
|  | 898 | .long	0 | 
|  | 899 | .long	1071644672 | 
|  | 900 | .long	0 | 
|  | 901 | .long	1071644672 | 
|  | 902 | .type	static_const_table,@object | 
|  | 903 | .size	static_const_table,2288 | 
|  | 904 | .data | 
|  | 905 | .hidden __libm_sincos_huge | 
| Stephen Hines | c68ec15 | 2020-08-21 12:12:46 -0700 | [diff] [blame] | 906 | .section .note.GNU-stack, "",@progbits | 
| Jingwei Zhang | 5d4f0e6 | 2014-10-31 18:29:18 +0800 | [diff] [blame] | 907 | # End |