blob: 1efdf65820a0b1463be47f13769706ff51935719 [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//
36//1. The method is based on the relationship of atan2(Y,X) to atan(|Y/X|)
37// as follows.
38// / sign(Y) atan(|Y/X|) if X > 0
39// atan2(Y,X) =
40// \ sign(Y)*pi - sign(Y)*atan(|Y/X|) if X < 0
41//
42// Thus, atan2(Y,X) is of the form atan2(Y,X) = PI + sgn*atan(|Y/X|)
43// where PI and sgn can be determined by the four possible combinations of
44// of the pair (sign(X),sign(Y)). We concentrate on the numerical method
45// for atan(|Y/X|).
46//
47//2. For |Y/X| < 2^(-64), atan(|Y/X|) ~=~ |Y/X|. Hence, atan2(Y,X) is Y/X
48// if X > 0, and sign(Y)*pi otherwise.
49//3. For |Y/X| >= 2^(65), atan(|Y/X|) ~=~ pi/2. Hence atan2(Y,X) is sign(Y)pi/2.
50//4. For 2^(-64) <= |Y/X| < 2^(-5), atan(|Y/X|) is approximated by a polynomial
51// of the form Z + Z*E*polynomial(E), where Z = |Y/X| and E = Z*Z.
52//5. For |Y/X| > 2^(5), atan(|Y/X|) = pi/2 + atan(-|X/Y|), and atan(-|X/Y|) is
53// calculated using the polynomial in 4 above.
54//6. For 2^(-5) <= |Y/X| <= 2^(5), we employ a table lookup method. First,
55// we obtain B = 2^k * 1.b1 b2 b3 b4 = 2^k * (1+k/16) that approximate
56// |Y/X| to approximately 5 significant bits. Hence, atan(|Y/X|) is
57//
58// atan(|Y/X|) = atan(B) + atan(Z), where Z = (|Y|-B|X|)/(|X|+B|Y|).
59// ~=~ tau + Z + Z*E*polynomial(E), where E = Z*Z.
60//
61// B has the range from 2^(-6)*(1+14/16) to 2^5 = 2^(5)*(1+0/16), totally
62// 163 possible values. These values are calculated beforehand and stored
63// in a table. The polynomial is the one used in 4.
64//
65// Special cases:
66// atan2(+-0, +0) = +-0
67// atan2(+-0, -0) = +-pi
68// atan2(+-0, x) = +-0, for x > 0, and +-pi, for x < 0
69// atan2(y, +-0) = +pi/2 for y > 0, and -pi/2 for y < 0
70// atan2(+-y, +INF) = +-0, for finite y > 0
71// atan2(+-y, -INF) = +-pi, for finite y > 0
72// atan2(+-INF, x) = +-pi/2, for finite x
73// atan2(+-INF, +INF) = +-pi/4
74// atan2(+-INF, -INF) = +-3*pi/4
75//
76/******************************************************************************/
77
78#include <private/bionic_asm.h>
79# -- Begin static_func
80 .text
81 .align __bionic_asm_align
82 .type static_func, @function
83static_func:
84..B1.1:
85 call ..L2
86..L2:
87 popl %eax
88 lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
89 lea static_const_table@GOTOFF(%eax), %eax
90 ret
91 .size static_func,.-static_func
92# -- End static_func
93
94# -- Begin atan2
95ENTRY(atan2)
96# parameter 1: 8 + %ebp
97# parameter 2: 16 + %ebp
98..B2.1:
99..B2.2:
100 pushl %ebp
101 movl %esp, %ebp
102 subl $120, %esp
103 movl %ebx, 64(%esp)
104 call static_func
105 movl %eax, %ebx
106 movsd 136(%esp), %xmm1
107 movsd 128(%esp), %xmm0
108 pextrw $3, %xmm0, %eax
109 movq %xmm0, 8(%esp)
110 andl $32752, %eax
111 movq %xmm1, 16(%esp)
112 subl $14448, %eax
113 cmpl $3840, %eax
114 ja .L_2TAG_PACKET_0.0.2
115 pextrw $3, %xmm1, %eax
116 andl $32752, %eax
117 subl $14448, %eax
118 cmpl $3840, %eax
119 ja .L_2TAG_PACKET_1.0.2
120.L_2TAG_PACKET_2.0.2:
121 unpcklpd %xmm1, %xmm0
122 xorpd %xmm5, %xmm5
123 xorpd %xmm3, %xmm3
124 movl $2048, %eax
125 pinsrw $3, %eax, %xmm5
126 paddw %xmm1, %xmm5
127 psrlq $29, %xmm5
128 rcpss %xmm5, %xmm3
129 xorpd %xmm4, %xmm4
130 movl $14336, %ecx
131 pinsrw $3, %ecx, %xmm4
132 psllq $29, %xmm3
133 paddw %xmm4, %xmm3
134 mulsd %xmm0, %xmm3
135 xorpd %xmm2, %xmm2
136 xorpd %xmm6, %xmm6
137 xorpd %xmm7, %xmm7
138 movl $32768, %eax
139 pinsrw $2, %eax, %xmm6
140 movl $32767, %ecx
141 pinsrw $3, %ecx, %xmm7
142 paddd %xmm6, %xmm3
143 andpd %xmm7, %xmm3
144 movapd %xmm3, %xmm5
145 pextrw $3, %xmm3, %eax
146 movl $16448, %ecx
147 pinsrw $3, %ecx, %xmm2
148 minsd %xmm2, %xmm3
149 movmskpd %xmm0, %edx
150 psllq $1, %xmm0
151 psrlq $1, %xmm0
152 cmpsd $2, %xmm2, %xmm5
153 psllq $1, %xmm1
154 psrlq $1, %xmm1
155 movapd %xmm1, %xmm6
156 movapd %xmm1, %xmm7
157 movapd %xmm0, %xmm2
158 movl $0, %ecx
159 pinsrw $0, %ecx, %xmm6
160 subsd %xmm6, %xmm7
161 movapd %xmm0, %xmm4
162 mulsd %xmm3, %xmm6
163 mulsd %xmm3, %xmm4
164 mulsd %xmm3, %xmm7
165 andpd %xmm5, %xmm0
166 subsd %xmm6, %xmm0
167 andpd %xmm5, %xmm1
168 addsd %xmm1, %xmm4
169 subsd %xmm7, %xmm0
170 andl $32752, %eax
171 subl $16286, %eax
172 cmpl $1121, %eax
173 ja .L_2TAG_PACKET_3.0.2
174 divsd %xmm4, %xmm0
175 pextrw $3, %xmm3, %ecx
176 movsd 2944(%ebx), %xmm2
177 movsd 2960(%ebx), %xmm3
178 pextrw $0, %xmm5, %eax
179 addl %edx, %edx
180 movapd 2688(%ebx,%edx,8), %xmm6
181 movapd 2752(%ebx,%edx,8), %xmm1
182 subl $16286, %ecx
183 notl %eax
184 andl $1, %eax
185 addl %eax, %ecx
186 addl %ecx, %ecx
187 movapd (%ebx,%ecx,8), %xmm5
188 xorpd %xmm1, %xmm5
189 addpd %xmm6, %xmm5
190 movapd %xmm5, %xmm6
191 unpckhpd %xmm5, %xmm5
192 xorpd %xmm0, %xmm1
193 movapd %xmm1, %xmm4
194 mulsd %xmm0, %xmm0
195 mulsd %xmm0, %xmm2
196 addsd %xmm0, %xmm3
197 addsd %xmm6, %xmm1
198 subsd %xmm1, %xmm6
199 addsd %xmm4, %xmm6
200 addsd 2952(%ebx), %xmm2
201 mulsd %xmm0, %xmm3
202 mulsd %xmm0, %xmm4
203 addsd %xmm5, %xmm6
204 mulsd %xmm4, %xmm2
205 addsd 2968(%ebx), %xmm3
206 mulsd %xmm3, %xmm2
207 addsd %xmm6, %xmm2
208 addsd %xmm2, %xmm1
209 movsd %xmm1, (%esp)
210 fldl (%esp)
211 jmp .L_2TAG_PACKET_4.0.2
212.L_2TAG_PACKET_3.0.2:
213 addl $942, %eax
214 cmpl $942, %eax
215 ja .L_2TAG_PACKET_5.0.2
216 xorpd %xmm4, %xmm4
217 movl $16368, %ecx
218 pinsrw $3, %ecx, %xmm4
219 divsd %xmm1, %xmm4
220 addl %edx, %edx
221 movapd 2752(%ebx,%edx,8), %xmm6
222 unpcklpd %xmm3, %xmm3
223 xorpd %xmm6, %xmm0
224 xorpd %xmm6, %xmm2
225 xorpd %xmm6, %xmm3
226 movapd 2816(%ebx,%edx,8), %xmm7
227 movsd 2944(%ebx), %xmm1
228 movsd 2960(%ebx), %xmm5
229 andpd 2880(%ebx,%edx,8), %xmm3
230 mulsd %xmm4, %xmm2
231 mulsd %xmm4, %xmm0
232 movapd %xmm2, %xmm6
233 mulsd %xmm2, %xmm2
234 mulsd %xmm2, %xmm1
235 addsd %xmm2, %xmm5
236 mulsd %xmm2, %xmm6
237 addsd 2952(%ebx), %xmm1
238 mulsd %xmm2, %xmm5
239 addsd %xmm0, %xmm7
240 addpd %xmm3, %xmm7
241 mulsd %xmm6, %xmm1
242 addsd 2968(%ebx), %xmm5
243 mulsd %xmm1, %xmm5
244 addsd %xmm7, %xmm5
245 unpckhpd %xmm7, %xmm7
246 addsd %xmm7, %xmm5
247 movsd %xmm5, (%esp)
248 fldl (%esp)
249 jmp .L_2TAG_PACKET_4.0.2
250.L_2TAG_PACKET_5.0.2:
251 movsd 16(%esp), %xmm1
252 movsd 8(%esp), %xmm0
253 pextrw $3, %xmm1, %eax
254 andl $32752, %eax
255 pextrw $3, %xmm0, %ecx
256 andl $32752, %ecx
257 cmpl %eax, %ecx
258 jg .L_2TAG_PACKET_6.0.2
259 pextrw $3, %xmm1, %ecx
260 cmpl $32767, %ecx
261 jg .L_2TAG_PACKET_7.0.2
262 divsd %xmm1, %xmm0
263 movsd %xmm0, (%esp)
264 fldl (%esp)
265 jmp .L_2TAG_PACKET_4.0.2
266.L_2TAG_PACKET_7.0.2:
267 andpd 2672(%ebx), %xmm0
268 movsd 2640(%ebx), %xmm2
269 xorpd %xmm2, %xmm0
270 movsd %xmm0, (%esp)
271 fldl (%esp)
272 jmp .L_2TAG_PACKET_4.0.2
273.L_2TAG_PACKET_6.0.2:
274 andpd 2672(%ebx), %xmm0
275 movsd 2624(%ebx), %xmm2
276 xorpd %xmm2, %xmm0
277 movsd %xmm0, (%esp)
278 fldl (%esp)
279 jmp .L_2TAG_PACKET_4.0.2
280.L_2TAG_PACKET_0.0.2:
281.L_2TAG_PACKET_1.0.2:
282 pextrw $3, %xmm0, %ecx
283 andl $32752, %ecx
284 pextrw $3, %xmm1, %eax
285 andl $32752, %eax
286 cmpl $32752, %ecx
287 je .L_2TAG_PACKET_8.0.2
288 cmpl $32752, %eax
289 je .L_2TAG_PACKET_9.0.2
290 movsd 2992(%ebx), %xmm3
291 movl $1024, %edx
292 movsd 2976(%ebx), %xmm4
293 xorpd %xmm6, %xmm6
294 movsd 3008(%ebx), %xmm7
295 cmpl $0, %ecx
296 je .L_2TAG_PACKET_10.0.2
297.L_2TAG_PACKET_11.0.2:
298 cmpl $0, %eax
299 je .L_2TAG_PACKET_12.0.2
300.L_2TAG_PACKET_13.0.2:
301 addl %ecx, %edx
302 subl %eax, %edx
303 cmpl $2048, %edx
304 ja .L_2TAG_PACKET_5.0.2
305 addl $15344, %edx
306 pinsrw $3, %edx, %xmm6
307 andpd %xmm4, %xmm0
308 andpd %xmm4, %xmm1
309 orpd %xmm6, %xmm0
310 orpd %xmm7, %xmm1
311 jmp .L_2TAG_PACKET_2.0.2
312.L_2TAG_PACKET_10.0.2:
313 subl $880, %edx
314 mulsd %xmm3, %xmm0
315 pextrw $3, %xmm0, %ecx
316 andl $32752, %ecx
317 cmpl $0, %ecx
318 je .L_2TAG_PACKET_14.0.2
319 jmp .L_2TAG_PACKET_11.0.2
320.L_2TAG_PACKET_12.0.2:
321 addl $880, %edx
322 mulsd %xmm3, %xmm1
323 pextrw $3, %xmm1, %eax
324 andl $32752, %eax
325 cmpl $0, %eax
326 je .L_2TAG_PACKET_15.0.2
327 jmp .L_2TAG_PACKET_13.0.2
328.L_2TAG_PACKET_8.0.2:
329 movd %xmm0, %edx
330 movapd %xmm0, %xmm2
331 psrlq $32, %xmm2
332 movd %xmm2, %ecx
333 andl $1048575, %ecx
334 orl %edx, %ecx
335 cmpl $0, %ecx
336 jne .L_2TAG_PACKET_16.0.2
337 psrlq $63, %xmm0
338 psllq $63, %xmm0
339 cmpl $32752, %eax
340 jae .L_2TAG_PACKET_17.0.2
341 movapd 2624(%ebx), %xmm5
342 pshufd $238, %xmm5, %xmm4
343 addsd %xmm4, %xmm5
344 orpd %xmm5, %xmm0
345.L_2TAG_PACKET_18.0.2:
346 movsd %xmm0, (%esp)
347 fldl (%esp)
348 jmp .L_2TAG_PACKET_4.0.2
349.L_2TAG_PACKET_16.0.2:
350 addsd %xmm1, %xmm0
351 jmp .L_2TAG_PACKET_18.0.2
352.L_2TAG_PACKET_17.0.2:
353 movd %xmm1, %eax
354 movapd %xmm1, %xmm2
355 psrlq $32, %xmm2
356 movd %xmm2, %ecx
357 movl $-2147483648, %edx
358 andl %ecx, %edx
359 andl $1048575, %ecx
360 orl %eax, %ecx
361 cmpl $0, %ecx
362 jne .L_2TAG_PACKET_19.0.2
363 cmpl $0, %edx
364 jne .L_2TAG_PACKET_20.0.2
365 movapd 2656(%ebx), %xmm5
366 pshufd $238, %xmm5, %xmm4
367 addsd %xmm4, %xmm5
368 orpd %xmm5, %xmm0
369 movsd %xmm0, (%esp)
370 fldl (%esp)
371 jmp .L_2TAG_PACKET_4.0.2
372.L_2TAG_PACKET_19.0.2:
373 movapd %xmm1, %xmm0
374 movsd %xmm0, (%esp)
375 fldl (%esp)
376 jmp .L_2TAG_PACKET_4.0.2
377.L_2TAG_PACKET_20.0.2:
378 movapd 2656(%ebx), %xmm5
379 movapd 2624(%ebx), %xmm6
380 addpd %xmm6, %xmm5
381 pshufd $238, %xmm5, %xmm6
382 addpd %xmm6, %xmm5
383 orpd %xmm5, %xmm0
384 movsd %xmm0, (%esp)
385 fldl (%esp)
386 jmp .L_2TAG_PACKET_4.0.2
387.L_2TAG_PACKET_9.0.2:
388 movd %xmm1, %eax
389 movapd %xmm1, %xmm2
390 psrlq $32, %xmm2
391 movd %xmm2, %ecx
392 movl $-2147483648, %edx
393 andl %ecx, %edx
394 andl $1048575, %ecx
395 orl %eax, %ecx
396 cmpl $0, %ecx
397 jne .L_2TAG_PACKET_19.0.2
398 psrlq $63, %xmm0
399 psllq $63, %xmm0
400 cmpl $0, %edx
401 jne .L_2TAG_PACKET_21.0.2
402 movsd %xmm0, (%esp)
403 fldl (%esp)
404 jmp .L_2TAG_PACKET_4.0.2
405.L_2TAG_PACKET_21.0.2:
406 movapd 2640(%ebx), %xmm5
407 pshufd $238, %xmm5, %xmm4
408 addsd %xmm4, %xmm5
409 orpd %xmm5, %xmm0
410 movsd %xmm0, (%esp)
411 fldl (%esp)
412 jmp .L_2TAG_PACKET_4.0.2
413.L_2TAG_PACKET_14.0.2:
414 pextrw $3, %xmm1, %edx
415 andl $32768, %edx
416 cmpl $0, %edx
417 je .L_2TAG_PACKET_22.0.2
418 movapd 2640(%ebx), %xmm5
419 pshufd $238, %xmm5, %xmm4
420 addsd %xmm4, %xmm5
421 comisd %xmm0, %xmm1
422 orpd %xmm5, %xmm0
423 jne .L_2TAG_PACKET_23.0.2
424.L_2TAG_PACKET_24.0.2:
425 movsd %xmm0, (%esp)
426 fldl (%esp)
427 jmp .L_2TAG_PACKET_4.0.2
428.L_2TAG_PACKET_23.0.2:
429 movsd %xmm0, (%esp)
430 fldl (%esp)
431 jmp .L_2TAG_PACKET_4.0.2
432.L_2TAG_PACKET_22.0.2:
433 comisd %xmm0, %xmm1
434 jne .L_2TAG_PACKET_23.0.2
435 je .L_2TAG_PACKET_24.0.2
436.L_2TAG_PACKET_15.0.2:
437 movapd 2624(%ebx), %xmm5
438 psrlq $63, %xmm0
439 psllq $63, %xmm0
440 pshufd $238, %xmm5, %xmm4
441 addsd %xmm4, %xmm5
442 orpd %xmm5, %xmm0
443 movsd %xmm0, (%esp)
444 fldl (%esp)
445.L_2TAG_PACKET_4.0.2:
446 movl 64(%esp), %ebx
447 movl %ebp, %esp
448 popl %ebp
449 ret
450..B2.3:
451END(atan2)
452# -- End atan2
453
454# Start file scope ASM
Christopher Ferris995b8132015-03-13 17:43:52 -0700455ALIAS_SYMBOL(atan2l, atan2);
Jingwei Zhang5d4f0e62014-10-31 18:29:18 +0800456# End file scope ASM
457 .section .rodata, "a"
458 .align 16
459 .align 16
460static_const_table:
461 .long 3390881280
462 .long 1067318733
463 .long 1411116779
464 .long 1018950063
465 .long 2985987840
466 .long 1067384211
467 .long 2088903695
468 .long 1018086027
469 .long 3148445184
470 .long 1067449685
471 .long 2044163806
472 .long 1017271335
473 .long 3667629184
474 .long 1067515494
475 .long 2353092775
476 .long 1019967309
477 .long 1546568832
478 .long 1067580954
479 .long 611991315
480 .long 1017602584
481 .long 3815996800
482 .long 1067646404
483 .long 466038598
484 .long 1019686426
485 .long 4050241920
486 .long 1067711845
487 .long 3265026328
488 .long 1019626952
489 .long 120454912
490 .long 1067777277
491 .long 1542207696
492 .long 1020155608
493 .long 2784639744
494 .long 1067842697
495 .long 3883834623
496 .long 1018602870
497 .long 1328010624
498 .long 1067908107
499 .long 1791097456
500 .long 1019053126
501 .long 2217794048
502 .long 1067973505
503 .long 551619938
504 .long 1018494194
505 .long 3333520000
506 .long 1068038891
507 .long 2390331823
508 .long 1019033022
509 .long 2557052032
510 .long 1068104265
511 .long 2423976108
512 .long 1019728674
513 .long 2067649536
514 .long 1068169626
515 .long 3757397745
516 .long 1018672362
517 .long 4047094784
518 .long 1068234973
519 .long 481613184
520 .long 1019275104
521 .long 2089853184
522 .long 1068300307
523 .long 1733914374
524 .long 1020124677
525 .long 2678003840
526 .long 1068365626
527 .long 1373600282
528 .long 1013935474
529 .long 3706496128
530 .long 1068430930
531 .long 1000610902
532 .long 1019673285
533 .long 3073179008
534 .long 1068496219
535 .long 1497143008
536 .long 1019900342
537 .long 2803716736
538 .long 1068562846
539 .long 1476677416
540 .long 1019444094
541 .long 3204984128
542 .long 1068628077
543 .long 1192335905
544 .long 1018748628
545 .long 831146624
546 .long 1068693273
547 .long 2733586224
548 .long 1018823295
549 .long 243029376
550 .long 1068758431
551 .long 950106081
552 .long 1019046675
553 .long 1735561920
554 .long 1068823549
555 .long 3546440856
556 .long 1020104712
557 .long 1339217792
558 .long 1068888626
559 .long 3028812387
560 .long 1019818321
561 .long 3706342144
562 .long 1068953659
563 .long 3814564029
564 .long 1017763871
565 .long 637726976
566 .long 1069018648
567 .long 3584007699
568 .long 1017976868
569 .long 1148779264
570 .long 1069083589
571 .long 2282532133
572 .long 1019483954
573 .long 1406131392
574 .long 1069148481
575 .long 1547359113
576 .long 1019786342
577 .long 1908875904
578 .long 1069213322
579 .long 1315508410
580 .long 1020009473
581 .long 3194947520
582 .long 1069278110
583 .long 3845393201
584 .long 1015803761
585 .long 1547487744
586 .long 1069342844
587 .long 3863107865
588 .long 1019810104
589 .long 1881061952
590 .long 1069407521
591 .long 4288343548
592 .long 1019687581
593 .long 563086336
594 .long 1069472140
595 .long 2582230241
596 .long 1020099350
597 .long 2594975552
598 .long 1069536698
599 .long 2306443764
600 .long 1019667244
601 .long 3438545024
602 .long 1069606573
603 .long 957455549
604 .long 1015587735
605 .long 4211357472
606 .long 1069670906
607 .long 2611778754
608 .long 1017877214
609 .long 3002835424
610 .long 1069735101
611 .long 235580458
612 .long 1020211685
613 .long 3905315424
614 .long 1069799150
615 .long 3630647617
616 .long 1018736849
617 .long 2849656576
618 .long 1069863047
619 .long 2412165062
620 .long 1019693004
621 .long 507429472
622 .long 1069926785
623 .long 1397750723
624 .long 1018412717
625 .long 2307470272
626 .long 1069990356
627 .long 1796470904
628 .long 1019796181
629 .long 1271814912
630 .long 1070053755
631 .long 189761565
632 .long 1016149115
633 .long 3800538144
634 .long 1070116974
635 .long 2524871582
636 .long 1018263353
637 .long 3916203552
638 .long 1070180008
639 .long 127848658
640 .long 1017672664
641 .long 457192032
642 .long 1070242851
643 .long 4020400938
644 .long 1019823010
645 .long 1385324704
646 .long 1070305495
647 .long 564511179
648 .long 1016079094
649 .long 2322869856
650 .long 1070367935
651 .long 2347103319
652 .long 1018927760
653 .long 3743438624
654 .long 1070430165
655 .long 877973862
656 .long 1019638162
657 .long 2392255552
658 .long 1070492180
659 .long 2432782267
660 .long 1018872629
661 .long 4180443328
662 .long 1070553973
663 .long 3102990015
664 .long 1020093101
665 .long 2547540832
666 .long 1070636485
667 .long 3877738253
668 .long 1017300424
669 .long 2735468912
670 .long 1070697461
671 .long 2446470256
672 .long 1019235378
673 .long 542633792
674 .long 1070757943
675 .long 583606328
676 .long 1018624131
677 .long 923265984
678 .long 1070817911
679 .long 1793926708
680 .long 1019714161
681 .long 918728448
682 .long 1070877348
683 .long 3726463586
684 .long 1019433296
685 .long 2572275008
686 .long 1070936237
687 .long 1845354238
688 .long 1019459238
689 .long 50974688
690 .long 1070994564
691 .long 983808064
692 .long 1016685418
693 .long 1105518320
694 .long 1071052313
695 .long 2357496692
696 .long 1015139882
697 .long 1264825328
698 .long 1071109472
699 .long 2244129354
700 .long 1019046344
701 .long 961157920
702 .long 1071166029
703 .long 3124185339
704 .long 1018541776
705 .long 1162701584
706 .long 1071221973
707 .long 1279780948
708 .long 1019268918
709 .long 3284935664
710 .long 1071277294
711 .long 2670033472
712 .long 1019833744
713 .long 497441888
714 .long 1071331985
715 .long 1032737410
716 .long 1019795212
717 .long 3377383904
718 .long 1071386036
719 .long 2356897182
720 .long 1020205553
721 .long 1126962000
722 .long 1071439443
723 .long 3723724586
724 .long 1015212418
725 .long 90291008
726 .long 1071492199
727 .long 4178672431
728 .long 1020186971
729 .long 190059536
730 .long 1071595741
731 .long 1763589807
732 .long 1019162163
733 .long 2497392840
734 .long 1071670654
735 .long 3036997041
736 .long 1020204325
737 .long 2616971944
738 .long 1071719773
739 .long 300151069
740 .long 1017041957
741 .long 2883518128
742 .long 1071767563
743 .long 2203981414
744 .long 1019190108
745 .long 1496354352
746 .long 1071814030
747 .long 332287966
748 .long 1016846435
749 .long 483276728
750 .long 1071859184
751 .long 653845024
752 .long 1018830914
753 .long 3097401072
754 .long 1071903039
755 .long 1514746408
756 .long 1019278972
757 .long 2737217248
758 .long 1071945615
759 .long 1358845067
760 .long 1017268275
761 .long 2072577560
762 .long 1071986933
763 .long 3041024735
764 .long 1019929672
765 .long 2266405656
766 .long 1072027017
767 .long 1271261130
768 .long 1012925070
769 .long 958652544
770 .long 1072065894
771 .long 2158017058
772 .long 1019955372
773 .long 3312993840
774 .long 1072103591
775 .long 765809169
776 .long 1019114443
777 .long 3177001304
778 .long 1072140139
779 .long 144180084
780 .long 1019822186
781 .long 3071642184
782 .long 1072175568
783 .long 4004602424
784 .long 1019420740
785 .long 4283953648
786 .long 1072209909
787 .long 1511950430
788 .long 1020176966
789 .long 1413754136
790 .long 1072243195
791 .long 856972295
792 .long 1015129638
793 .long 4073202944
794 .long 1072306725
795 .long 4068194804
796 .long 1019714860
797 .long 946117760
798 .long 1072366415
799 .long 694980733
800 .long 1020150135
801 .long 3980632032
802 .long 1072422512
803 .long 1313251280
804 .long 1019948709
805 .long 1468297112
806 .long 1072475260
807 .long 330111143
808 .long 1019809198
809 .long 3478063816
810 .long 1072524887
811 .long 2930067044
812 .long 1017784081
813 .long 1153979856
814 .long 1072571613
815 .long 2225786102
816 .long 1017634481
817 .long 2089828808
818 .long 1072615641
819 .long 474621367
820 .long 1017043414
821 .long 3531732632
822 .long 1072657163
823 .long 2276396220
824 .long 1018757240
825 .long 775214612
826 .long 1072694803
827 .long 3209744818
828 .long 1019963015
829 .long 662307284
830 .long 1072713319
831 .long 1381696763
832 .long 1019763781
833 .long 1192776652
834 .long 1072730830
835 .long 3017932994
836 .long 1015179769
837 .long 744202396
838 .long 1072747407
839 .long 2073854034
840 .long 1019512292
841 .long 8337908
842 .long 1072763115
843 .long 16004448
844 .long 1019599514
845 .long 3589868768
846 .long 1072778013
847 .long 1374369804
848 .long 1018019237
849 .long 121647320
850 .long 1072792159
851 .long 128481634
852 .long 1018115438
853 .long 2464923204
854 .long 1072805601
855 .long 1787331214
856 .long 1016798022
857 .long 4093304372
858 .long 1072830562
859 .long 3306868969
860 .long 1019384078
861 .long 1436891684
862 .long 1072853231
863 .long 676347266
864 .long 1017302183
865 .long 1104571840
866 .long 1072873890
867 .long 2870400285
868 .long 1019938149
869 .long 2037009832
870 .long 1072892781
871 .long 2956702105
872 .long 1016472908
873 .long 3139037960
874 .long 1072910111
875 .long 916057147
876 .long 1018364335
877 .long 1826698064
878 .long 1072926058
879 .long 2171961098
880 .long 1019669816
881 .long 1353941060
882 .long 1072940774
883 .long 1722928782
884 .long 1019926215
885 .long 1803191644
886 .long 1072954391
887 .long 1547878639
888 .long 1020259262
889 .long 1092591296
890 .long 1072967024
891 .long 3070107923
892 .long 1018320401
893 .long 2205372832
894 .long 1072978772
895 .long 787328196
896 .long 1014621351
897 .long 1291577100
898 .long 1072989723
899 .long 2964757301
900 .long 1020242528
901 .long 4234512804
902 .long 1072999952
903 .long 3136030038
904 .long 1017522144
905 .long 3248069132
906 .long 1073009528
907 .long 1506192355
908 .long 1018050472
909 .long 3932628500
910 .long 1073018509
911 .long 1045823554
912 .long 1019946655
913 .long 4195697848
914 .long 1073026948
915 .long 233443322
916 .long 1018917447
917 .long 2501811452
918 .long 1073034892
919 .long 901427976
920 .long 1017333852
921 .long 866379428
922 .long 1073049455
923 .long 2437443742
924 .long 1019678792
925 .long 1376865888
926 .long 1073062480
927 .long 3365790232
928 .long 1014547152
929 .long 3290094268
930 .long 1073074195
931 .long 3898947415
932 .long 1018683566
933 .long 354764884
934 .long 1073084787
935 .long 3854322404
936 .long 1019662058
937 .long 3332975496
938 .long 1073094406
939 .long 3171701655
940 .long 1017830922
941 .long 1141460088
942 .long 1073103181
943 .long 3946082701
944 .long 1020032019
945 .long 745761284
946 .long 1073111216
947 .long 1347210591
948 .long 1019106121
949 .long 1673304508
950 .long 1073118600
951 .long 1760606642
952 .long 1017324577
953 .long 983388240
954 .long 1073125409
955 .long 3740651204
956 .long 1019514104
957 .long 3895509100
958 .long 1073131706
959 .long 2409629983
960 .long 1020069322
961 .long 2128523668
962 .long 1073137548
963 .long 3045605368
964 .long 1018579174
965 .long 2075485692
966 .long 1073142981
967 .long 3720571789
968 .long 1017557436
969 .long 121855976
970 .long 1073148047
971 .long 2391744767
972 .long 1020160645
973 .long 4181733780
974 .long 1073152780
975 .long 995028816
976 .long 1019681295
977 .long 2887813280
978 .long 1073157214
979 .long 218733247
980 .long 1020003509
981 .long 2862180896
982 .long 1073161375
983 .long 2043806490
984 .long 1018602288
985 .long 3909375184
986 .long 1073168973
987 .long 1559903412
988 .long 1020103444
989 .long 3533966292
990 .long 1073175738
991 .long 734884149
992 .long 1018462962
993 .long 3815044608
994 .long 1073181799
995 .long 3630523428
996 .long 1017250093
997 .long 739639376
998 .long 1073187261
999 .long 4167476661
1000 .long 1020008277
1001 .long 1068309648
1002 .long 1073192207
1003 .long 2110061437
1004 .long 1019295858
1005 .long 2350566352
1006 .long 1073196707
1007 .long 582596516
1008 .long 1018568821
1009 .long 2529520024
1010 .long 1073200819
1011 .long 745552787
1012 .long 1019053165
1013 .long 1841667508
1014 .long 1073204591
1015 .long 3982568700
1016 .long 1016503327
1017 .long 2242261080
1018 .long 1073208063
1019 .long 3433582258
1020 .long 1016196763
1021 .long 715134328
1022 .long 1073211270
1023 .long 355901358
1024 .long 1020087916
1025 .long 2700735876
1026 .long 1073214240
1027 .long 3640957736
1028 .long 1019780205
1029 .long 141607580
1030 .long 1073217000
1031 .long 2488245051
1032 .long 1020262395
1033 .long 287934404
1034 .long 1073219570
1035 .long 2392691085
1036 .long 1019883292
1037 .long 2363373988
1038 .long 1073221969
1039 .long 4194561737
1040 .long 1019237447
1041 .long 3829340424
1042 .long 1073224214
1043 .long 429455526
1044 .long 1019490975
1045 .long 1988805928
1046 .long 1073226320
1047 .long 3029848706
1048 .long 1018104889
1049 .long 1647572320
1050 .long 1073230161
1051 .long 10289938
1052 .long 1017394880
1053 .long 3988000624
1054 .long 1073233576
1055 .long 1957559169
1056 .long 1019434816
1057 .long 4263843944
1058 .long 1073236633
1059 .long 204710264
1060 .long 1019908761
1061 .long 663197724
1062 .long 1073239386
1063 .long 1921757578
1064 .long 1019778948
1065 .long 3560800700
1066 .long 1073241876
1067 .long 3994348896
1068 .long 1019230192
1069 .long 2441785656
1070 .long 1073244141
1071 .long 871468611
1072 .long 1014800505
1073 .long 3277400272
1074 .long 1073246209
1075 .long 4092218139
1076 .long 1020040842
1077 .long 3951990120
1078 .long 1073248105
1079 .long 4276546478
1080 .long 1019763677
1081 .long 2737338540
1082 .long 1073249850
1083 .long 252776012
1084 .long 1018794951
1085 .long 1511361316
1086 .long 1073251461
1087 .long 3119653999
1088 .long 1018514803
1089 .long 3969162516
1090 .long 1073252952
1091 .long 1037069016
1092 .long 1016792900
1093 .long 413985240
1094 .long 1073254338
1095 .long 4110171432
1096 .long 1020001345
1097 .long 3681283576
1098 .long 1073255627
1099 .long 1463092818
1100 .long 1020260354
1101 .long 3146455488
1102 .long 1073256831
1103 .long 1031209123
1104 .long 1016554799
1105 .long 95214512
1106 .long 1073257958
1107 .long 1373808632
1108 .long 1019493031
1109 .long 4250240828
1110 .long 1073259013
1111 .long 3891047882
1112 .long 1020108730
1113 .long 1413754136
1114 .long 1073291771
1115 .long 856972295
1116 .long 1016178214
1117 .long 1413754136
1118 .long 1073291771
1119 .long 856972295
1120 .long 1016178214
1121 .long 1413754136
1122 .long 1074340347
1123 .long 856972295
1124 .long 1017226790
1125 .long 1413754136
1126 .long 1072243195
1127 .long 856972295
1128 .long 1015129638
1129 .long 0
1130 .long 2147483648
1131 .long 0
1132 .long 2147483648
1133 .long 0
1134 .long 0
1135 .long 0
1136 .long 0
1137 .long 0
1138 .long 0
1139 .long 0
1140 .long 0
1141 .long 1413754136
1142 .long 1074340347
1143 .long 856972295
1144 .long 1017226790
1145 .long 1413754136
1146 .long 3221823995
1147 .long 856972295
1148 .long 3164710438
1149 .long 0
1150 .long 0
1151 .long 0
1152 .long 0
1153 .long 0
1154 .long 2147483648
1155 .long 0
1156 .long 2147483648
1157 .long 0
1158 .long 2147483648
1159 .long 0
1160 .long 2147483648
1161 .long 0
1162 .long 0
1163 .long 0
1164 .long 0
1165 .long 0
1166 .long 0
1167 .long 0
1168 .long 0
1169 .long 0
1170 .long 0
1171 .long 0
1172 .long 0
1173 .long 856972295
1174 .long 1017226790
1175 .long 1413754136
1176 .long 1074340347
1177 .long 856972295
1178 .long 3164710438
1179 .long 1413754136
1180 .long 3221823995
1181 .long 0
1182 .long 0
1183 .long 4294967295
1184 .long 4294967295
1185 .long 0
1186 .long 0
1187 .long 4294967295
1188 .long 4294967295
1189 .long 4294967295
1190 .long 4294967295
1191 .long 0
1192 .long 0
1193 .long 4294967295
1194 .long 4294967295
1195 .long 0
1196 .long 0
1197 .long 2006262985
1198 .long 1069310863
1199 .long 2358449471
1200 .long 3217342131
1201 .long 3845454352
1202 .long 1069952297
1203 .long 2829679149
1204 .long 1073771565
1205 .long 4294967295
1206 .long 2148532223
1207 .long 0
1208 .long 0
1209 .long 0
1210 .long 1130364928
1211 .long 0
1212 .long 0
1213 .long 0
1214 .long 1072693248
1215 .long 0
1216 .long 0
1217 .type static_const_table,@object
1218 .size static_const_table,3024
1219 .data
1220 .section .note.GNU-stack, ""
1221# End