1/*
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// This implementation uses the main path for |x| in [2^{-5},2^65).
36// For |x| in [2^{-64},2^{-5}), a secondary path is used.
37// For the biased exponent of X within 3FFH-64 and 3FF+64, we use one branch.
38// We use the following definition of B and X` so that the formula
39// atan(X) = Tau + atan( (X`-B) / (One + BX) ) is correct
40//
41// X = (-1)^s * 2^k * 1. x1 x2 ... x52
42//
43// Define X`  = 0 if k >= 5; and X`  = |X| otherwise
44// Define One = 0 if k >= 5; and One = 1 otherwise
45// Define B  = 0 if k <= -6; B =  2^k * 1.x1 x2 x3 x4 1  if -5 <= k <= 4
46// Define B  =  2^5 * 1.0 0 ... 0   if  k >= 5
47//
48// Tau is 0 if k <= -6;
49// Tau is atan( B )  if -5 <= k <= 4
50// Tau is pi/2 if k >= 5
51//
52// Special cases:
53//  atan(NaN) = quiet NaN
54//  atan(+/-INF) = +/-Pi/2
55//  atan(+/-0) = +/-0
56//
57/******************************************************************************/
58
59#include <private/bionic_asm.h>
60# -- Begin  atan
61ENTRY(atan)
62# parameter 1: %xmm0
63..B1.1:
64..___tag_value_atan.1:
65        pushq     %rsi
66..___tag_value_atan.3:
67        movsd     %xmm0, (%rsp)
68..B1.2:
69        movq      $0xffff000000000000, %r8
70        movd      %r8, %xmm3
71        movq      ONEMASK(%rip), %xmm5
72        movq      $0x800000000000, %r9
73        movd      %r9, %xmm4
74        pextrw    $3, %xmm0, %edx
75        andpd     %xmm0, %xmm3
76        pshufd    $68, %xmm0, %xmm1
77        orpd      %xmm4, %xmm3
78        movl      %edx, %eax
79        andl      $32767, %edx
80        subl      $16288, %edx
81        cmpl      $159, %edx
82        ja        .L_2TAG_PACKET_0.0.1
83        mulsd     %xmm3, %xmm1
84        subsd     %xmm3, %xmm0
85        addsd     %xmm5, %xmm1
86        divsd     %xmm1, %xmm0
87        addl      $1, %edx
88        movq      a2(%rip), %xmm2
89        movq      b2(%rip), %xmm4
90        andl      $32768, %eax
91        xorpd     %xmm7, %xmm7
92        pinsrw    $3, %eax, %xmm7
93        addl      %edx, %edx
94        lea       atan_tbl(%rip), %r8
95        movq      (%r8,%rdx,8), %xmm6
96        movq      8(%r8,%rdx,8), %xmm5
97        xorpd     %xmm7, %xmm5
98        xorpd     %xmm7, %xmm6
99        movq      8+a2(%rip), %xmm7
100        movddup   %xmm0, %xmm1
101        mulsd     %xmm0, %xmm0
102        movddup   %xmm1, %xmm3
103        addsd     %xmm6, %xmm1
104        mulsd     %xmm0, %xmm2
105        addsd     %xmm0, %xmm4
106        subsd     %xmm1, %xmm6
107        mulsd     %xmm0, %xmm4
108        addsd     %xmm7, %xmm2
109        mulsd     %xmm3, %xmm0
110        addsd     %xmm3, %xmm6
111        mulsd     %xmm2, %xmm0
112        addsd     8+b2(%rip), %xmm4
113        addsd     %xmm5, %xmm6
114        mulsd     %xmm4, %xmm0
115        addsd     %xmm6, %xmm0
116        addsd     %xmm1, %xmm0
117        jmp       .L_2TAG_PACKET_1.0.1
118.L_2TAG_PACKET_0.0.1:
119        addl      $944, %edx
120        cmpl      $1103, %edx
121        ja        .L_2TAG_PACKET_2.0.1
122        movq      a2(%rip), %xmm4
123        movq      b2(%rip), %xmm7
124        movq      (%rsp), %xmm0
125        mulsd     %xmm1, %xmm1
126        movq      8+a2(%rip), %xmm2
127        movq      8+b2(%rip), %xmm5
128        mulsd     %xmm1, %xmm4
129        addsd     %xmm1, %xmm7
130        movq      %xmm1, %xmm6
131        mulsd     %xmm0, %xmm1
132        addsd     %xmm4, %xmm2
133        mulsd     %xmm6, %xmm7
134        mulsd     %xmm1, %xmm2
135        addsd     %xmm5, %xmm7
136        mulsd     %xmm7, %xmm2
137        addsd     %xmm2, %xmm0
138        jmp       .L_2TAG_PACKET_1.0.1
139.L_2TAG_PACKET_2.0.1:
140        addl      $15344, %edx
141        cmpl      $16368, %edx
142        ja        .L_2TAG_PACKET_3.0.1
143        movq      (%rsp), %xmm0
144        movq      (%rsp), %xmm1
145        cmpl      $16, %edx
146        jae       .L_2TAG_PACKET_1.0.1
147        mulsd     %xmm0, %xmm1
148        jmp       .L_2TAG_PACKET_1.0.1
149.L_2TAG_PACKET_3.0.1:
150        cmpl      $17392, %edx
151        jae       .L_2TAG_PACKET_4.0.1
152        movq      $0xbff0000000000000, %r8
153        movd      %r8, %xmm1
154        divsd     %xmm0, %xmm1
155        movq      a2(%rip), %xmm2
156        movq      b2(%rip), %xmm4
157        andl      $32768, %eax
158        xorpd     %xmm7, %xmm7
159        pinsrw    $3, %eax, %xmm7
160        addl      %edx, %edx
161        movq      pi_table(%rip), %xmm6
162        movq      8+pi_table(%rip), %xmm5
163        xorpd     %xmm7, %xmm5
164        xorpd     %xmm7, %xmm6
165        movq      8+a2(%rip), %xmm7
166        movddup   %xmm1, %xmm0
167        mulsd     %xmm1, %xmm1
168        movddup   %xmm0, %xmm3
169        addsd     %xmm6, %xmm0
170        mulsd     %xmm1, %xmm2
171        addsd     %xmm1, %xmm4
172        subsd     %xmm0, %xmm6
173        mulsd     %xmm1, %xmm4
174        addsd     %xmm7, %xmm2
175        mulsd     %xmm3, %xmm1
176        addsd     %xmm3, %xmm6
177        mulsd     %xmm2, %xmm1
178        addsd     8+b2(%rip), %xmm4
179        addsd     %xmm5, %xmm6
180        mulsd     %xmm4, %xmm1
181        addsd     %xmm6, %xmm1
182        addsd     %xmm1, %xmm0
183        jmp       .L_2TAG_PACKET_1.0.1
184.L_2TAG_PACKET_4.0.1:
185        movq      (%rsp), %xmm4
186        movq      SGNMASK(%rip), %xmm0
187        movq      pi_table(%rip), %xmm2
188        movq      8+pi_table(%rip), %xmm3
189        movd      %xmm1, %eax
190        psrlq     $32, %xmm1
191        movd      %xmm1, %edx
192        andl      $2147483647, %edx
193        cmpl      $2146435072, %edx
194        jae       .L_2TAG_PACKET_5.0.1
195.L_2TAG_PACKET_6.0.1:
196        andnpd    %xmm4, %xmm0
197        orpd      %xmm0, %xmm2
198        orpd      %xmm3, %xmm0
199        addsd     %xmm2, %xmm0
200        jmp       .L_2TAG_PACKET_1.0.1
201.L_2TAG_PACKET_5.0.1:
202        subl      $2146435072, %edx
203        orl       %edx, %eax
204        cmpl      $0, %eax
205        je        .L_2TAG_PACKET_6.0.1
206        movq      %xmm4, %xmm0
207        addsd     %xmm0, %xmm0
208.L_2TAG_PACKET_1.0.1:
209..B1.3:
210        popq      %rcx
211..___tag_value_atan.4:
212        ret
213..___tag_value_atan.5:
214END(atan)
215# -- End  atan
216	.section .rodata, "a"
217	.align 4
218	.align 4
219ONEMASK:
220	.long	0
221	.long	1072693248
222	.type	ONEMASK,@object
223	.size	ONEMASK,8
224	.align 4
225a2:
226	.long	2006262985
227	.long	1069310863
228	.long	2358449471
229	.long	3217342131
230	.type	a2,@object
231	.size	a2,16
232	.align 4
233b2:
234	.long	3845454352
235	.long	1069952297
236	.long	2829679149
237	.long	1073771565
238	.type	b2,@object
239	.size	b2,16
240	.align 4
241atan_tbl:
242	.long	0
243	.long	0
244	.long	0
245	.long	0
246	.long	3819695742
247	.long	1067482761
248	.long	2398680355
249	.long	3155462074
250	.long	2998791009
251	.long	1067548225
252	.long	3868465248
253	.long	3157182472
254	.long	3339424991
255	.long	1067613680
256	.long	3296670360
257	.long	1010752543
258	.long	2710002256
259	.long	1067679126
260	.long	3403896007
261	.long	1010910768
262	.long	3275701428
263	.long	1067744562
264	.long	119959933
265	.long	1011482843
266	.long	2908636881
267	.long	1067809988
268	.long	2464489612
269	.long	1011545526
270	.long	3777889398
271	.long	1067875403
272	.long	3262682165
273	.long	1009703919
274	.long	3759667419
275	.long	1067940807
276	.long	1838130851
277	.long	3157373556
278	.long	732369940
279	.long	1068006200
280	.long	1203428313
281	.long	1010055371
282	.long	1166616461
283	.long	1068071580
284	.long	2901274051
285	.long	3158549977
286	.long	2945472892
287	.long	1068136947
288	.long	3726120658
289	.long	1009762715
290	.long	3954480976
291	.long	1068202301
292	.long	1289173457
293	.long	1009429861
294	.long	2081752829
295	.long	1068267642
296	.long	1836909874
297	.long	1006212095
298	.long	3807999788
299	.long	1068332968
300	.long	2172459940
301	.long	3156162078
302	.long	2731789884
303	.long	1068398280
304	.long	3450718392
305	.long	3159216547
306	.long	1044477961
307	.long	1068463577
308	.long	2230553229
309	.long	1011424339
310	.long	1486930287
311	.long	1068530218
312	.long	2861547474
313	.long	1012041376
314	.long	2293016881
315	.long	1068595466
316	.long	136843272
317	.long	1012684797
318	.long	201518157
319	.long	1068660680
320	.long	63231984
321	.long	1012427198
322	.long	4054234584
323	.long	1068725856
324	.long	3927006960
325	.long	1011878955
326	.long	1246477213
327	.long	1068790995
328	.long	1494265652
329	.long	3155219350
330	.long	678186699
331	.long	1068856093
332	.long	1264361424
333	.long	3159256693
334	.long	2690594995
335	.long	1068921148
336	.long	3906996379
337	.long	1009288267
338	.long	3362611517
339	.long	1068986159
340	.long	1650970041
341	.long	3158331771
342	.long	3102162111
343	.long	1069051124
344	.long	365917035
345	.long	3160264153
346	.long	2352611067
347	.long	1069116041
348	.long	4008970190
349	.long	3159478182
350	.long	1594134794
351	.long	1069180908
352	.long	466690178
353	.long	1012526501
354	.long	1345079306
355	.long	1069245723
356	.long	2268273568
357	.long	3160164092
358	.long	2163300970
359	.long	1069310484
360	.long	2750834800
361	.long	3158113482
362	.long	352522716
363	.long	1069375190
364	.long	1750411372
365	.long	1011790845
366	.long	848541647
367	.long	1069439838
368	.long	2164207573
369	.long	1011698350
370	.long	40647312
371	.long	1069504427
372	.long	2949165434
373	.long	3159107267
374	.long	2216766270
375	.long	1069574357
376	.long	2197920765
377	.long	3161055954
378	.long	1090914384
379	.long	1069638757
380	.long	2330454674
381	.long	1013365998
382	.long	387601244
383	.long	1069703022
384	.long	3185681168
385	.long	1013434071
386	.long	3991640484
387	.long	1069767144
388	.long	1313211590
389	.long	3161087959
390	.long	3322489502
391	.long	1069831118
392	.long	3013977995
393	.long	1013053011
394	.long	3121698570
395	.long	1069894936
396	.long	4069015667
397	.long	1013023362
398	.long	4289964660
399	.long	1069958591
400	.long	1736191156
401	.long	3158266731
402	.long	3903312386
403	.long	1070022077
404	.long	1833592413
405	.long	3159731471
406	.long	3818449864
407	.long	1070085387
408	.long	851036429
409	.long	3159730451
410	.long	2097480306
411	.long	1070148515
412	.long	3506390884
413	.long	3160462302
414	.long	1611694502
415	.long	1070211454
416	.long	2785735540
417	.long	3160465144
418	.long	1464694796
419	.long	1070274198
420	.long	4229277299
421	.long	3159907000
422	.long	1299612775
423	.long	1070336741
424	.long	4116653788
425	.long	3160427739
426	.long	1310544789
427	.long	1070399077
428	.long	1064430331
429	.long	1013218202
430	.long	2253168030
431	.long	1070461200
432	.long	1405044609
433	.long	3157623179
434	.long	1159567373
435	.long	1070523105
436	.long	2353445521
437	.long	3159992176
438	.long	1359373750
439	.long	1070605818
440	.long	1748171336
441	.long	3161879263
442	.long	908341706
443	.long	1070667034
444	.long	3372710815
445	.long	3161775245
446	.long	1743027350
447	.long	1070727765
448	.long	687089934
449	.long	3160507171
450	.long	2055355646
451	.long	1070787992
452	.long	2392855242
453	.long	1013682469
454	.long	690426164
455	.long	1070847697
456	.long	1103926666
457	.long	1014052810
458	.long	1483247847
459	.long	1070906862
460	.long	2082645847
461	.long	3161345479
462	.long	392040270
463	.long	1070965472
464	.long	2407720023
465	.long	1014053754
466	.long	2673846014
467	.long	1071023511
468	.long	1293605532
469	.long	3158464385
470	.long	1384215810
471	.long	1071080967
472	.long	2446095872
473	.long	3159216407
474	.long	3101660631
475	.long	1071137826
476	.long	698040758
477	.long	1014855328
478	.long	2094057058
479	.long	1071194078
480	.long	2282048339
481	.long	1014040385
482	.long	1712750594
483	.long	1071249712
484	.long	1204372378
485	.long	3162276464
486	.long	1411515787
487	.long	1071304719
488	.long	949080808
489	.long	1015006403
490	.long	931538085
491	.long	1071359091
492	.long	3027127039
493	.long	1014307233
494	.long	179139065
495	.long	1071412821
496	.long	4285547492
497	.long	3161934731
498	.long	3387721259
499	.long	1071465902
500	.long	373225773
501	.long	1013486625
502	.long	2132236852
503	.long	1071544299
504	.long	3250533429
505	.long	1014031677
506	.long	1942070284
507	.long	1071645596
508	.long	1237964179
509	.long	3163239113
510	.long	1532707802
511	.long	1071695380
512	.long	330645583
513	.long	1012495610
514	.long	2294184979
515	.long	1071743834
516	.long	3959472897
517	.long	1015833116
518	.long	3805060714
519	.long	1071790961
520	.long	2671256142
521	.long	1013727772
522	.long	2215037898
523	.long	1071836770
524	.long	2683359117
525	.long	1015831902
526	.long	483661594
527	.long	1071881273
528	.long	836288326
529	.long	3162648643
530	.long	1534679894
531	.long	1071924486
532	.long	373258696
533	.long	3162470096
534	.long	1538714628
535	.long	1071966430
536	.long	3199433068
537	.long	1015325501
538	.long	527642555
539	.long	1072007128
540	.long	3636832592
541	.long	3161843145
542	.long	291339150
543	.long	1072046605
544	.long	890169537
545	.long	3160586117
546	.long	2450210201
547	.long	1072084888
548	.long	1636353294
549	.long	3163193400
550	.long	2411367951
551	.long	1072122007
552	.long	374899873
553	.long	1011331750
554	.long	681549971
555	.long	1072157992
556	.long	506411689
557	.long	1015373954
558	.long	1466745541
559	.long	1072192873
560	.long	2143860931
561	.long	1013364334
562	.long	2845622366
563	.long	1072226682
564	.long	2869178209
565	.long	3162423682
566	.long	2838871438
567	.long	1072275456
568	.long	3742223599
569	.long	1014338577
570	.long	4200275274
571	.long	1072337034
572	.long	1566539915
573	.long	3161839550
574	.long	3034733530
575	.long	1072394897
576	.long	652621408
577	.long	3162261964
578	.long	3207412993
579	.long	1072449290
580	.long	3206124665
581	.long	1014408733
582	.long	624461478
583	.long	1072500450
584	.long	932437485
585	.long	1015204343
586	.long	767665908
587	.long	1072548600
588	.long	1037911952
589	.long	3163527627
590	.long	1110773639
591	.long	1072593952
592	.long	2371517912
593	.long	3160465741
594	.long	1940828530
595	.long	1072636704
596	.long	2731408428
597	.long	3162895795
598	.long	1911329388
599	.long	1072677041
600	.long	1773089615
601	.long	3159569267
602	.long	1764715788
603	.long	1072704191
604	.long	691346949
605	.long	3164069946
606	.long	3332979233
607	.long	1072722195
608	.long	3550733983
609	.long	1014770628
610	.long	1321870254
611	.long	1072739231
612	.long	1415315820
613	.long	1016224052
614	.long	3657429030
615	.long	1072755365
616	.long	3910539033
617	.long	1015966402
618	.long	4197624557
619	.long	1072770661
620	.long	2333399254
621	.long	3164546480
622	.long	1512059493
623	.long	1072785177
624	.long	2701510318
625	.long	1016178092
626	.long	453379037
627	.long	1072798965
628	.long	4046344253
629	.long	3162814364
630	.long	1942345162
631	.long	1072818388
632	.long	621134147
633	.long	1016335195
634	.long	4210176273
635	.long	1072842164
636	.long	2701013387
637	.long	3164326619
638	.long	4185644010
639	.long	1072863795
640	.long	4163699341
641	.long	1016203112
642	.long	679688788
643	.long	1072883543
644	.long	4147276762
645	.long	1014066750
646	.long	29432865
647	.long	1072901630
648	.long	970415797
649	.long	1016902063
650	.long	4070721092
651	.long	1072918247
652	.long	2539004411
653	.long	3163736096
654	.long	2252468843
655	.long	1072933561
656	.long	3424082887
657	.long	3163407177
658	.long	2929724825
659	.long	1072947712
660	.long	3661482235
661	.long	3163846989
662	.long	1377513368
663	.long	1072960824
664	.long	3987926680
665	.long	1013647908
666	.long	1031632908
667	.long	1072973003
668	.long	3672217151
669	.long	1016614619
670	.long	2516508130
671	.long	1072984342
672	.long	545855020
673	.long	3162728930
674	.long	3792452178
675	.long	1072994923
676	.long	3420119467
677	.long	1016471430
678	.long	3147791459
679	.long	1073004818
680	.long	1342204979
681	.long	1013937254
682	.long	999189752
683	.long	1073014090
684	.long	1006335472
685	.long	3162850919
686	.long	711011011
687	.long	1073022794
688	.long	4633488
689	.long	3162966895
690	.long	15640363
691	.long	1073030980
692	.long	1686389560
693	.long	3164376226
694	.long	1218463589
695	.long	1073042382
696	.long	1526837110
697	.long	3163533985
698	.long	2538470555
699	.long	1073056144
700	.long	2273304406
701	.long	3163784996
702	.long	1229720947
703	.long	1073068489
704	.long	2971628206
705	.long	3162356540
706	.long	3115427016
707	.long	1073079621
708	.long	4215132957
709	.long	3164282762
710	.long	4030612557
711	.long	1073089709
712	.long	1913251691
713	.long	3163671292
714	.long	2728521257
715	.long	1073098892
716	.long	2861089500
717	.long	1015454459
718	.long	1118696283
719	.long	1073107285
720	.long	1628948053
721	.long	1016179658
722	.long	2682711255
723	.long	1073114984
724	.long	2906306266
725	.long	1014142643
726	.long	2073898081
727	.long	1073122072
728	.long	1322740454
729	.long	3164497217
730	.long	1403700297
731	.long	1073128618
732	.long	416137895
733	.long	3162781466
734	.long	2502685617
735	.long	1073134681
736	.long	3242008732
737	.long	1014593495
738	.long	1531926851
739	.long	1073140313
740	.long	1362708094
741	.long	1016517604
742	.long	3572814411
743	.long	1073145557
744	.long	3709790527
745	.long	1012646874
746	.long	1695536111
747	.long	1073150453
748	.long	3980346340
749	.long	1016705136
750	.long	2363057203
751	.long	1073155033
752	.long	2551194792
753	.long	1012569695
754	.long	2873365682
755	.long	1073159327
756	.long	3181154748
757	.long	1017041450
758	.long	1053384691
759	.long	1073165288
760	.long	3074536879
761	.long	1016965660
762	.long	3270542712
763	.long	1073172451
764	.long	2535319415
765	.long	3163051778
766	.long	1353631484
767	.long	1073178850
768	.long	1173833755
769	.long	1015534537
770	.long	3511218460
771	.long	1073184599
772	.long	1243608109
773	.long	3161592122
774	.long	4121259284
775	.long	1073189793
776	.long	398584912
777	.long	3163829923
778	.long	1193862106
779	.long	1073194509
780	.long	1873745539
781	.long	3163802819
782	.long	3861949790
783	.long	1073198808
784	.long	3841261147
785	.long	1015587248
786	.long	1486904578
787	.long	1073202745
788	.long	1634726776
789	.long	3163847886
790	.long	2879153715
791	.long	1073206362
792	.long	200456242
793	.long	3164138657
794	.long	385353253
795	.long	1073209698
796	.long	1186355517
797	.long	1014887155
798	.long	1125865839
799	.long	1073212783
800	.long	203561262
801	.long	3161244927
802	.long	1221361475
803	.long	1073215645
804	.long	3382476563
805	.long	1014936138
806	.long	2077323573
807	.long	1073218307
808	.long	1005121005
809	.long	3164430752
810	.long	215611373
811	.long	1073220790
812	.long	353198764
813	.long	3164485137
814	.long	2347419265
815	.long	1073223110
816	.long	1103143360
817	.long	1016542137
818	.long	1379112765
819	.long	1073225284
820	.long	381583533
821	.long	3162870833
822	.long	3891198463
823	.long	1073228298
824	.long	1771275754
825	.long	1014654681
826	.long	3395914051
827	.long	1073231917
828	.long	2350900914
829	.long	3164013978
830	.long	2799919478
831	.long	1073235146
832	.long	2893950164
833	.long	3163260901
834	.long	1138673476
835	.long	1073238045
836	.long	2622204785
837	.long	3164174388
838	.long	3408855940
839	.long	1073240661
840	.long	2800881650
841	.long	1016008624
842	.long	2044858738
843	.long	1073243035
844	.long	604544785
845	.long	1017022901
846	.long	2578795176
847	.long	1073245198
848	.long	2557332925
849	.long	1016135165
850	.long	4196285314
851	.long	1073247177
852	.long	2032365307
853	.long	1016194735
854	.long	224877747
855	.long	1073248996
856	.long	497926916
857	.long	1016947111
858	.long	3271386490
859	.long	1073250671
860	.long	2689994846
861	.long	1016631513
862	.long	813635989
863	.long	1073252221
864	.long	747035277
865	.long	3164530136
866	.long	369829519
867	.long	1073253658
868	.long	2182033858
869	.long	3163190340
870	.long	1187679052
871	.long	1073254994
872	.long	673954443
873	.long	1016149821
874	.long	4232586098
875	.long	1073256239
876	.long	497775200
877	.long	3162179015
878	.long	426690558
879	.long	1073257404
880	.long	3063343247
881	.long	1016865578
882	.long	1624065902
883	.long	1073258494
884	.long	1354224996
885	.long	3163503778
886	.long	1413754136
887	.long	1073291771
888	.long	856972295
889	.long	1016178214
890	.type	atan_tbl,@object
891	.size	atan_tbl,2592
892	.align 4
893pi_table:
894	.long	1413754136
895	.long	1073291771
896	.long	856972295
897	.long	1016178214
898	.type	pi_table,@object
899	.size	pi_table,16
900	.align 4
901SGNMASK:
902	.long	4294967295
903	.long	2147483647
904	.type	SGNMASK,@object
905	.size	SGNMASK,8
906	.data
907	.section .note.GNU-stack, ""
908// -- Begin DWARF2 SEGMENT .eh_frame
909	.section .eh_frame,"a",@progbits
910.eh_frame_seg:
911	.align 1
912	.4byte 0x00000014
913	.8byte 0x00527a0100000000
914	.8byte 0x08070c1b01107801
915	.4byte 0x00000190
916	.4byte 0x0000001c
917	.4byte 0x0000001c
918	.4byte ..___tag_value_atan.1-.
919	.4byte ..___tag_value_atan.5-..___tag_value_atan.1
920	.2byte 0x0400
921	.4byte ..___tag_value_atan.3-..___tag_value_atan.1
922	.2byte 0x100e
923	.byte 0x04
924	.4byte ..___tag_value_atan.4-..___tag_value_atan.3
925	.2byte 0x080e
926	.byte 0x00
927# End
928