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