blob: 621c94a0f76dd479c7947f19e880270c6923c7d3 [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// Polynomials coefficients and other constants.
36//
37// Note that in this algorithm, there is a different polynomial for
38// each breakpoint, so there are 32 sets of polynomial coefficients
39// as well as 32 instances of the other constants.
40//
41// The polynomial coefficients and constants are offset from the start
42// of the main block as follows:
43//
44// 0: c8 | c0
45// 16: c9 | c1
46// 32: c10 | c2
47// 48: c11 | c3
48// 64: c12 | c4
49// 80: c13 | c5
50// 96: c14 | c6
51// 112: c15 | c7
52// 128: T_hi
53// 136: T_lo
54// 144: Sigma
55// 152: T_hl
56// 160: Tau
57// 168: Mask
58// 176: (end of block)
59//
60// The total table size is therefore 5632 bytes.
61//
62// Note that c0 and c1 are always zero. We could try storing
63// other constants here, and just loading the low part of the
64// SIMD register in these cases, after ensuring the high part
65// is zero.
66//
67// The higher terms of the polynomial are computed in the *low*
68// part of the SIMD register. This is so we can overlap the
69// multiplication by r^8 and the unpacking of the other part.
70//
71// The constants are:
72// T_hi + T_lo = accurate constant term in power series
73// Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit)
74// Tau = multiplier for the reciprocal, always -1 or 0
75//
76// The basic reconstruction formula using these constants is:
77//
78// High = tau * recip_hi + t_hi
79// Med = (sgn * r + t_hl * r)_hi
80// Low = (sgn * r + t_hl * r)_lo +
81// tau * recip_lo + T_lo + (T_hl + sigma) * c + pol
82//
83// where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15
84//
85// (c0 = c1 = 0, but using them keeps SIMD regularity)
86//
87// We then do a compensated sum High + Med, add the low parts together
88// and then do the final sum.
89//
90// Here recip_hi + recip_lo is an accurate reciprocal of the remainder
91// modulo pi/2
92//
93// Special cases:
94// tan(NaN) = quiet NaN, and raise invalid exception
95// tan(INF) = NaN and raise invalid exception
96// tan(+/-0) = +/-0
97//
98/******************************************************************************/
99
100#include <private/bionic_asm.h>
101# -- Begin static_func
102 .text
103 .align __bionic_asm_align
104 .type static_func, @function
105static_func:
106..B1.1:
107 call ..L2
108..L2:
109 popl %eax
110 lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
111 lea static_const_table@GOTOFF(%eax), %eax
112 ret
113 .size static_func,.-static_func
114# -- End static_func
115
116# -- Begin tan
117ENTRY(tan)
118# parameter 1: 8 + %ebp
119..B2.1:
120..B2.2:
121 pushl %ebp
122 movl %esp, %ebp
123 subl $120, %esp
124 movl %ebx, 56(%esp)
125 call static_func
126 movl %eax, %ebx
127 movsd 128(%esp), %xmm0
128 pextrw $3, %xmm0, %eax
129 andl $32767, %eax
130 subl $14368, %eax
131 cmpl $2216, %eax
132 ja .L_2TAG_PACKET_0.0.2
133 movapd 5840(%ebx), %xmm5
134 movapd 5856(%ebx), %xmm6
135 unpcklpd %xmm0, %xmm0
136 movapd 5712(%ebx), %xmm4
137 andpd %xmm0, %xmm4
138 movapd 5632(%ebx), %xmm1
139 mulpd %xmm0, %xmm1
140 orpd %xmm4, %xmm5
141 addpd %xmm5, %xmm1
142 movapd %xmm1, %xmm7
143 unpckhpd %xmm7, %xmm7
144 cvttsd2si %xmm7, %edx
145 cvttpd2dq %xmm1, %xmm1
146 cvtdq2pd %xmm1, %xmm1
147 mulpd %xmm6, %xmm1
148 movapd 5664(%ebx), %xmm3
149 movsd 5728(%ebx), %xmm5
150 addl $469248, %edx
151 movapd 5680(%ebx), %xmm4
152 mulpd %xmm1, %xmm3
153 andl $31, %edx
154 mulsd %xmm1, %xmm5
155 movl %edx, %ecx
156 mulpd %xmm1, %xmm4
157 shll $1, %ecx
158 subpd %xmm3, %xmm0
159 mulpd 5696(%ebx), %xmm1
160 addl %ecx, %edx
161 shll $2, %ecx
162 addl %ecx, %edx
163 addsd %xmm0, %xmm5
164 movapd %xmm0, %xmm2
165 subpd %xmm4, %xmm0
166 movsd 5744(%ebx), %xmm6
167 shll $4, %edx
168 lea (%ebx), %eax
169 andpd 5776(%ebx), %xmm5
170 movapd %xmm0, %xmm3
171 addl %edx, %eax
172 subpd %xmm0, %xmm2
173 unpckhpd %xmm0, %xmm0
174 divsd %xmm5, %xmm6
175 subpd %xmm4, %xmm2
176 movapd 16(%eax), %xmm7
177 subsd %xmm5, %xmm3
178 mulpd %xmm0, %xmm7
179 subpd %xmm1, %xmm2
180 movapd 48(%eax), %xmm1
181 mulpd %xmm0, %xmm1
182 movapd 96(%eax), %xmm4
183 mulpd %xmm0, %xmm4
184 addsd %xmm3, %xmm2
185 movapd %xmm0, %xmm3
186 mulpd %xmm0, %xmm0
187 addpd (%eax), %xmm7
188 addpd 32(%eax), %xmm1
189 mulpd %xmm0, %xmm1
190 addpd 80(%eax), %xmm4
191 addpd %xmm1, %xmm7
192 movapd 112(%eax), %xmm1
193 mulpd %xmm0, %xmm1
194 mulpd %xmm0, %xmm0
195 addpd %xmm1, %xmm4
196 movapd 64(%eax), %xmm1
197 mulpd %xmm0, %xmm1
198 addpd %xmm1, %xmm7
199 movapd %xmm3, %xmm1
200 mulpd %xmm0, %xmm3
201 mulsd %xmm0, %xmm0
202 mulpd 144(%eax), %xmm1
203 mulpd %xmm3, %xmm4
204 movapd %xmm1, %xmm3
205 addpd %xmm4, %xmm7
206 movapd %xmm1, %xmm4
207 mulsd %xmm7, %xmm0
208 unpckhpd %xmm7, %xmm7
209 addsd %xmm7, %xmm0
210 unpckhpd %xmm1, %xmm1
211 addsd %xmm1, %xmm3
212 subsd %xmm3, %xmm4
213 addsd %xmm4, %xmm1
214 movapd %xmm2, %xmm4
215 movsd 144(%eax), %xmm7
216 unpckhpd %xmm2, %xmm2
217 addsd 152(%eax), %xmm7
218 mulsd %xmm2, %xmm7
219 addsd 136(%eax), %xmm7
220 addsd %xmm1, %xmm7
221 addsd %xmm7, %xmm0
222 movsd 5744(%ebx), %xmm7
223 mulsd %xmm6, %xmm4
224 movsd 168(%eax), %xmm2
225 andpd %xmm6, %xmm2
226 mulsd %xmm2, %xmm5
227 mulsd 160(%eax), %xmm6
228 subsd %xmm5, %xmm7
229 subsd 128(%eax), %xmm2
230 subsd %xmm4, %xmm7
231 mulsd %xmm6, %xmm7
232 movapd %xmm3, %xmm4
233 subsd %xmm2, %xmm3
234 addsd %xmm3, %xmm2
235 subsd %xmm2, %xmm4
236 addsd %xmm4, %xmm0
237 subsd %xmm7, %xmm0
238 addsd %xmm3, %xmm0
239 movsd %xmm0, (%esp)
240 fldl (%esp)
241 jmp .L_2TAG_PACKET_1.0.2
242.L_2TAG_PACKET_0.0.2:
243 jg .L_2TAG_PACKET_2.0.2
244 shrl $4, %eax
245 cmpl $268434558, %eax
246 jne .L_2TAG_PACKET_3.0.2
247 movapd %xmm0, %xmm3
248 mulsd 5808(%ebx), %xmm3
249.L_2TAG_PACKET_3.0.2:
250 movsd 5792(%ebx), %xmm3
251 mulsd %xmm0, %xmm3
252 addsd %xmm0, %xmm3
253 mulsd 5808(%ebx), %xmm3
254 movsd %xmm3, (%esp)
255 fldl (%esp)
256 jmp .L_2TAG_PACKET_1.0.2
257.L_2TAG_PACKET_2.0.2:
258 movq 5712(%ebx), %xmm7
259 andpd %xmm0, %xmm7
260 xorpd %xmm0, %xmm7
261 ucomisd 5760(%ebx), %xmm7
262 je .L_2TAG_PACKET_4.0.2
263 subl $32, %esp
264 movsd %xmm0, (%esp)
265 lea 40(%esp), %eax
266 movl %eax, 8(%esp)
267 movl $2, %eax
268 movl %eax, 12(%esp)
269 call __libm_tancot_huge
270 addl $32, %esp
271 fldl 8(%esp)
272 jmp .L_2TAG_PACKET_1.0.2
273.L_2TAG_PACKET_4.0.2:
274 movq %xmm0, (%esp)
275 fldl (%esp)
276 fsubl (%esp)
277.L_2TAG_PACKET_1.0.2:
278 movl 56(%esp), %ebx
279 movl %ebp, %esp
280 popl %ebp
281 ret
282..B2.3:
283END(tan)
284# -- End tan
285
286# Start file scope ASM
287.weak tanl
288.equ tanl, tan
289# End file scope ASM
290 .section .rodata, "a"
291 .align 16
292 .align 16
293static_const_table:
294 .long 0
295 .long 0
296 .long 0
297 .long 0
298 .long 2284589306
299 .long 1066820852
300 .long 0
301 .long 0
302 .long 0
303 .long 0
304 .long 0
305 .long 0
306 .long 1441186365
307 .long 1065494243
308 .long 1431655765
309 .long 1070945621
310 .long 0
311 .long 0
312 .long 0
313 .long 0
314 .long 236289504
315 .long 1064135997
316 .long 286331153
317 .long 1069617425
318 .long 0
319 .long 0
320 .long 0
321 .long 0
322 .long 1160476131
323 .long 1062722102
324 .long 463583772
325 .long 1068212666
326 .long 0
327 .long 0
328 .long 0
329 .long 0
330 .long 0
331 .long 1072693248
332 .long 0
333 .long 0
334 .long 0
335 .long 0
336 .long 0
337 .long 0
338 .long 1313038235
339 .long 1066745731
340 .long 0
341 .long 0
342 .long 1013878342
343 .long 1067152618
344 .long 0
345 .long 0
346 .long 3663426833
347 .long 1065725283
348 .long 3693284251
349 .long 1069118808
350 .long 650852232
351 .long 1065882376
352 .long 1996245381
353 .long 1071000265
354 .long 2008746170
355 .long 1064664197
356 .long 3055842593
357 .long 1068578846
358 .long 1495406348
359 .long 1064652437
360 .long 2269530157
361 .long 1069711235
362 .long 285563696
363 .long 1063576465
364 .long 1046897440
365 .long 1067705865
366 .long 233429731
367 .long 1063453151
368 .long 522045958
369 .long 1068476590
370 .long 2354785698
371 .long 1069102779
372 .long 1317599141
373 .long 1012432133
374 .long 0
375 .long 1072693248
376 .long 2828230105
377 .long 1065606626
378 .long 0
379 .long 0
380 .long 0
381 .long 0
382 .long 1512545955
383 .long 1068119047
384 .long 0
385 .long 0
386 .long 1127048698
387 .long 1067909459
388 .long 0
389 .long 0
390 .long 2300200450
391 .long 1067254767
392 .long 3593250296
393 .long 1070233561
394 .long 3009365544
395 .long 1066902117
396 .long 1127373050
397 .long 1071173457
398 .long 3046103305
399 .long 1066371299
400 .long 24583402
401 .long 1069723988
402 .long 4082511758
403 .long 1065914199
404 .long 3223889699
405 .long 1070020367
406 .long 548927984
407 .long 1065415756
408 .long 558065897
409 .long 1068949418
410 .long 680073315
411 .long 1064940726
412 .long 388873200
413 .long 1068944270
414 .long 3763679576
415 .long 1070167541
416 .long 1497360404
417 .long 1009710547
418 .long 0
419 .long 1072693248
420 .long 64931152
421 .long 1067729411
422 .long 0
423 .long 0
424 .long 0
425 .long 0
426 .long 2467582782
427 .long 1069256389
428 .long 0
429 .long 0
430 .long 162150096
431 .long 1068946420
432 .long 0
433 .long 0
434 .long 3702794237
435 .long 1068579152
436 .long 3631919291
437 .long 1070936926
438 .long 3456821413
439 .long 1068217218
440 .long 2031366438
441 .long 1071495745
442 .long 1596664020
443 .long 1067799281
444 .long 1509038701
445 .long 1070601643
446 .long 583171477
447 .long 1067510148
448 .long 3785344682
449 .long 1070618476
450 .long 2402036048
451 .long 1067075736
452 .long 3233018412
453 .long 1069913186
454 .long 411280568
455 .long 1066710556
456 .long 1065584192
457 .long 1069747896
458 .long 895247324
459 .long 1070819848
460 .long 500078909
461 .long 3161288781
462 .long 0
463 .long 1072693248
464 .long 729983843
465 .long 1068994194
466 .long 0
467 .long 0
468 .long 0
469 .long 0
470 .long 1458794562
471 .long 1070398550
472 .long 0
473 .long 0
474 .long 2857777489
475 .long 1070137637
476 .long 0
477 .long 0
478 .long 1024359517
479 .long 1069876531
480 .long 2616040238
481 .long 1071582937
482 .long 1609024636
483 .long 1069675088
484 .long 2529240549
485 .long 1071836633
486 .long 1510128600
487 .long 1069440113
488 .long 2251697184
489 .long 1071253687
490 .long 1262761453
491 .long 1069142850
492 .long 1263091857
493 .long 1071190461
494 .long 3043383486
495 .long 1068885191
496 .long 2476932470
497 .long 1070842002
498 .long 3659995028
499 .long 1068669200
500 .long 855891755
501 .long 1070696894
502 .long 2583490354
503 .long 1071284857
504 .long 3062633575
505 .long 1014008623
506 .long 0
507 .long 1072693248
508 .long 2550940471
509 .long 1069938201
510 .long 0
511 .long 0
512 .long 0
513 .long 0
514 .long 3422807297
515 .long 1071640847
516 .long 0
517 .long 0
518 .long 1151658053
519 .long 1071494715
520 .long 0
521 .long 0
522 .long 929607071
523 .long 1071346340
524 .long 1037049034
525 .long 1072037305
526 .long 2786928657
527 .long 1071215282
528 .long 1447406859
529 .long 1072265209
530 .long 3490952107
531 .long 1071090851
532 .long 3205232916
533 .long 1071968658
534 .long 1297344304
535 .long 1070977120
536 .long 1066110976
537 .long 1071946035
538 .long 3803721480
539 .long 1070871082
540 .long 1496754229
541 .long 1071807201
542 .long 2982550683
543 .long 1070773243
544 .long 4014441989
545 .long 1071736222
546 .long 419968236
547 .long 1071717047
548 .long 3451266538
549 .long 3163444811
550 .long 0
551 .long 1072693248
552 .long 2960267235
553 .long 1070745841
554 .long 0
555 .long 0
556 .long 0
557 .long 0
558 .long 724322768
559 .long 1072881308
560 .long 0
561 .long 0
562 .long 643153048
563 .long 1072905816
564 .long 0
565 .long 0
566 .long 4285079458
567 .long 1072928558
568 .long 3912524733
569 .long 1072622983
570 .long 118362272
571 .long 1072952754
572 .long 4107767972
573 .long 1072827408
574 .long 2689502883
575 .long 1072976922
576 .long 946523347
577 .long 1072772766
578 .long 573204189
579 .long 1073001761
580 .long 581531518
581 .long 1072826391
582 .long 1386236526
583 .long 1073026959
584 .long 3718905905
585 .long 1072832823
586 .long 1145558140
587 .long 1073052673
588 .long 513572637
589 .long 1072861969
590 .long 716700048
591 .long 1071997368
592 .long 547126769
593 .long 1015523525
594 .long 0
595 .long 1072693248
596 .long 1097907398
597 .long 1071420120
598 .long 0
599 .long 0
600 .long 0
601 .long 0
602 .long 3349892442
603 .long 1074290212
604 .long 0
605 .long 0
606 .long 3913197405
607 .long 1074501181
608 .long 0
609 .long 0
610 .long 2494034522
611 .long 1074739170
612 .long 1264738763
613 .long 1073084804
614 .long 1520293906
615 .long 1074899632
616 .long 1958936600
617 .long 1073411493
618 .long 2133649635
619 .long 1075052171
620 .long 4270740730
621 .long 1073574708
622 .long 1728930189
623 .long 1075224844
624 .long 1303998552
625 .long 1073799186
626 .long 618611933
627 .long 1075420255
628 .long 1769828046
629 .long 1073938542
630 .long 2200537986
631 .long 1075641421
632 .long 433361110
633 .long 1074105369
634 .long 719595600
635 .long 1072317184
636 .long 294527206
637 .long 3162140088
638 .long 0
639 .long 1073741824
640 .long 3811788216
641 .long 3218400550
642 .long 0
643 .long 0
644 .long 0
645 .long 0
646 .long 1704352102
647 .long 1075943001
648 .long 0
649 .long 0
650 .long 2284589306
651 .long 1076258036
652 .long 0
653 .long 0
654 .long 2211264291
655 .long 1076659010
656 .long 0
657 .long 1073741824
658 .long 1441186365
659 .long 1077028579
660 .long 1431655765
661 .long 1074091349
662 .long 876943673
663 .long 1077353622
664 .long 2863311531
665 .long 1074440874
666 .long 236289504
667 .long 1077767485
668 .long 286331153
669 .long 1074860305
670 .long 2805473311
671 .long 1078115278
672 .long 95443718
673 .long 1075163227
674 .long 1160476131
675 .long 1078450742
676 .long 463583772
677 .long 1075552698
678 .long 0
679 .long 1072693248
680 .long 0
681 .long 0
682 .long 0
683 .long 1073741824
684 .long 0
685 .long 0
686 .long 0
687 .long 0
688 .long 0
689 .long 0
690 .long 1330165971
691 .long 3207850745
692 .long 0
693 .long 0
694 .long 217536623
695 .long 1059109098
696 .long 0
697 .long 0
698 .long 3492120849
699 .long 3205151475
700 .long 602185705
701 .long 3215678092
702 .long 760422958
703 .long 1056312597
704 .long 555127889
705 .long 1067545266
706 .long 3139784124
707 .long 3202470837
708 .long 3690544014
709 .long 3213150171
710 .long 95707915
711 .long 1053635428
712 .long 4003114407
713 .long 1064581412
714 .long 2034926231
715 .long 3199711161
716 .long 3759536023
717 .long 3210559989
718 .long 3826928214
719 .long 1050893819
720 .long 3837960785
721 .long 1061790379
722 .long 1526325248
723 .long 3217967566
724 .long 2356426521
725 .long 1025423456
726 .long 0
727 .long 0
728 .long 457728975
729 .long 1071088276
730 .long 0
731 .long 1072693248
732 .long 0
733 .long 4294967288
734 .long 1398462608
735 .long 3207303968
736 .long 0
737 .long 0
738 .long 26205983
739 .long 1058461213
740 .long 0
741 .long 0
742 .long 56226238
743 .long 3204528612
744 .long 2754706541
745 .long 3215359511
746 .long 2187799823
747 .long 1055634437
748 .long 790323742
749 .long 1067402587
750 .long 1372385848
751 .long 3201651479
752 .long 4097292716
753 .long 3212856302
754 .long 3348210357
755 .long 1052830099
756 .long 2442796466
757 .long 1064337602
758 .long 862608142
759 .long 3198830754
760 .long 170296152
761 .long 3210060867
762 .long 3755571428
763 .long 1049933343
764 .long 3614866008
765 .long 1061361670
766 .long 719978496
767 .long 3217669096
768 .long 1998842465
769 .long 3174703977
770 .long 0
771 .long 0
772 .long 3749156607
773 .long 1071048258
774 .long 0
775 .long 1072693248
776 .long 0
777 .long 4294967288
778 .long 3120498638
779 .long 3206749304
780 .long 0
781 .long 0
782 .long 2773578114
783 .long 1058009312
784 .long 0
785 .long 0
786 .long 2030783676
787 .long 3203817873
788 .long 2223654598
789 .long 3215071936
790 .long 2976134650
791 .long 1054987244
792 .long 706390066
793 .long 1067217386
794 .long 4258437615
795 .long 3200900378
796 .long 1066252975
797 .long 3212391267
798 .long 815777514
799 .long 1051989462
800 .long 3202745457
801 .long 1064010682
802 .long 2493556375
803 .long 3198004753
804 .long 1046243251
805 .long 3209678971
806 .long 2593078846
807 .long 1049017717
808 .long 2763962276
809 .long 1060970161
810 .long 701480960
811 .long 3217377742
812 .long 3205862232
813 .long 3174660915
814 .long 0
815 .long 0
816 .long 2267016812
817 .long 1071015664
818 .long 0
819 .long 1072693248
820 .long 0
821 .long 4294967288
822 .long 2107155798
823 .long 3206166872
824 .long 0
825 .long 0
826 .long 2642992129
827 .long 1057424578
828 .long 0
829 .long 0
830 .long 1936992811
831 .long 3203204426
832 .long 1485063559
833 .long 3214682643
834 .long 1432914553
835 .long 1054319398
836 .long 3996381654
837 .long 1067075828
838 .long 2833029256
839 .long 3200223545
840 .long 2866066872
841 .long 3211982662
842 .long 2432888737
843 .long 1051234178
844 .long 3669764559
845 .long 1063748136
846 .long 2458496952
847 .long 3197170774
848 .long 1948234989
849 .long 3209098147
850 .long 2843698787
851 .long 1048163519
852 .long 3398041407
853 .long 1060559728
854 .long 2829230080
855 .long 3217092115
856 .long 1034046433
857 .long 3174271903
858 .long 0
859 .long 0
860 .long 298675305
861 .long 1070989821
862 .long 0
863 .long 1072693248
864 .long 0
865 .long 4294967288
866 .long 437603223
867 .long 3205589761
868 .long 0
869 .long 0
870 .long 759330352
871 .long 1057048511
872 .long 0
873 .long 0
874 .long 3107463368
875 .long 3202507988
876 .long 3144465176
877 .long 3214191500
878 .long 2290961810
879 .long 1053841035
880 .long 1618153340
881 .long 1066971547
882 .long 3836869393
883 .long 3199400272
884 .long 584032116
885 .long 3211469261
886 .long 1245704358
887 .long 1050626462
888 .long 4247487438
889 .long 1063561943
890 .long 1669034927
891 .long 3196274812
892 .long 3844233498
893 .long 3208626322
894 .long 2706958524
895 .long 1047411374
896 .long 3857199098
897 .long 1060281647
898 .long 3593904128
899 .long 3216590719
900 .long 3267547836
901 .long 3172163321
902 .long 0
903 .long 0
904 .long 4076712227
905 .long 1070970214
906 .long 0
907 .long 1072693248
908 .long 0
909 .long 4294967288
910 .long 3290090340
911 .long 3204793485
912 .long 0
913 .long 0
914 .long 3685760367
915 .long 1056668370
916 .long 0
917 .long 0
918 .long 2655163949
919 .long 3201674917
920 .long 628750575
921 .long 3213566872
922 .long 680140505
923 .long 1053299777
924 .long 2954464709
925 .long 1066900026
926 .long 803201619
927 .long 3198516435
928 .long 1466315631
929 .long 3210837162
930 .long 1611220163
931 .long 1049972438
932 .long 2766187256
933 .long 1063437894
934 .long 1804579484
935 .long 3195331491
936 .long 3695969289
937 .long 3207854418
938 .long 2617238373
939 .long 1046675948
940 .long 3095830084
941 .long 1060095334
942 .long 3789570048
943 .long 3216034914
944 .long 23826559
945 .long 3172048060
946 .long 0
947 .long 0
948 .long 3870939386
949 .long 1070956467
950 .long 0
951 .long 1072693248
952 .long 0
953 .long 4294967288
954 .long 1571758758
955 .long 3203672535
956 .long 0
957 .long 0
958 .long 113026373
959 .long 1056416381
960 .long 0
961 .long 0
962 .long 1913766298
963 .long 3200523326
964 .long 2507068734
965 .long 3212502004
966 .long 4000648818
967 .long 1053003803
968 .long 2446607349
969 .long 1066858259
970 .long 912662124
971 .long 3197333001
972 .long 1349489537
973 .long 3209765608
974 .long 3412972607
975 .long 1049641401
976 .long 1721283327
977 .long 1063366855
978 .long 1466691883
979 .long 3194116746
980 .long 3852528092
981 .long 3206760861
982 .long 285443293
983 .long 1046158380
984 .long 1758739894
985 .long 1059895449
986 .long 1858781184
987 .long 3214984212
988 .long 3447575948
989 .long 1024675855
990 .long 0
991 .long 0
992 .long 2242038011
993 .long 1070948320
994 .long 0
995 .long 1072693248
996 .long 0
997 .long 4294967288
998 .long 0
999 .long 0
1000 .long 0
1001 .long 0
1002 .long 737611454
1003 .long 1056336527
1004 .long 0
1005 .long 0
1006 .long 0
1007 .long 0
1008 .long 0
1009 .long 0
1010 .long 3594790527
1011 .long 1052911621
1012 .long 381774871
1013 .long 1066844524
1014 .long 0
1015 .long 0
1016 .long 0
1017 .long 0
1018 .long 3303051618
1019 .long 1049456050
1020 .long 3154187623
1021 .long 1063343722
1022 .long 0
1023 .long 0
1024 .long 0
1025 .long 0
1026 .long 528061788
1027 .long 1045944910
1028 .long 2469719819
1029 .long 1059831159
1030 .long 0
1031 .long 0
1032 .long 0
1033 .long 0
1034 .long 0
1035 .long 0
1036 .long 1431655765
1037 .long 1070945621
1038 .long 0
1039 .long 1072693248
1040 .long 0
1041 .long 4294967288
1042 .long 1571758758
1043 .long 1056188887
1044 .long 0
1045 .long 0
1046 .long 113026373
1047 .long 1056416381
1048 .long 0
1049 .long 0
1050 .long 1913766298
1051 .long 1053039678
1052 .long 2507068734
1053 .long 1065018356
1054 .long 4000648818
1055 .long 1053003803
1056 .long 2446607349
1057 .long 1066858259
1058 .long 912662124
1059 .long 1049849353
1060 .long 1349489537
1061 .long 1062281960
1062 .long 3412972607
1063 .long 1049641401
1064 .long 1721283327
1065 .long 1063366855
1066 .long 1466691883
1067 .long 1046633098
1068 .long 3852528092
1069 .long 1059277213
1070 .long 285443293
1071 .long 1046158380
1072 .long 1758739894
1073 .long 1059895449
1074 .long 1858781184
1075 .long 1067500564
1076 .long 3447575948
1077 .long 3172159503
1078 .long 0
1079 .long 0
1080 .long 2242038011
1081 .long 1070948320
1082 .long 0
1083 .long 1072693248
1084 .long 0
1085 .long 4294967288
1086 .long 3290090340
1087 .long 1057309837
1088 .long 0
1089 .long 0
1090 .long 3685760367
1091 .long 1056668370
1092 .long 0
1093 .long 0
1094 .long 2655163949
1095 .long 1054191269
1096 .long 628750575
1097 .long 1066083224
1098 .long 680140505
1099 .long 1053299777
1100 .long 2954464709
1101 .long 1066900026
1102 .long 803201619
1103 .long 1051032787
1104 .long 1466315631
1105 .long 1063353514
1106 .long 1611220163
1107 .long 1049972438
1108 .long 2766187256
1109 .long 1063437894
1110 .long 1804579484
1111 .long 1047847843
1112 .long 3695969289
1113 .long 1060370770
1114 .long 2617238373
1115 .long 1046675948
1116 .long 3095830084
1117 .long 1060095334
1118 .long 3789570048
1119 .long 1068551266
1120 .long 23826559
1121 .long 1024564412
1122 .long 0
1123 .long 0
1124 .long 3870939386
1125 .long 1070956467
1126 .long 0
1127 .long 1072693248
1128 .long 0
1129 .long 4294967288
1130 .long 437603223
1131 .long 1058106113
1132 .long 0
1133 .long 0
1134 .long 759330352
1135 .long 1057048511
1136 .long 0
1137 .long 0
1138 .long 3107463368
1139 .long 1055024340
1140 .long 3144465176
1141 .long 1066707852
1142 .long 2290961810
1143 .long 1053841035
1144 .long 1618153340
1145 .long 1066971547
1146 .long 3836869393
1147 .long 1051916624
1148 .long 584032116
1149 .long 1063985613
1150 .long 1245704358
1151 .long 1050626462
1152 .long 4247487438
1153 .long 1063561943
1154 .long 1669034927
1155 .long 1048791164
1156 .long 3844233498
1157 .long 1061142674
1158 .long 2706958524
1159 .long 1047411374
1160 .long 3857199098
1161 .long 1060281647
1162 .long 3593904128
1163 .long 1069107071
1164 .long 3267547836
1165 .long 1024679673
1166 .long 0
1167 .long 0
1168 .long 4076712227
1169 .long 1070970214
1170 .long 0
1171 .long 1072693248
1172 .long 0
1173 .long 4294967288
1174 .long 2107155798
1175 .long 1058683224
1176 .long 0
1177 .long 0
1178 .long 2642992129
1179 .long 1057424578
1180 .long 0
1181 .long 0
1182 .long 1936992811
1183 .long 1055720778
1184 .long 1485063559
1185 .long 1067198995
1186 .long 1432914553
1187 .long 1054319398
1188 .long 3996381654
1189 .long 1067075828
1190 .long 2833029256
1191 .long 1052739897
1192 .long 2866066872
1193 .long 1064499014
1194 .long 2432888737
1195 .long 1051234178
1196 .long 3669764559
1197 .long 1063748136
1198 .long 2458496952
1199 .long 1049687126
1200 .long 1948234989
1201 .long 1061614499
1202 .long 2843698787
1203 .long 1048163519
1204 .long 3398041407
1205 .long 1060559728
1206 .long 2829230080
1207 .long 1069608467
1208 .long 1034046433
1209 .long 1026788255
1210 .long 0
1211 .long 0
1212 .long 298675305
1213 .long 1070989821
1214 .long 0
1215 .long 1072693248
1216 .long 0
1217 .long 4294967288
1218 .long 3120498638
1219 .long 1059265656
1220 .long 0
1221 .long 0
1222 .long 2773578114
1223 .long 1058009312
1224 .long 0
1225 .long 0
1226 .long 2030783676
1227 .long 1056334225
1228 .long 2223654598
1229 .long 1067588288
1230 .long 2976134650
1231 .long 1054987244
1232 .long 706390066
1233 .long 1067217386
1234 .long 4258437615
1235 .long 1053416730
1236 .long 1066252975
1237 .long 1064907619
1238 .long 815777514
1239 .long 1051989462
1240 .long 3202745457
1241 .long 1064010682
1242 .long 2493556375
1243 .long 1050521105
1244 .long 1046243251
1245 .long 1062195323
1246 .long 2593078846
1247 .long 1049017717
1248 .long 2763962276
1249 .long 1060970161
1250 .long 701480960
1251 .long 1069894094
1252 .long 3205862232
1253 .long 1027177267
1254 .long 0
1255 .long 0
1256 .long 2267016812
1257 .long 1071015664
1258 .long 0
1259 .long 1072693248
1260 .long 0
1261 .long 4294967288
1262 .long 1398462608
1263 .long 1059820320
1264 .long 0
1265 .long 0
1266 .long 26205983
1267 .long 1058461213
1268 .long 0
1269 .long 0
1270 .long 56226238
1271 .long 1057044964
1272 .long 2754706541
1273 .long 1067875863
1274 .long 2187799823
1275 .long 1055634437
1276 .long 790323742
1277 .long 1067402587
1278 .long 1372385848
1279 .long 1054167831
1280 .long 4097292716
1281 .long 1065372654
1282 .long 3348210357
1283 .long 1052830099
1284 .long 2442796466
1285 .long 1064337602
1286 .long 862608142
1287 .long 1051347106
1288 .long 170296152
1289 .long 1062577219
1290 .long 3755571428
1291 .long 1049933343
1292 .long 3614866008
1293 .long 1061361670
1294 .long 719978496
1295 .long 1070185448
1296 .long 1998842465
1297 .long 1027220329
1298 .long 0
1299 .long 0
1300 .long 3749156607
1301 .long 1071048258
1302 .long 0
1303 .long 1072693248
1304 .long 0
1305 .long 4294967288
1306 .long 1330165971
1307 .long 1060367097
1308 .long 0
1309 .long 0
1310 .long 217536623
1311 .long 1059109098
1312 .long 0
1313 .long 0
1314 .long 3492120849
1315 .long 1057667827
1316 .long 602185705
1317 .long 1068194444
1318 .long 760422958
1319 .long 1056312597
1320 .long 555127889
1321 .long 1067545266
1322 .long 3139784124
1323 .long 1054987189
1324 .long 3690544014
1325 .long 1065666523
1326 .long 95707915
1327 .long 1053635428
1328 .long 4003114407
1329 .long 1064581412
1330 .long 2034926231
1331 .long 1052227513
1332 .long 3759536023
1333 .long 1063076341
1334 .long 3826928214
1335 .long 1050893819
1336 .long 3837960785
1337 .long 1061790379
1338 .long 1526325248
1339 .long 1070483918
1340 .long 2356426521
1341 .long 3172907104
1342 .long 0
1343 .long 0
1344 .long 457728975
1345 .long 1071088276
1346 .long 0
1347 .long 1072693248
1348 .long 0
1349 .long 4294967288
1350 .long 1704352102
1351 .long 3223426649
1352 .long 0
1353 .long 0
1354 .long 2284589306
1355 .long 1076258036
1356 .long 0
1357 .long 0
1358 .long 2211264291
1359 .long 3224142658
1360 .long 0
1361 .long 3221225472
1362 .long 1441186365
1363 .long 1077028579
1364 .long 1431655765
1365 .long 1074091349
1366 .long 876943673
1367 .long 3224837270
1368 .long 2863311531
1369 .long 3221924522
1370 .long 236289504
1371 .long 1077767485
1372 .long 286331153
1373 .long 1074860305
1374 .long 2805473311
1375 .long 3225598926
1376 .long 95443718
1377 .long 3222646875
1378 .long 1160476131
1379 .long 1078450742
1380 .long 463583772
1381 .long 1075552698
1382 .long 0
1383 .long 3220176896
1384 .long 0
1385 .long 0
1386 .long 0
1387 .long 1073741824
1388 .long 0
1389 .long 0
1390 .long 0
1391 .long 0
1392 .long 0
1393 .long 0
1394 .long 3349892442
1395 .long 3221773860
1396 .long 0
1397 .long 0
1398 .long 3913197405
1399 .long 1074501181
1400 .long 0
1401 .long 0
1402 .long 2494034522
1403 .long 3222222818
1404 .long 1264738763
1405 .long 3220568452
1406 .long 1520293906
1407 .long 1074899632
1408 .long 1958936600
1409 .long 1073411493
1410 .long 2133649635
1411 .long 3222535819
1412 .long 4270740730
1413 .long 3221058356
1414 .long 1728930189
1415 .long 1075224844
1416 .long 1303998552
1417 .long 1073799186
1418 .long 618611933
1419 .long 3222903903
1420 .long 1769828046
1421 .long 3221422190
1422 .long 2200537986
1423 .long 1075641421
1424 .long 433361110
1425 .long 1074105369
1426 .long 719595600
1427 .long 3219800832
1428 .long 294527206
1429 .long 1014656440
1430 .long 0
1431 .long 1073741824
1432 .long 3811788216
1433 .long 3218400550
1434 .long 0
1435 .long 0
1436 .long 0
1437 .long 0
1438 .long 724322768
1439 .long 3220364956
1440 .long 0
1441 .long 0
1442 .long 643153048
1443 .long 1072905816
1444 .long 0
1445 .long 0
1446 .long 4285079458
1447 .long 3220412206
1448 .long 3912524733
1449 .long 3220106631
1450 .long 118362272
1451 .long 1072952754
1452 .long 4107767972
1453 .long 1072827408
1454 .long 2689502883
1455 .long 3220460570
1456 .long 946523347
1457 .long 3220256414
1458 .long 573204189
1459 .long 1073001761
1460 .long 581531518
1461 .long 1072826391
1462 .long 1386236526
1463 .long 3220510607
1464 .long 3718905905
1465 .long 3220316471
1466 .long 1145558140
1467 .long 1073052673
1468 .long 513572637
1469 .long 1072861969
1470 .long 716700048
1471 .long 3219481016
1472 .long 547126769
1473 .long 3163007173
1474 .long 0
1475 .long 1072693248
1476 .long 1097907398
1477 .long 1071420120
1478 .long 0
1479 .long 0
1480 .long 0
1481 .long 0
1482 .long 3422807297
1483 .long 3219124495
1484 .long 0
1485 .long 0
1486 .long 1151658053
1487 .long 1071494715
1488 .long 0
1489 .long 0
1490 .long 929607071
1491 .long 3218829988
1492 .long 1037049034
1493 .long 3219520953
1494 .long 2786928657
1495 .long 1071215282
1496 .long 1447406859
1497 .long 1072265209
1498 .long 3490952107
1499 .long 3218574499
1500 .long 3205232916
1501 .long 3219452306
1502 .long 1297344304
1503 .long 1070977120
1504 .long 1066110976
1505 .long 1071946035
1506 .long 3803721480
1507 .long 3218354730
1508 .long 1496754229
1509 .long 3219290849
1510 .long 2982550683
1511 .long 1070773243
1512 .long 4014441989
1513 .long 1071736222
1514 .long 419968236
1515 .long 3219200695
1516 .long 3451266538
1517 .long 1015961163
1518 .long 0
1519 .long 1072693248
1520 .long 2960267235
1521 .long 1070745841
1522 .long 0
1523 .long 0
1524 .long 0
1525 .long 0
1526 .long 1458794562
1527 .long 3217882198
1528 .long 0
1529 .long 0
1530 .long 2857777489
1531 .long 1070137637
1532 .long 0
1533 .long 0
1534 .long 1024359517
1535 .long 3217360179
1536 .long 2616040238
1537 .long 3219066585
1538 .long 1609024636
1539 .long 1069675088
1540 .long 2529240549
1541 .long 1071836633
1542 .long 1510128600
1543 .long 3216923761
1544 .long 2251697184
1545 .long 3218737335
1546 .long 1262761453
1547 .long 1069142850
1548 .long 1263091857
1549 .long 1071190461
1550 .long 3043383486
1551 .long 3216368839
1552 .long 2476932470
1553 .long 3218325650
1554 .long 3659995028
1555 .long 1068669200
1556 .long 855891755
1557 .long 1070696894
1558 .long 2583490354
1559 .long 3218768505
1560 .long 3062633575
1561 .long 3161492271
1562 .long 0
1563 .long 1072693248
1564 .long 2550940471
1565 .long 1069938201
1566 .long 0
1567 .long 0
1568 .long 0
1569 .long 0
1570 .long 2467582782
1571 .long 3216740037
1572 .long 0
1573 .long 0
1574 .long 162150096
1575 .long 1068946420
1576 .long 0
1577 .long 0
1578 .long 3702794237
1579 .long 3216062800
1580 .long 3631919291
1581 .long 3218420574
1582 .long 3456821413
1583 .long 1068217218
1584 .long 2031366438
1585 .long 1071495745
1586 .long 1596664020
1587 .long 3215282929
1588 .long 1509038701
1589 .long 3218085291
1590 .long 583171477
1591 .long 1067510148
1592 .long 3785344682
1593 .long 1070618476
1594 .long 2402036048
1595 .long 3214559384
1596 .long 3233018412
1597 .long 3217396834
1598 .long 411280568
1599 .long 1066710556
1600 .long 1065584192
1601 .long 1069747896
1602 .long 895247324
1603 .long 3218303496
1604 .long 500078909
1605 .long 1013805133
1606 .long 0
1607 .long 1072693248
1608 .long 729983843
1609 .long 1068994194
1610 .long 0
1611 .long 0
1612 .long 0
1613 .long 0
1614 .long 1512545955
1615 .long 3215602695
1616 .long 0
1617 .long 0
1618 .long 1127048698
1619 .long 1067909459
1620 .long 0
1621 .long 0
1622 .long 2300200450
1623 .long 3214738415
1624 .long 3593250296
1625 .long 3217717209
1626 .long 3009365544
1627 .long 1066902117
1628 .long 1127373050
1629 .long 1071173457
1630 .long 3046103305
1631 .long 3213854947
1632 .long 24583402
1633 .long 3217207636
1634 .long 4082511758
1635 .long 1065914199
1636 .long 3223889699
1637 .long 1070020367
1638 .long 548927984
1639 .long 3212899404
1640 .long 558065897
1641 .long 3216433066
1642 .long 680073315
1643 .long 1064940726
1644 .long 388873200
1645 .long 1068944270
1646 .long 3763679576
1647 .long 3217651189
1648 .long 1497360404
1649 .long 3157194195
1650 .long 0
1651 .long 1072693248
1652 .long 64931152
1653 .long 1067729411
1654 .long 0
1655 .long 0
1656 .long 0
1657 .long 0
1658 .long 1313038235
1659 .long 3214229379
1660 .long 0
1661 .long 0
1662 .long 1013878342
1663 .long 1067152618
1664 .long 0
1665 .long 0
1666 .long 3663426833
1667 .long 3213208931
1668 .long 3693284251
1669 .long 3216602456
1670 .long 650852232
1671 .long 1065882376
1672 .long 1996245381
1673 .long 1071000265
1674 .long 2008746170
1675 .long 3212147845
1676 .long 3055842593
1677 .long 3216062494
1678 .long 1495406348
1679 .long 1064652437
1680 .long 2269530157
1681 .long 1069711235
1682 .long 285563696
1683 .long 3211060113
1684 .long 1046897440
1685 .long 3215189513
1686 .long 233429731
1687 .long 1063453151
1688 .long 522045958
1689 .long 1068476590
1690 .long 2354785698
1691 .long 3216586427
1692 .long 1317599141
1693 .long 3159915781
1694 .long 0
1695 .long 1072693248
1696 .long 2828230105
1697 .long 1065606626
1698 .long 0
1699 .long 0
1700 .long 0
1701 .long 0
1702 .long 1841940611
1703 .long 1071931184
1704 .long 1841940611
1705 .long 1076125488
1706 .long 0
1707 .long 1131937792
1708 .long 0
1709 .long 1127743488
1710 .long 1413758976
1711 .long 1069097467
1712 .long 1413742592
1713 .long 1069097467
1714 .long 1734819840
1715 .long 3174229945
1716 .long 1280049152
1717 .long 1028033571
1718 .long 923219018
1719 .long 984130272
1720 .long 57701189
1721 .long 988383790
1722 .long 0
1723 .long 2147483648
1724 .long 0
1725 .long 2147483648
1726 .long 1734816687
1727 .long 1026746297
1728 .long 0
1729 .long 0
1730 .long 0
1731 .long 1072693248
1732 .long 0
1733 .long 0
1734 .long 0
1735 .long 2146435072
1736 .long 0
1737 .long 0
1738 .long 4294705152
1739 .long 4294967295
1740 .long 0
1741 .long 0
1742 .long 0
1743 .long 1130364928
1744 .long 0
1745 .long 0
1746 .long 0
1747 .long 1015021568
1748 .long 0
1749 .long 0
1750 .long 0
1751 .long 1017118720
1752 .long 0
1753 .long 0
1754 .long 0
1755 .long 1071644672
1756 .long 0
1757 .long 1071644672
1758 .long 0
1759 .long 1076887552
1760 .long 0
1761 .long 1072693248
1762 .type static_const_table,@object
1763 .size static_const_table,5872
1764 .data
1765 .hidden __libm_tancot_huge
1766 .section .note.GNU-stack, ""
1767# End