1 /* 2 Copyright (c) 2014, Intel Corporation 3 All rights reserved. 4 5 Redistribution and use in source and binary forms, with or without 6 modification, 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 19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 23 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 ANY 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 28 SOFTWARE, 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 83 static_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 95 ENTRY(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: 451 END(atan2) 452 # -- End atan2 453 454 # Start file scope ASM 455 ALIAS_SYMBOL(atan2l, atan2); 456 # End file scope ASM 457 .section .rodata, "a" 458 .align 16 459 .align 16 460 static_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 1222