blob: 1e6cbd4aa399c960891af81d3c857cc9f28b93e1 [file] [log] [blame]
Jingwei Zhang5d4f0e62014-10-31 18:29:18 +08001/*
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// 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
180static_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
192ENTRY(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:
320END(sin)
321# -- End sin
322
323# Start file scope ASM
Christopher Ferris995b8132015-03-13 17:43:52 -0700324ALIAS_SYMBOL(sinl, sin);
Jingwei Zhang5d4f0e62014-10-31 18:29:18 +0800325# End file scope ASM
326 .section .rodata, "a"
327 .align 16
328 .align 16
329static_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
906 .section .note.GNU-stack, ""
907# End