blob: a0578bebb8a94bd7207f9f96d99bdafef6afbb2f [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
324.weak sinl
325.equ sinl, sin
326# End file scope ASM
327 .section .rodata, "a"
328 .align 16
329 .align 16
330static_const_table:
331 .long 0
332 .long 0
333 .long 0
334 .long 0
335 .long 0
336 .long 0
337 .long 0
338 .long 1072693248
339 .long 393047345
340 .long 3212032302
341 .long 3156849708
342 .long 1069094822
343 .long 3758096384
344 .long 3158189848
345 .long 0
346 .long 1072693248
347 .long 18115067
348 .long 3214126342
349 .long 1013556747
350 .long 1070135480
351 .long 3221225472
352 .long 3160567065
353 .long 0
354 .long 1072693248
355 .long 2476548698
356 .long 3215330282
357 .long 785751814
358 .long 1070765062
359 .long 2684354560
360 .long 3161838221
361 .long 0
362 .long 1072693248
363 .long 2255197647
364 .long 3216211105
365 .long 2796464483
366 .long 1071152610
367 .long 3758096384
368 .long 3160878317
369 .long 0
370 .long 1072693248
371 .long 1945768569
372 .long 3216915048
373 .long 939980347
374 .long 1071524701
375 .long 536870912
376 .long 1012796809
377 .long 0
378 .long 1072693248
379 .long 1539668340
380 .long 3217396327
381 .long 967731400
382 .long 1071761211
383 .long 536870912
384 .long 1015752157
385 .long 0
386 .long 1072693248
387 .long 1403757309
388 .long 3217886718
389 .long 621354454
390 .long 1071926515
391 .long 536870912
392 .long 1013450602
393 .long 0
394 .long 1072693248
395 .long 2583490354
396 .long 1070236281
397 .long 1719614413
398 .long 1072079006
399 .long 536870912
400 .long 3163282740
401 .long 0
402 .long 1071644672
403 .long 2485417816
404 .long 1069626316
405 .long 1796544321
406 .long 1072217216
407 .long 536870912
408 .long 3162686945
409 .long 0
410 .long 1071644672
411 .long 2598800519
412 .long 1068266419
413 .long 688824739
414 .long 1072339814
415 .long 3758096384
416 .long 1010431536
417 .long 0
418 .long 1071644672
419 .long 2140183630
420 .long 3214756396
421 .long 4051746225
422 .long 1072445618
423 .long 2147483648
424 .long 3161907377
425 .long 0
426 .long 1071644672
427 .long 1699043957
428 .long 3216902261
429 .long 3476196678
430 .long 1072533611
431 .long 536870912
432 .long 1014257638
433 .long 0
434 .long 1071644672
435 .long 1991047213
436 .long 1067753521
437 .long 1455828442
438 .long 1072602945
439 .long 3758096384
440 .long 1015505073
441 .long 0
442 .long 1070596096
443 .long 240740309
444 .long 3215727903
445 .long 3489094832
446 .long 1072652951
447 .long 536870912
448 .long 1014325783
449 .long 0
450 .long 1070596096
451 .long 257503056
452 .long 3214647653
453 .long 2748392742
454 .long 1072683149
455 .long 1073741824
456 .long 3163061750
457 .long 0
458 .long 1069547520
459 .long 0
460 .long 0
461 .long 0
462 .long 1072693248
463 .long 0
464 .long 0
465 .long 0
466 .long 0
467 .long 257503056
468 .long 1067164005
469 .long 2748392742
470 .long 1072683149
471 .long 1073741824
472 .long 3163061750
473 .long 0
474 .long 3217031168
475 .long 240740309
476 .long 1068244255
477 .long 3489094832
478 .long 1072652951
479 .long 536870912
480 .long 1014325783
481 .long 0
482 .long 3218079744
483 .long 1991047213
484 .long 3215237169
485 .long 1455828442
486 .long 1072602945
487 .long 3758096384
488 .long 1015505073
489 .long 0
490 .long 3218079744
491 .long 1699043957
492 .long 1069418613
493 .long 3476196678
494 .long 1072533611
495 .long 536870912
496 .long 1014257638
497 .long 0
498 .long 3219128320
499 .long 2140183630
500 .long 1067272748
501 .long 4051746225
502 .long 1072445618
503 .long 2147483648
504 .long 3161907377
505 .long 0
506 .long 3219128320
507 .long 2598800519
508 .long 3215750067
509 .long 688824739
510 .long 1072339814
511 .long 3758096384
512 .long 1010431536
513 .long 0
514 .long 3219128320
515 .long 2485417816
516 .long 3217109964
517 .long 1796544321
518 .long 1072217216
519 .long 536870912
520 .long 3162686945
521 .long 0
522 .long 3219128320
523 .long 2583490354
524 .long 3217719929
525 .long 1719614413
526 .long 1072079006
527 .long 536870912
528 .long 3163282740
529 .long 0
530 .long 3219128320
531 .long 1403757309
532 .long 1070403070
533 .long 621354454
534 .long 1071926515
535 .long 536870912
536 .long 1013450602
537 .long 0
538 .long 3220176896
539 .long 1539668340
540 .long 1069912679
541 .long 967731400
542 .long 1071761211
543 .long 536870912
544 .long 1015752157
545 .long 0
546 .long 3220176896
547 .long 1945768569
548 .long 1069431400
549 .long 939980347
550 .long 1071524701
551 .long 536870912
552 .long 1012796809
553 .long 0
554 .long 3220176896
555 .long 2255197647
556 .long 1068727457
557 .long 2796464483
558 .long 1071152610
559 .long 3758096384
560 .long 3160878317
561 .long 0
562 .long 3220176896
563 .long 2476548698
564 .long 1067846634
565 .long 785751814
566 .long 1070765062
567 .long 2684354560
568 .long 3161838221
569 .long 0
570 .long 3220176896
571 .long 18115067
572 .long 1066642694
573 .long 1013556747
574 .long 1070135480
575 .long 3221225472
576 .long 3160567065
577 .long 0
578 .long 3220176896
579 .long 393047345
580 .long 1064548654
581 .long 3156849708
582 .long 1069094822
583 .long 3758096384
584 .long 3158189848
585 .long 0
586 .long 3220176896
587 .long 0
588 .long 0
589 .long 0
590 .long 0
591 .long 0
592 .long 0
593 .long 0
594 .long 3220176896
595 .long 393047345
596 .long 1064548654
597 .long 3156849708
598 .long 3216578470
599 .long 3758096384
600 .long 1010706200
601 .long 0
602 .long 3220176896
603 .long 18115067
604 .long 1066642694
605 .long 1013556747
606 .long 3217619128
607 .long 3221225472
608 .long 1013083417
609 .long 0
610 .long 3220176896
611 .long 2476548698
612 .long 1067846634
613 .long 785751814
614 .long 3218248710
615 .long 2684354560
616 .long 1014354573
617 .long 0
618 .long 3220176896
619 .long 2255197647
620 .long 1068727457
621 .long 2796464483
622 .long 3218636258
623 .long 3758096384
624 .long 1013394669
625 .long 0
626 .long 3220176896
627 .long 1945768569
628 .long 1069431400
629 .long 939980347
630 .long 3219008349
631 .long 536870912
632 .long 3160280457
633 .long 0
634 .long 3220176896
635 .long 1539668340
636 .long 1069912679
637 .long 967731400
638 .long 3219244859
639 .long 536870912
640 .long 3163235805
641 .long 0
642 .long 3220176896
643 .long 1403757309
644 .long 1070403070
645 .long 621354454
646 .long 3219410163
647 .long 536870912
648 .long 3160934250
649 .long 0
650 .long 3220176896
651 .long 2583490354
652 .long 3217719929
653 .long 1719614413
654 .long 3219562654
655 .long 536870912
656 .long 1015799092
657 .long 0
658 .long 3219128320
659 .long 2485417816
660 .long 3217109964
661 .long 1796544321
662 .long 3219700864
663 .long 536870912
664 .long 1015203297
665 .long 0
666 .long 3219128320
667 .long 2598800519
668 .long 3215750067
669 .long 688824739
670 .long 3219823462
671 .long 3758096384
672 .long 3157915184
673 .long 0
674 .long 3219128320
675 .long 2140183630
676 .long 1067272748
677 .long 4051746225
678 .long 3219929266
679 .long 2147483648
680 .long 1014423729
681 .long 0
682 .long 3219128320
683 .long 1699043957
684 .long 1069418613
685 .long 3476196678
686 .long 3220017259
687 .long 536870912
688 .long 3161741286
689 .long 0
690 .long 3219128320
691 .long 1991047213
692 .long 3215237169
693 .long 1455828442
694 .long 3220086593
695 .long 3758096384
696 .long 3162988721
697 .long 0
698 .long 3218079744
699 .long 240740309
700 .long 1068244255
701 .long 3489094832
702 .long 3220136599
703 .long 536870912
704 .long 3161809431
705 .long 0
706 .long 3218079744
707 .long 257503056
708 .long 1067164005
709 .long 2748392742
710 .long 3220166797
711 .long 1073741824
712 .long 1015578102
713 .long 0
714 .long 3217031168
715 .long 0
716 .long 0
717 .long 0
718 .long 3220176896
719 .long 0
720 .long 0
721 .long 0
722 .long 0
723 .long 257503056
724 .long 3214647653
725 .long 2748392742
726 .long 3220166797
727 .long 1073741824
728 .long 1015578102
729 .long 0
730 .long 1069547520
731 .long 240740309
732 .long 3215727903
733 .long 3489094832
734 .long 3220136599
735 .long 536870912
736 .long 3161809431
737 .long 0
738 .long 1070596096
739 .long 1991047213
740 .long 1067753521
741 .long 1455828442
742 .long 3220086593
743 .long 3758096384
744 .long 3162988721
745 .long 0
746 .long 1070596096
747 .long 1699043957
748 .long 3216902261
749 .long 3476196678
750 .long 3220017259
751 .long 536870912
752 .long 3161741286
753 .long 0
754 .long 1071644672
755 .long 2140183630
756 .long 3214756396
757 .long 4051746225
758 .long 3219929266
759 .long 2147483648
760 .long 1014423729
761 .long 0
762 .long 1071644672
763 .long 2598800519
764 .long 1068266419
765 .long 688824739
766 .long 3219823462
767 .long 3758096384
768 .long 3157915184
769 .long 0
770 .long 1071644672
771 .long 2485417816
772 .long 1069626316
773 .long 1796544321
774 .long 3219700864
775 .long 536870912
776 .long 1015203297
777 .long 0
778 .long 1071644672
779 .long 2583490354
780 .long 1070236281
781 .long 1719614413
782 .long 3219562654
783 .long 536870912
784 .long 1015799092
785 .long 0
786 .long 1071644672
787 .long 1403757309
788 .long 3217886718
789 .long 621354454
790 .long 3219410163
791 .long 536870912
792 .long 3160934250
793 .long 0
794 .long 1072693248
795 .long 1539668340
796 .long 3217396327
797 .long 967731400
798 .long 3219244859
799 .long 536870912
800 .long 3163235805
801 .long 0
802 .long 1072693248
803 .long 1945768569
804 .long 3216915048
805 .long 939980347
806 .long 3219008349
807 .long 536870912
808 .long 3160280457
809 .long 0
810 .long 1072693248
811 .long 2255197647
812 .long 3216211105
813 .long 2796464483
814 .long 3218636258
815 .long 3758096384
816 .long 1013394669
817 .long 0
818 .long 1072693248
819 .long 2476548698
820 .long 3215330282
821 .long 785751814
822 .long 3218248710
823 .long 2684354560
824 .long 1014354573
825 .long 0
826 .long 1072693248
827 .long 18115067
828 .long 3214126342
829 .long 1013556747
830 .long 3217619128
831 .long 3221225472
832 .long 1013083417
833 .long 0
834 .long 1072693248
835 .long 393047345
836 .long 3212032302
837 .long 3156849708
838 .long 3216578470
839 .long 3758096384
840 .long 1010706200
841 .long 0
842 .long 1072693248
843 .long 1431655765
844 .long 3217380693
845 .long 0
846 .long 3219128320
847 .long 286331153
848 .long 1065423121
849 .long 1431655765
850 .long 1067799893
851 .long 436314138
852 .long 3207201184
853 .long 381774871
854 .long 3210133868
855 .long 2773927732
856 .long 1053236707
857 .long 436314138
858 .long 1056571808
859 .long 442499072
860 .long 1032893537
861 .long 442499072
862 .long 1032893537
863 .long 1413480448
864 .long 1069097467
865 .long 0
866 .long 0
867 .long 771977331
868 .long 996350346
869 .long 0
870 .long 0
871 .long 1841940611
872 .long 1076125488
873 .long 0
874 .long 0
875 .long 0
876 .long 1127743488
877 .long 0
878 .long 0
879 .long 0
880 .long 1130364928
881 .long 0
882 .long 0
883 .long 0
884 .long 1015021568
885 .long 0
886 .long 0
887 .long 4294967295
888 .long 1072693247
889 .long 0
890 .long 0
891 .long 0
892 .long 2147483648
893 .long 0
894 .long 0
895 .long 0
896 .long 2147483648
897 .long 0
898 .long 2147483648
899 .long 0
900 .long 1071644672
901 .long 0
902 .long 1071644672
903 .type static_const_table,@object
904 .size static_const_table,2288
905 .data
906 .hidden __libm_sincos_huge
907 .section .note.GNU-stack, ""
908# End