blob: 3975fa937150f7f2881639159054ea9bdfd9ab4b [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// tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))=(1-exp(-2*x))/(1+exp(-2*x))
36//
37// Let |x|=xH+xL (upper 26 bits, lower 27 bits)
38// log2(e) rounded to 26 bits (high part) plus a double precision low part is
39// L2EH+L2EL (upper 26, lower 53 bits)
40//
41// Let xH*L2EH=k+f+r`, where (k+f)*2^8*2=int(xH*L2EH*2^9),
42// f=0.b1 b2 ... b8, k integer
43// 2^{-f} is approximated as Tn[f]+Dn[f]
44// Tn stores the high 53 bits, Dn stores (2^{-f}-Tn[f]) rounded to double precision
45//
46// r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-9}+2^{-14},
47// for |x| in [23/64,3*2^7)
48// e^{-2*|x|}=2^{-k-f}*2^{-r} ~ 2^{-k}*(Tn+Dn)*(1+p)=(T0+D0)*(1+p)
49//
50// For |x| in [2^{-4},2^5):
51// 2^{-r}-1 ~ p=c1*r+c2*r^2+..+c5*r^5
52// Let R=1/(1+T0+p*T0), truncated to 35 significant bits
53// R=1/(1+T0+D0+p*(T0+D0))*(1+eps), |eps|<2^{-33}
54// 1+T0+D0+p*(T0+D0)=KH+KL, where
55// KH=(1+T0+c1*r*T0)_high (leading 17 bits)
56// KL=T0_low+D0+(c1*r*T0)_low+c1*r*D0+(c2*r^2+..c5*r^5)*T0
57// eps ~ (R*KH-1)+R*KL
58// 1/(1+T0+D0+p*(T0+D0)) ~ R-R*eps
59// The result is approximated as (1-T0-D0-(T0+D0)*p)*(R-R*eps)
60// 1-T0-D0-(T0+D0)*p=-((KH-2)+KL)
61// The result is formed as
62// (KH-2)*R+(-(KH-2)*R*eps+(KL*R-KL*R*eps)), with the correct sign
63// set at the end
64//
65// For |x| in [2^{-64},2^{-4}):
66// A Taylor series expansion is used (x+p3*x^3+..+p13*x^{13})
67//
68// For |x|<2^{-64}: x is returned
69//
70// For |x|>=2^32: return +/-1
71//
72// Special cases:
73// tanh(NaN) = quiet NaN, and raise invalid exception
74// tanh(INF) = that INF
75// tanh(+/-0) = +/-0
76//
77/******************************************************************************/
78
79#include <private/bionic_asm.h>
80# -- Begin static_func
81 .text
82 .align __bionic_asm_align
83 .type static_func, @function
84static_func:
85..B1.1:
86 call ..L2
87..L2:
88 popl %eax
89 lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
90 lea static_const_table@GOTOFF(%eax), %eax
91 ret
92 .size static_func,.-static_func
93# -- End static_func
94
95# -- Begin tanh
96ENTRY(tanh)
97# parameter 1: 8 + %ebp
98..B2.1:
99..B2.2:
100 pushl %ebp
101 movl %esp, %ebp
102 subl $104, %esp
103 movl %ebx, 40(%esp)
104 call static_func
105 movl %eax, %ebx
106 movsd 112(%esp), %xmm0
107 movsd 4256(%ebx), %xmm3
108 xorpd %xmm4, %xmm4
109 movsd 4112(%ebx), %xmm1
110 movsd 4120(%ebx), %xmm2
111 movl $32768, %eax
112 pinsrw $3, %eax, %xmm4
113 movsd 4096(%ebx), %xmm6
114 pextrw $3, %xmm0, %ecx
115 andpd %xmm0, %xmm3
116 andnpd %xmm0, %xmm4
117 pshufd $68, %xmm4, %xmm5
118 movl $32768, %edx
119 andl %ecx, %edx
120 andl $32767, %ecx
121 subl $16304, %ecx
122 cmpl $144, %ecx
123 jae .L_2TAG_PACKET_0.0.2
124 subsd %xmm3, %xmm4
125 mulsd %xmm1, %xmm3
126 mulsd %xmm5, %xmm2
127 cvtsd2si %xmm3, %eax
128 movapd %xmm3, %xmm7
129 addsd %xmm6, %xmm3
130 mulsd %xmm4, %xmm1
131 movsd 4264(%ebx), %xmm4
132 subsd %xmm6, %xmm3
133 xorpd %xmm0, %xmm0
134 addsd %xmm1, %xmm2
135 subsd %xmm3, %xmm7
136 movapd 4128(%ebx), %xmm6
137 addsd %xmm7, %xmm2
138 movl $255, %ecx
139 andl %eax, %ecx
140 addl %ecx, %ecx
141 movapd (%ebx,%ecx,8), %xmm5
142 shrl $4, %eax
143 andl $65520, %eax
144 subl $16368, %eax
145 negl %eax
146 pinsrw $3, %eax, %xmm0
147 movapd 4144(%ebx), %xmm1
148 pshufd $68, %xmm0, %xmm0
149 mulpd %xmm5, %xmm0
150 movsd 4160(%ebx), %xmm7
151 pshufd $68, %xmm2, %xmm2
152 movapd %xmm4, %xmm5
153 addsd %xmm0, %xmm4
154 mulpd %xmm2, %xmm6
155 mulsd %xmm2, %xmm7
156 mulpd %xmm2, %xmm2
157 addpd %xmm6, %xmm1
158 mulsd %xmm2, %xmm2
159 movsd 4264(%ebx), %xmm3
160 mulpd %xmm2, %xmm1
161 pshufd $78, %xmm1, %xmm6
162 addsd %xmm6, %xmm1
163 movapd %xmm1, %xmm6
164 addsd %xmm7, %xmm1
165 mulsd %xmm0, %xmm1
166 addsd %xmm4, %xmm1
167 andpd 4224(%ebx), %xmm4
168 divsd %xmm1, %xmm5
169 subsd %xmm4, %xmm3
170 pshufd $238, %xmm0, %xmm1
171 addsd %xmm0, %xmm3
172 movapd %xmm4, %xmm2
173 addsd %xmm1, %xmm3
174 mulsd %xmm7, %xmm1
175 mulsd %xmm0, %xmm7
176 addsd %xmm1, %xmm3
177 addsd %xmm7, %xmm4
178 movsd 4240(%ebx), %xmm1
179 mulsd %xmm0, %xmm6
180 andpd 4224(%ebx), %xmm4
181 addsd %xmm6, %xmm3
182 movapd %xmm4, %xmm6
183 subsd %xmm4, %xmm2
184 addsd %xmm7, %xmm2
185 movsd 4264(%ebx), %xmm7
186 andpd %xmm1, %xmm5
187 addsd %xmm2, %xmm3
188 mulsd %xmm5, %xmm4
189 xorpd %xmm2, %xmm2
190 mulsd %xmm5, %xmm3
191 subsd 4272(%ebx), %xmm6
192 subsd %xmm7, %xmm4
193 xorl $32768, %edx
194 pinsrw $3, %edx, %xmm2
195 addsd %xmm3, %xmm4
196 mulsd %xmm5, %xmm6
197 movapd %xmm3, %xmm1
198 mulsd %xmm4, %xmm3
199 movapd %xmm6, %xmm0
200 mulsd %xmm4, %xmm6
201 subsd %xmm3, %xmm1
202 subsd %xmm6, %xmm1
203 addsd %xmm1, %xmm0
204 xorpd %xmm2, %xmm0
205 jmp .L_2TAG_PACKET_1.0.2
206.L_2TAG_PACKET_0.0.2:
207 addl $960, %ecx
208 cmpl $1104, %ecx
209 jae .L_2TAG_PACKET_2.0.2
210 movapd 4176(%ebx), %xmm2
211 pshufd $68, %xmm0, %xmm1
212 movapd 4192(%ebx), %xmm3
213 mulpd %xmm1, %xmm1
214 movapd 4208(%ebx), %xmm4
215 mulpd %xmm1, %xmm2
216 pshufd $68, %xmm1, %xmm5
217 addpd %xmm3, %xmm2
218 mulsd %xmm5, %xmm5
219 mulpd %xmm1, %xmm2
220 mulsd %xmm5, %xmm5
221 addpd %xmm4, %xmm2
222 mulpd %xmm5, %xmm2
223 pshufd $238, %xmm2, %xmm5
224 addsd %xmm5, %xmm2
225 mulsd %xmm0, %xmm2
226 addsd %xmm2, %xmm0
227 jmp .L_2TAG_PACKET_1.0.2
228.L_2TAG_PACKET_2.0.2:
229 addl $15344, %ecx
230 cmpl $16448, %ecx
231 jae .L_2TAG_PACKET_3.0.2
232 cmpl $16, %ecx
233 jb .L_2TAG_PACKET_4.0.2
234 xorpd %xmm2, %xmm2
235 movl $17392, %eax
236 pinsrw $3, %eax, %xmm2
237 mulsd %xmm0, %xmm2
238 addsd %xmm0, %xmm2
239 jmp .L_2TAG_PACKET_1.0.2
240.L_2TAG_PACKET_4.0.2:
241 movapd %xmm0, %xmm2
242 mulsd %xmm2, %xmm2
243 jmp .L_2TAG_PACKET_1.0.2
244.L_2TAG_PACKET_3.0.2:
245 cmpl $32752, %ecx
246 jae .L_2TAG_PACKET_5.0.2
247 xorpd %xmm2, %xmm2
248 movl $15344, %ecx
249 pinsrw $3, %ecx, %xmm2
250 movapd %xmm2, %xmm3
251 mulsd %xmm2, %xmm2
252 addsd %xmm3, %xmm2
253.L_2TAG_PACKET_6.0.2:
254 xorpd %xmm0, %xmm0
255 orl $16368, %edx
256 pinsrw $3, %edx, %xmm0
257 jmp .L_2TAG_PACKET_1.0.2
258.L_2TAG_PACKET_5.0.2:
259 movapd %xmm0, %xmm2
260 movd %xmm0, %eax
261 psrlq $20, %xmm2
262 movd %xmm2, %ecx
263 orl %eax, %ecx
264 cmpl $0, %ecx
265 je .L_2TAG_PACKET_6.0.2
266 addsd %xmm0, %xmm0
267 jmp .L_2TAG_PACKET_1.0.2
268.L_2TAG_PACKET_1.0.2:
269 movsd %xmm0, 24(%esp)
270 fldl 24(%esp)
271.L_2TAG_PACKET_7.0.2:
272 movl 40(%esp), %ebx
273 movl %ebp, %esp
274 popl %ebp
275 ret
276..B2.3:
277END(tanh)
278# -- End tanh
279
280# Start file scope ASM
281.weak tanhl
282.equ tanhl, tanh
283# End file scope ASM
284 .section .rodata, "a"
285 .align 16
286 .align 16
287static_const_table:
288 .long 0
289 .long 1072693248
290 .long 0
291 .long 0
292 .long 1797923801
293 .long 1072687577
294 .long 1950547427
295 .long 1013229059
296 .long 730821105
297 .long 1072681922
298 .long 2523232743
299 .long 1012067188
300 .long 915592468
301 .long 1072676282
302 .long 352947894
303 .long 3161024371
304 .long 2174652632
305 .long 1072670657
306 .long 4087714590
307 .long 1014450259
308 .long 35929225
309 .long 1072665048
310 .long 2809788041
311 .long 3159436968
312 .long 2912730644
313 .long 1072659453
314 .long 3490067722
315 .long 3163405074
316 .long 2038973688
317 .long 1072653874
318 .long 892941374
319 .long 1016046459
320 .long 1533953344
321 .long 1072648310
322 .long 769171851
323 .long 1015665633
324 .long 1222472308
325 .long 1072642761
326 .long 1054357470
327 .long 3161021018
328 .long 929806999
329 .long 1072637227
330 .long 3205336643
331 .long 1015259557
332 .long 481706282
333 .long 1072631708
334 .long 1696079173
335 .long 3162710528
336 .long 3999357479
337 .long 1072626203
338 .long 2258941616
339 .long 1015924724
340 .long 2719515920
341 .long 1072620714
342 .long 2760332941
343 .long 1015137933
344 .long 764307441
345 .long 1072615240
346 .long 3021057420
347 .long 3163329523
348 .long 2256325230
349 .long 1072609780
350 .long 580117746
351 .long 1015317295
352 .long 2728693978
353 .long 1072604335
354 .long 396109971
355 .long 3163462691
356 .long 2009970496
357 .long 1072598905
358 .long 2159039665
359 .long 3162572948
360 .long 4224142467
361 .long 1072593489
362 .long 3389820386
363 .long 1015207202
364 .long 610758006
365 .long 1072588089
366 .long 1965209397
367 .long 3161866232
368 .long 3884662774
369 .long 1072582702
370 .long 2158611599
371 .long 1014210185
372 .long 991358482
373 .long 1072577331
374 .long 838715019
375 .long 3163157668
376 .long 351641897
377 .long 1072571974
378 .long 2172261526
379 .long 3163010599
380 .long 1796832535
381 .long 1072566631
382 .long 3176955716
383 .long 3160585513
384 .long 863738719
385 .long 1072561303
386 .long 1326992220
387 .long 3162613197
388 .long 1679558232
389 .long 1072555989
390 .long 2390342287
391 .long 3163333970
392 .long 4076975200
393 .long 1072550689
394 .long 2029000899
395 .long 1015208535
396 .long 3594158869
397 .long 1072545404
398 .long 2456521700
399 .long 3163256561
400 .long 64696965
401 .long 1072540134
402 .long 1768797490
403 .long 1015816960
404 .long 1912561781
405 .long 1072534877
406 .long 3147495102
407 .long 1015678253
408 .long 382305176
409 .long 1072529635
410 .long 2347622376
411 .long 3162578625
412 .long 3898795731
413 .long 1072524406
414 .long 1249994144
415 .long 1011869818
416 .long 3707479175
417 .long 1072519192
418 .long 3613079303
419 .long 1014164738
420 .long 3939148246
421 .long 1072513992
422 .long 3210352148
423 .long 1015274323
424 .long 135105010
425 .long 1072508807
426 .long 1906148728
427 .long 3163375739
428 .long 721996136
429 .long 1072503635
430 .long 563754734
431 .long 1015371318
432 .long 1242007932
433 .long 1072498477
434 .long 1132034716
435 .long 3163339831
436 .long 1532734324
437 .long 1072493333
438 .long 3094216535
439 .long 3163162857
440 .long 1432208378
441 .long 1072488203
442 .long 1401068914
443 .long 3162363963
444 .long 778901109
445 .long 1072483087
446 .long 2248183955
447 .long 3161268751
448 .long 3706687593
449 .long 1072477984
450 .long 3521726940
451 .long 1013253067
452 .long 1464976603
453 .long 1072472896
454 .long 3507292405
455 .long 3161977534
456 .long 2483480501
457 .long 1072467821
458 .long 1216371780
459 .long 1013034172
460 .long 2307442995
461 .long 1072462760
462 .long 3190117721
463 .long 3162404539
464 .long 777507147
465 .long 1072457713
466 .long 4282924205
467 .long 1015187533
468 .long 2029714210
469 .long 1072452679
470 .long 613660079
471 .long 1015099143
472 .long 1610600570
473 .long 1072447659
474 .long 3766732298
475 .long 1015760183
476 .long 3657065772
477 .long 1072442652
478 .long 399025623
479 .long 3162957078
480 .long 3716502172
481 .long 1072437659
482 .long 2303740125
483 .long 1014042725
484 .long 1631695677
485 .long 1072432680
486 .long 2717633076
487 .long 3162344026
488 .long 1540824585
489 .long 1072427714
490 .long 1064017011
491 .long 3163487690
492 .long 3287523847
493 .long 1072422761
494 .long 1625971539
495 .long 3157009955
496 .long 2420883922
497 .long 1072417822
498 .long 2049810052
499 .long 1014119888
500 .long 3080351519
501 .long 1072412896
502 .long 3379126788
503 .long 3157218001
504 .long 815859274
505 .long 1072407984
506 .long 240396590
507 .long 3163487443
508 .long 4062661092
509 .long 1072403084
510 .long 1422616006
511 .long 3163255318
512 .long 4076559943
513 .long 1072398198
514 .long 2119478331
515 .long 3160758351
516 .long 703710506
517 .long 1072393326
518 .long 1384660846
519 .long 1015195891
520 .long 2380618042
521 .long 1072388466
522 .long 3149557219
523 .long 3163320799
524 .long 364333489
525 .long 1072383620
526 .long 3923737744
527 .long 3161421373
528 .long 3092190715
529 .long 1072378786
530 .long 814012168
531 .long 3159523422
532 .long 1822067026
533 .long 1072373966
534 .long 1241994956
535 .long 1015340290
536 .long 697153126
537 .long 1072369159
538 .long 1283515429
539 .long 3163283189
540 .long 3861050111
541 .long 1072364364
542 .long 254893773
543 .long 3162813180
544 .long 2572866477
545 .long 1072359583
546 .long 878562433
547 .long 1015521741
548 .long 977020788
549 .long 1072354815
550 .long 3065100517
551 .long 1015541563
552 .long 3218338682
553 .long 1072350059
554 .long 3404164304
555 .long 3162477108
556 .long 557149882
557 .long 1072345317
558 .long 3672720709
559 .long 1014537265
560 .long 1434058175
561 .long 1072340587
562 .long 251133233
563 .long 1015085769
564 .long 1405169241
565 .long 1072335870
566 .long 2998539689
567 .long 3162830951
568 .long 321958744
569 .long 1072331166
570 .long 3401933767
571 .long 1015794558
572 .long 2331271250
573 .long 1072326474
574 .long 812057446
575 .long 1012207446
576 .long 2990417245
577 .long 1072321795
578 .long 3683467745
579 .long 3163369326
580 .long 2152073944
581 .long 1072317129
582 .long 1486860576
583 .long 3163203456
584 .long 3964284211
585 .long 1072312475
586 .long 2111583915
587 .long 1015427164
588 .long 3985553595
589 .long 1072307834
590 .long 4002146062
591 .long 1015834136
592 .long 2069751141
593 .long 1072303206
594 .long 1562170675
595 .long 3162724681
596 .long 2366108318
597 .long 1072298590
598 .long 2867985102
599 .long 3161762254
600 .long 434316067
601 .long 1072293987
602 .long 2028358766
603 .long 1013458122
604 .long 424392917
605 .long 1072289396
606 .long 2749202995
607 .long 3162838718
608 .long 2191782032
609 .long 1072284817
610 .long 2960257726
611 .long 1013742662
612 .long 1297350157
613 .long 1072280251
614 .long 1308022040
615 .long 3163412558
616 .long 1892288442
617 .long 1072275697
618 .long 2446255666
619 .long 3162600381
620 .long 3833209506
621 .long 1072271155
622 .long 2722920684
623 .long 1013754842
624 .long 2682146384
625 .long 1072266626
626 .long 2082178513
627 .long 3163363419
628 .long 2591453363
629 .long 1072262109
630 .long 2132396182
631 .long 3159074198
632 .long 3418903055
633 .long 1072257604
634 .long 2527457337
635 .long 3160820604
636 .long 727685349
637 .long 1072253112
638 .long 2038246809
639 .long 3162358742
640 .long 2966275557
641 .long 1072248631
642 .long 2176155324
643 .long 3159842759
644 .long 1403662306
645 .long 1072244163
646 .long 2788809599
647 .long 3161671007
648 .long 194117574
649 .long 1072239707
650 .long 777528612
651 .long 3163412089
652 .long 3492293770
653 .long 1072235262
654 .long 2248032210
655 .long 1015386826
656 .long 2568320822
657 .long 1072230830
658 .long 2732824428
659 .long 1014352915
660 .long 1577608921
661 .long 1072226410
662 .long 1875489510
663 .long 3162968394
664 .long 380978316
665 .long 1072222002
666 .long 854188970
667 .long 3160462686
668 .long 3134592888
669 .long 1072217605
670 .long 4232266862
671 .long 1015991134
672 .long 1110089947
673 .long 1072213221
674 .long 1451641639
675 .long 1015474673
676 .long 2759350287
677 .long 1072208848
678 .long 1148526634
679 .long 1015894933
680 .long 3649726105
681 .long 1072204487
682 .long 4085036346
683 .long 1015649474
684 .long 3643909174
685 .long 1072200138
686 .long 3537586109
687 .long 1014354647
688 .long 2604962541
689 .long 1072195801
690 .long 2614425274
691 .long 3163539192
692 .long 396319521
693 .long 1072191476
694 .long 4172420816
695 .long 3159074632
696 .long 1176749997
697 .long 1072187162
698 .long 2738998779
699 .long 3162035844
700 .long 515457527
701 .long 1072182860
702 .long 836709333
703 .long 1015651226
704 .long 2571947539
705 .long 1072178569
706 .long 3558159064
707 .long 3163376669
708 .long 2916157145
709 .long 1072174290
710 .long 219487565
711 .long 1015309367
712 .long 1413356050
713 .long 1072170023
714 .long 1651349291
715 .long 3162668166
716 .long 2224145553
717 .long 1072165767
718 .long 3482522030
719 .long 3161489169
720 .long 919555682
721 .long 1072161523
722 .long 3121969534
723 .long 1012948226
724 .long 1660913392
725 .long 1072157290
726 .long 4218599604
727 .long 1015135707
728 .long 19972402
729 .long 1072153069
730 .long 3507899862
731 .long 1016009292
732 .long 158781403
733 .long 1072148859
734 .long 2221464712
735 .long 3163286453
736 .long 1944781191
737 .long 1072144660
738 .long 3993278767
739 .long 3161724279
740 .long 950803702
741 .long 1072140473
742 .long 1655364926
743 .long 1015237032
744 .long 1339972927
745 .long 1072136297
746 .long 167908909
747 .long 1015572152
748 .long 2980802057
749 .long 1072132132
750 .long 378619896
751 .long 1015773303
752 .long 1447192521
753 .long 1072127979
754 .long 1462857171
755 .long 3162514521
756 .long 903334909
757 .long 1072123837
758 .long 1636462108
759 .long 1015039997
760 .long 1218806132
761 .long 1072119706
762 .long 1818613052
763 .long 3162548441
764 .long 2263535754
765 .long 1072115586
766 .long 752233586
767 .long 3162639008
768 .long 3907805044
769 .long 1072111477
770 .long 2257091225
771 .long 3161550407
772 .long 1727278727
773 .long 1072107380
774 .long 3562710623
775 .long 1011471940
776 .long 4182873220
777 .long 1072103293
778 .long 629542646
779 .long 3161996303
780 .long 2555984613
781 .long 1072099218
782 .long 2652555442
783 .long 3162552692
784 .long 1013258799
785 .long 1072095154
786 .long 1748797611
787 .long 3160129082
788 .long 3721688645
789 .long 1072091100
790 .long 3069276937
791 .long 1015839401
792 .long 1963711167
793 .long 1072087058
794 .long 1744767757
795 .long 3160574294
796 .long 4201977662
797 .long 1072083026
798 .long 748330254
799 .long 1013594357
800 .long 1719614413
801 .long 1072079006
802 .long 330458198
803 .long 3163282740
804 .long 2979960120
805 .long 1072074996
806 .long 2599109725
807 .long 1014498493
808 .long 3561793907
809 .long 1072070997
810 .long 1157054053
811 .long 1011890350
812 .long 3339203574
813 .long 1072067009
814 .long 1483497780
815 .long 3162408754
816 .long 2186617381
817 .long 1072063032
818 .long 2270764084
819 .long 3163272713
820 .long 4273770423
821 .long 1072059065
822 .long 3383180809
823 .long 3163218901
824 .long 885834528
825 .long 1072055110
826 .long 1973258547
827 .long 3162261564
828 .long 488188413
829 .long 1072051165
830 .long 3199821029
831 .long 1015564048
832 .long 2956612997
833 .long 1072047230
834 .long 2118169751
835 .long 3162735553
836 .long 3872257780
837 .long 1072043306
838 .long 1253592103
839 .long 1015958334
840 .long 3111574537
841 .long 1072039393
842 .long 2606161479
843 .long 3162759746
844 .long 551349105
845 .long 1072035491
846 .long 3821916050
847 .long 3162106589
848 .long 363667784
849 .long 1072031599
850 .long 813753950
851 .long 1015785209
852 .long 2425981843
853 .long 1072027717
854 .long 2830390851
855 .long 3163346599
856 .long 2321106615
857 .long 1072023846
858 .long 2171176610
859 .long 1009535771
860 .long 4222122499
861 .long 1072019985
862 .long 1277378074
863 .long 3163256737
864 .long 3712504873
865 .long 1072016135
866 .long 88491949
867 .long 1015427660
868 .long 671025100
869 .long 1072012296
870 .long 3832014351
871 .long 3163022030
872 .long 3566716925
873 .long 1072008466
874 .long 1536826856
875 .long 1014142433
876 .long 3689071823
877 .long 1072004647
878 .long 2321004996
879 .long 3162552716
880 .long 917841882
881 .long 1072000839
882 .long 18715565
883 .long 1015659308
884 .long 3723038930
885 .long 1071997040
886 .long 378465264
887 .long 3162569582
888 .long 3395129871
889 .long 1071993252
890 .long 4025345435
891 .long 3162335388
892 .long 4109806887
893 .long 1071989474
894 .long 422403966
895 .long 1014469229
896 .long 1453150082
897 .long 1071985707
898 .long 498154669
899 .long 3161488062
900 .long 3896463087
901 .long 1071981949
902 .long 1139797873
903 .long 3161233805
904 .long 2731501122
905 .long 1071978202
906 .long 1774031855
907 .long 3162470021
908 .long 2135241198
909 .long 1071974465
910 .long 1236747871
911 .long 1013589147
912 .long 1990012071
913 .long 1071970738
914 .long 3529070563
915 .long 3162813193
916 .long 2178460671
917 .long 1071967021
918 .long 777878098
919 .long 3162842493
920 .long 2583551245
921 .long 1071963314
922 .long 3161094195
923 .long 1015606491
924 .long 3088564500
925 .long 1071959617
926 .long 1762311517
927 .long 1015045673
928 .long 3577096743
929 .long 1071955930
930 .long 2951496418
931 .long 1013793687
932 .long 3933059031
933 .long 1071952253
934 .long 2133366768
935 .long 3161531832
936 .long 4040676318
937 .long 1071948586
938 .long 4090609238
939 .long 1015663458
940 .long 3784486610
941 .long 1071944929
942 .long 1581883040
943 .long 3161698953
944 .long 3049340112
945 .long 1071941282
946 .long 3062915824
947 .long 1013170595
948 .long 1720398391
949 .long 1071937645
950 .long 3980678963
951 .long 3163300080
952 .long 3978100823
953 .long 1071934017
954 .long 3513027190
955 .long 1015845963
956 .long 1118294578
957 .long 1071930400
958 .long 2197495694
959 .long 3159909401
960 .long 1617004845
961 .long 1071926792
962 .long 82804944
963 .long 1010342778
964 .long 1065662932
965 .long 1071923194
966 .long 2533670915
967 .long 1014530238
968 .long 3645941911
969 .long 1071919605
970 .long 3814685081
971 .long 3161573341
972 .long 654919306
973 .long 1071916027
974 .long 3232961757
975 .long 3163047469
976 .long 569847338
977 .long 1071912458
978 .long 472945272
979 .long 3159290729
980 .long 3278348324
981 .long 1071908898
982 .long 3069497416
983 .long 1014750712
984 .long 78413852
985 .long 1071905349
986 .long 4183226867
987 .long 3163017251
988 .long 3743175029
989 .long 1071901808
990 .long 2072812490
991 .long 3162175075
992 .long 1276261410
993 .long 1071898278
994 .long 300981948
995 .long 1014684169
996 .long 1156440435
997 .long 1071894757
998 .long 2351451249
999 .long 1013967056
1000 .long 3272845541
1001 .long 1071891245
1002 .long 928852419
1003 .long 3163488248
1004 .long 3219942644
1005 .long 1071887743
1006 .long 3798990616
1007 .long 1015368806
1008 .long 887463927
1009 .long 1071884251
1010 .long 3596744163
1011 .long 3160794166
1012 .long 460407023
1013 .long 1071880768
1014 .long 4237175092
1015 .long 3163138469
1016 .long 1829099622
1017 .long 1071877294
1018 .long 1016661181
1019 .long 3163461005
1020 .long 589198666
1021 .long 1071873830
1022 .long 2664346172
1023 .long 3163157962
1024 .long 926591435
1025 .long 1071870375
1026 .long 3208833762
1027 .long 3162913514
1028 .long 2732492859
1029 .long 1071866929
1030 .long 2691479646
1031 .long 3162255684
1032 .long 1603444721
1033 .long 1071863493
1034 .long 1548633640
1035 .long 3162201326
1036 .long 1726216749
1037 .long 1071860066
1038 .long 2466808228
1039 .long 3161676405
1040 .long 2992903935
1041 .long 1071856648
1042 .long 2218154406
1043 .long 1015228193
1044 .long 1000925746
1045 .long 1071853240
1046 .long 1018491672
1047 .long 3163309544
1048 .long 4232894513
1049 .long 1071849840
1050 .long 2383938684
1051 .long 1014668519
1052 .long 3991843581
1053 .long 1071846450
1054 .long 4092853457
1055 .long 1014585763
1056 .long 171030293
1057 .long 1071843070
1058 .long 3526460132
1059 .long 1014428778
1060 .long 1253935211
1061 .long 1071839698
1062 .long 1395382931
1063 .long 3159702613
1064 .long 2839424854
1065 .long 1071836335
1066 .long 1171596163
1067 .long 1013041679
1068 .long 526652809
1069 .long 1071832982
1070 .long 4223459736
1071 .long 1015879375
1072 .long 2799960843
1073 .long 1071829637
1074 .long 1423655381
1075 .long 1015022151
1076 .long 964107055
1077 .long 1071826302
1078 .long 2800439588
1079 .long 3162833221
1080 .long 3504003472
1081 .long 1071822975
1082 .long 3594001060
1083 .long 3157330652
1084 .long 1724976915
1085 .long 1071819658
1086 .long 420909223
1087 .long 3163117379
1088 .long 4112506593
1089 .long 1071816349
1090 .long 2947355221
1091 .long 1014371048
1092 .long 1972484976
1093 .long 1071813050
1094 .long 675290301
1095 .long 3161640050
1096 .long 3790955393
1097 .long 1071809759
1098 .long 2352942462
1099 .long 3163180090
1100 .long 874372905
1101 .long 1071806478
1102 .long 100263788
1103 .long 1015940732
1104 .long 1709341917
1105 .long 1071803205
1106 .long 2571168217
1107 .long 1014152499
1108 .long 1897844341
1109 .long 1071799941
1110 .long 1254300460
1111 .long 1015275938
1112 .long 1337108031
1113 .long 1071796686
1114 .long 3203724452
1115 .long 1014677845
1116 .long 4219606026
1117 .long 1071793439
1118 .long 2434574742
1119 .long 1014681548
1120 .long 1853186616
1121 .long 1071790202
1122 .long 3066496371
1123 .long 1015656574
1124 .long 2725843665
1125 .long 1071786973
1126 .long 1433917087
1127 .long 1014838523
1128 .long 2440944790
1129 .long 1071783753
1130 .long 2492769774
1131 .long 1014147454
1132 .long 897099801
1133 .long 1071780542
1134 .long 754756297
1135 .long 1015241005
1136 .long 2288159958
1137 .long 1071777339
1138 .long 2169144469
1139 .long 1014876021
1140 .long 2218315341
1141 .long 1071774145
1142 .long 2694295388
1143 .long 3163288868
1144 .long 586995997
1145 .long 1071770960
1146 .long 41662348
1147 .long 3162627992
1148 .long 1588871207
1149 .long 1071767783
1150 .long 143439582
1151 .long 3162963416
1152 .long 828946858
1153 .long 1071764615
1154 .long 10642492
1155 .long 1015939438
1156 .long 2502433899
1157 .long 1071761455
1158 .long 2148595913
1159 .long 1015023991
1160 .long 2214878420
1161 .long 1071758304
1162 .long 892270087
1163 .long 3163116422
1164 .long 4162030108
1165 .long 1071755161
1166 .long 2763428480
1167 .long 1015529349
1168 .long 3949972341
1169 .long 1071752027
1170 .long 2068408548
1171 .long 1014913868
1172 .long 1480023343
1173 .long 1071748902
1174 .long 2247196168
1175 .long 1015327453
1176 .long 948735466
1177 .long 1071745785
1178 .long 3516338028
1179 .long 3162574883
1180 .long 2257959872
1181 .long 1071742676
1182 .long 3802946148
1183 .long 1012964927
1184 .long 1014845819
1185 .long 1071739576
1186 .long 3117910646
1187 .long 3161559105
1188 .long 1416741826
1189 .long 1071736484
1190 .long 2196380210
1191 .long 1011413563
1192 .long 3366293073
1193 .long 1071733400
1194 .long 3119426314
1195 .long 1014120554
1196 .long 2471440686
1197 .long 1071730325
1198 .long 968836267
1199 .long 3162214888
1200 .long 2930322912
1201 .long 1071727258
1202 .long 2599499422
1203 .long 3162714047
1204 .long 351405227
1205 .long 1071724200
1206 .long 3125337328
1207 .long 3159822479
1208 .long 3228316108
1209 .long 1071721149
1210 .long 3010241991
1211 .long 3158422804
1212 .long 2875075254
1213 .long 1071718107
1214 .long 4144233330
1215 .long 3163333716
1216 .long 3490863953
1217 .long 1071715073
1218 .long 960797498
1219 .long 3162948880
1220 .long 685187902
1221 .long 1071712048
1222 .long 378731989
1223 .long 1014843115
1224 .long 2952712987
1225 .long 1071709030
1226 .long 3293494651
1227 .long 3160120301
1228 .long 1608493509
1229 .long 1071706021
1230 .long 3159622171
1231 .long 3162807737
1232 .long 852742562
1233 .long 1071703020
1234 .long 667253586
1235 .long 1009793559
1236 .long 590962156
1237 .long 1071700027
1238 .long 3829346666
1239 .long 3163275597
1240 .long 728909815
1241 .long 1071697042
1242 .long 383930225
1243 .long 1015029468
1244 .long 1172597893
1245 .long 1071694065
1246 .long 114433263
1247 .long 1015347593
1248 .long 1828292879
1249 .long 1071691096
1250 .long 1255956747
1251 .long 1015588398
1252 .long 2602514713
1253 .long 1071688135
1254 .long 2268929336
1255 .long 1014354284
1256 .long 3402036099
1257 .long 1071685182
1258 .long 405889334
1259 .long 1015105656
1260 .long 4133881824
1261 .long 1071682237
1262 .long 2148155345
1263 .long 3162931299
1264 .long 410360776
1265 .long 1071679301
1266 .long 1269990655
1267 .long 1011975870
1268 .long 728934454
1269 .long 1071676372
1270 .long 1413842688
1271 .long 1014178612
1272 .long 702412510
1273 .long 1071673451
1274 .long 3803266087
1275 .long 3162280415
1276 .long 238821257
1277 .long 1071670538
1278 .long 1469694871
1279 .long 3162884987
1280 .long 3541402996
1281 .long 1071667632
1282 .long 2759177317
1283 .long 1014854626
1284 .long 1928746161
1285 .long 1071664735
1286 .long 983617676
1287 .long 1014285177
1288 .long 3899555717
1289 .long 1071661845
1290 .long 427280750
1291 .long 3162546972
1292 .long 772914124
1293 .long 1071658964
1294 .long 4004372762
1295 .long 1012230161
1296 .long 1048019041
1297 .long 1071656090
1298 .long 1398474845
1299 .long 3160510595
1300 .long 339411585
1301 .long 1071653224
1302 .long 264588982
1303 .long 3161636657
1304 .long 2851812149
1305 .long 1071650365
1306 .long 2595802551
1307 .long 1015767337
1308 .long 4200250559
1309 .long 1071647514
1310 .long 2808127345
1311 .long 3161781938
1312 .long 0
1313 .long 1127743488
1314 .long 0
1315 .long 3275227136
1316 .long 1610612736
1317 .long 1082594631
1318 .long 4166901572
1319 .long 1055174155
1320 .long 3884607281
1321 .long 3168131199
1322 .long 3607404735
1323 .long 3190582024
1324 .long 1874480759
1325 .long 1032041131
1326 .long 4286760334
1327 .long 1053736893
1328 .long 4277811695
1329 .long 3211144770
1330 .long 0
1331 .long 0
1332 .long 236289503
1333 .long 1064135997
1334 .long 463583772
1335 .long 3215696314
1336 .long 1441186365
1337 .long 3212977891
1338 .long 286331153
1339 .long 1069617425
1340 .long 2284589306
1341 .long 1066820852
1342 .long 1431655765
1343 .long 3218429269
1344 .long 0
1345 .long 4294967280
1346 .long 0
1347 .long 4294967280
1348 .long 4294705152
1349 .long 4294967295
1350 .long 4294705152
1351 .long 4294967295
1352 .long 4160749568
1353 .long 2147483647
1354 .long 0
1355 .long 1072693248
1356 .long 0
1357 .long 1073741824
1358 .type static_const_table,@object
1359 .size static_const_table,4280
1360 .data
1361 .section .note.GNU-stack, ""
1362# End