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