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// Polynomials coefficients and other constants. 36// 37// Note that in this algorithm, there is a different polynomial for 38// each breakpoint, so there are 32 sets of polynomial coefficients 39// as well as 32 instances of the other constants. 40// 41// The polynomial coefficients and constants are offset from the start 42// of the main block as follows: 43// 44// 0: c8 | c0 45// 16: c9 | c1 46// 32: c10 | c2 47// 48: c11 | c3 48// 64: c12 | c4 49// 80: c13 | c5 50// 96: c14 | c6 51// 112: c15 | c7 52// 128: T_hi 53// 136: T_lo 54// 144: Sigma 55// 152: T_hl 56// 160: Tau 57// 168: Mask 58// 176: (end of block) 59// 60// The total table size is therefore 5632 bytes. 61// 62// Note that c0 and c1 are always zero. We could try storing 63// other constants here, and just loading the low part of the 64// SIMD register in these cases, after ensuring the high part 65// is zero. 66// 67// The higher terms of the polynomial are computed in the *low* 68// part of the SIMD register. This is so we can overlap the 69// multiplication by r^8 and the unpacking of the other part. 70// 71// The constants are: 72// T_hi + T_lo = accurate constant term in power series 73// Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit) 74// Tau = multiplier for the reciprocal, always -1 or 0 75// 76// The basic reconstruction formula using these constants is: 77// 78// High = tau * recip_hi + t_hi 79// Med = (sgn * r + t_hl * r)_hi 80// Low = (sgn * r + t_hl * r)_lo + 81// tau * recip_lo + T_lo + (T_hl + sigma) * c + pol 82// 83// where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15 84// 85// (c0 = c1 = 0, but using them keeps SIMD regularity) 86// 87// We then do a compensated sum High + Med, add the low parts together 88// and then do the final sum. 89// 90// Here recip_hi + recip_lo is an accurate reciprocal of the remainder 91// modulo pi/2 92// 93// Special cases: 94// tan(NaN) = quiet NaN, and raise invalid exception 95// tan(INF) = NaN and raise invalid exception 96// tan(+/-0) = +/-0 97// 98/******************************************************************************/ 99 100#include <private/bionic_asm.h> 101# -- Begin tan 102ENTRY(tan) 103# parameter 1: %xmm0 104..B1.1: 105..___tag_value_tan.1: 106 pushq %rbx 107..___tag_value_tan.3: 108 subq $16, %rsp 109..___tag_value_tan.5: 110 movsd %xmm0, 8(%rsp) 111..B1.2: 112 pextrw $3, %xmm0, %eax 113 andl $32767, %eax 114 subl $16314, %eax 115 cmpl $270, %eax 116 ja .L_2TAG_PACKET_0.0.1 117 movapd ONEHALF(%rip), %xmm5 118 movapd MUL16(%rip), %xmm6 119 unpcklpd %xmm0, %xmm0 120 movapd sign_mask(%rip), %xmm4 121 andpd %xmm0, %xmm4 122 movapd PI32INV(%rip), %xmm1 123 mulpd %xmm0, %xmm1 124 orps %xmm4, %xmm5 125 addpd %xmm5, %xmm1 126 movapd %xmm1, %xmm7 127 unpckhpd %xmm7, %xmm7 128 cvttsd2si %xmm7, %edx 129 cvttpd2dq %xmm1, %xmm1 130 cvtdq2pd %xmm1, %xmm1 131 mulpd %xmm6, %xmm1 132 movapd P_1(%rip), %xmm3 133 movq QQ_2(%rip), %xmm5 134 addq $469248, %rdx 135 movapd P_2(%rip), %xmm4 136 mulpd %xmm1, %xmm3 137 andq $31, %rdx 138 mulsd %xmm1, %xmm5 139 movq %rdx, %rcx 140 mulpd %xmm1, %xmm4 141 shlq $1, %rcx 142 subpd %xmm3, %xmm0 143 mulpd P_3(%rip), %xmm1 144 addq %rcx, %rdx 145 shlq $2, %rcx 146 addq %rcx, %rdx 147 addsd %xmm0, %xmm5 148 movapd %xmm0, %xmm2 149 subpd %xmm4, %xmm0 150 movq ONE(%rip), %xmm6 151 shlq $4, %rdx 152 lea Ctable(%rip), %rax 153 andpd MASK_35(%rip), %xmm5 154 movapd %xmm0, %xmm3 155 addq %rdx, %rax 156 subpd %xmm0, %xmm2 157 unpckhpd %xmm0, %xmm0 158 divsd %xmm5, %xmm6 159 subpd %xmm4, %xmm2 160 movapd 16(%rax), %xmm7 161 subsd %xmm5, %xmm3 162 mulpd %xmm0, %xmm7 163 subpd %xmm1, %xmm2 164 movapd 48(%rax), %xmm1 165 mulpd %xmm0, %xmm1 166 movapd 96(%rax), %xmm4 167 mulpd %xmm0, %xmm4 168 addsd %xmm3, %xmm2 169 movapd %xmm0, %xmm3 170 mulpd %xmm0, %xmm0 171 addpd (%rax), %xmm7 172 addpd 32(%rax), %xmm1 173 mulpd %xmm0, %xmm1 174 addpd 80(%rax), %xmm4 175 addpd %xmm1, %xmm7 176 movapd 112(%rax), %xmm1 177 mulpd %xmm0, %xmm1 178 mulpd %xmm0, %xmm0 179 addpd %xmm1, %xmm4 180 movapd 64(%rax), %xmm1 181 mulpd %xmm0, %xmm1 182 addpd %xmm1, %xmm7 183 movapd %xmm3, %xmm1 184 mulpd %xmm0, %xmm3 185 mulsd %xmm0, %xmm0 186 mulpd 144(%rax), %xmm1 187 mulpd %xmm3, %xmm4 188 movq %xmm1, %xmm3 189 addpd %xmm4, %xmm7 190 movq %xmm1, %xmm4 191 mulsd %xmm7, %xmm0 192 unpckhpd %xmm7, %xmm7 193 addsd %xmm7, %xmm0 194 unpckhpd %xmm1, %xmm1 195 addsd %xmm1, %xmm3 196 subsd %xmm3, %xmm4 197 addsd %xmm4, %xmm1 198 movq %xmm2, %xmm4 199 movq 144(%rax), %xmm7 200 unpckhpd %xmm2, %xmm2 201 addsd 152(%rax), %xmm7 202 mulsd %xmm2, %xmm7 203 addsd 136(%rax), %xmm7 204 addsd %xmm1, %xmm7 205 addsd %xmm7, %xmm0 206 movq ONE(%rip), %xmm7 207 mulsd %xmm6, %xmm4 208 movq 168(%rax), %xmm2 209 andpd %xmm6, %xmm2 210 mulsd %xmm2, %xmm5 211 mulsd 160(%rax), %xmm6 212 subsd %xmm5, %xmm7 213 subsd 128(%rax), %xmm2 214 subsd %xmm4, %xmm7 215 mulsd %xmm6, %xmm7 216 movq %xmm3, %xmm4 217 subsd %xmm2, %xmm3 218 addsd %xmm3, %xmm2 219 subsd %xmm2, %xmm4 220 addsd %xmm4, %xmm0 221 subsd %xmm7, %xmm0 222 addsd %xmm3, %xmm0 223 jmp ..B1.4 224.L_2TAG_PACKET_0.0.1: 225 jg .L_2TAG_PACKET_1.0.1 226 pextrw $3, %xmm0, %eax 227 movl %eax, %edx 228 andl $32752, %eax 229 je .L_2TAG_PACKET_2.0.1 230 andl $32767, %edx 231 cmpl $15904, %edx 232 jb .L_2TAG_PACKET_3.0.1 233 movq %xmm0, %xmm2 234 movq %xmm0, %xmm3 235 movq Q_11(%rip), %xmm1 236 mulsd %xmm0, %xmm2 237 mulsd %xmm2, %xmm3 238 mulsd %xmm2, %xmm1 239 addsd Q_9(%rip), %xmm1 240 mulsd %xmm2, %xmm1 241 addsd Q_7(%rip), %xmm1 242 mulsd %xmm2, %xmm1 243 addsd Q_5(%rip), %xmm1 244 mulsd %xmm2, %xmm1 245 addsd Q_3(%rip), %xmm1 246 mulsd %xmm3, %xmm1 247 addsd %xmm1, %xmm0 248 jmp ..B1.4 249.L_2TAG_PACKET_3.0.1: 250 movq TWO_POW_55(%rip), %xmm3 251 mulsd %xmm0, %xmm3 252 addsd %xmm3, %xmm0 253 mulsd TWO_POW_M55(%rip), %xmm0 254 jmp ..B1.4 255.L_2TAG_PACKET_2.0.1: 256 movq %xmm0, %xmm1 257 mulsd %xmm1, %xmm1 258 jmp ..B1.4 259.L_2TAG_PACKET_1.0.1: 260 pextrw $3, %xmm0, %eax 261 andl $32752, %eax 262 cmpl $32752, %eax 263 je .L_2TAG_PACKET_4.0.1 264 pextrw $3, %xmm0, %ecx 265 andl $32752, %ecx 266 subl $16224, %ecx 267 shrl $7, %ecx 268 andl $65532, %ecx 269 lea PI_INV_TABLE(%rip), %r11 270 addq %r11, %rcx 271 movd %xmm0, %rax 272 movl 20(%rcx), %r10d 273 movl 24(%rcx), %r8d 274 movl %eax, %edx 275 shrq $21, %rax 276 orl $-2147483648, %eax 277 shrl $11, %eax 278 movl %r10d, %r9d 279 imulq %rdx, %r10 280 imulq %rax, %r9 281 imulq %rax, %r8 282 movl 16(%rcx), %esi 283 movl 12(%rcx), %edi 284 movl %r10d, %r11d 285 shrq $32, %r10 286 addq %r10, %r9 287 addq %r8, %r11 288 movl %r11d, %r8d 289 shrq $32, %r11 290 addq %r11, %r9 291 movl %esi, %r10d 292 imulq %rdx, %rsi 293 imulq %rax, %r10 294 movl %edi, %r11d 295 imulq %rdx, %rdi 296 movl %esi, %ebx 297 shrq $32, %rsi 298 addq %rbx, %r9 299 movl %r9d, %ebx 300 shrq $32, %r9 301 addq %rsi, %r10 302 addq %r9, %r10 303 shlq $32, %rbx 304 orq %rbx, %r8 305 imulq %rax, %r11 306 movl 8(%rcx), %r9d 307 movl 4(%rcx), %esi 308 movl %edi, %ebx 309 shrq $32, %rdi 310 addq %rbx, %r10 311 movl %r10d, %ebx 312 shrq $32, %r10 313 addq %rdi, %r11 314 addq %r10, %r11 315 movq %r9, %rdi 316 imulq %rdx, %r9 317 imulq %rax, %rdi 318 movl %r9d, %r10d 319 shrq $32, %r9 320 addq %r10, %r11 321 movl %r11d, %r10d 322 shrq $32, %r11 323 addq %r9, %rdi 324 addq %r11, %rdi 325 movq %rsi, %r9 326 imulq %rdx, %rsi 327 imulq %rax, %r9 328 shlq $32, %r10 329 orq %rbx, %r10 330 movl (%rcx), %eax 331 movl %esi, %r11d 332 shrq $32, %rsi 333 addq %r11, %rdi 334 movl %edi, %r11d 335 shrq $32, %rdi 336 addq %rsi, %r9 337 addq %rdi, %r9 338 imulq %rax, %rdx 339 pextrw $3, %xmm0, %ebx 340 lea PI_INV_TABLE(%rip), %rdi 341 subq %rdi, %rcx 342 addl %ecx, %ecx 343 addl %ecx, %ecx 344 addl %ecx, %ecx 345 addl $19, %ecx 346 movl $32768, %esi 347 andl %ebx, %esi 348 shrl $4, %ebx 349 andl $2047, %ebx 350 subl $1023, %ebx 351 subl %ebx, %ecx 352 addq %rdx, %r9 353 movl %ecx, %edx 354 addl $32, %edx 355 cmpl $0, %ecx 356 jl .L_2TAG_PACKET_5.0.1 357 negl %ecx 358 addl $29, %ecx 359 shll %cl, %r9d 360 movl %r9d, %edi 361 andl $1073741823, %r9d 362 testl $536870912, %r9d 363 jne .L_2TAG_PACKET_6.0.1 364 shrl %cl, %r9d 365 movl $0, %ebx 366 shlq $32, %r9 367 orq %r11, %r9 368.L_2TAG_PACKET_7.0.1: 369.L_2TAG_PACKET_8.0.1: 370 cmpq $0, %r9 371 je .L_2TAG_PACKET_9.0.1 372.L_2TAG_PACKET_10.0.1: 373 bsr %r9, %r11 374 movl $29, %ecx 375 subl %r11d, %ecx 376 jle .L_2TAG_PACKET_11.0.1 377 shlq %cl, %r9 378 movq %r10, %rax 379 shlq %cl, %r10 380 addl %ecx, %edx 381 negl %ecx 382 addl $64, %ecx 383 shrq %cl, %rax 384 shrq %cl, %r8 385 orq %rax, %r9 386 orq %r8, %r10 387.L_2TAG_PACKET_12.0.1: 388 cvtsi2sdq %r9, %xmm0 389 shrq $1, %r10 390 cvtsi2sdq %r10, %xmm3 391 xorpd %xmm4, %xmm4 392 shll $4, %edx 393 negl %edx 394 addl $16368, %edx 395 orl %esi, %edx 396 xorl %ebx, %edx 397 pinsrw $3, %edx, %xmm4 398 movq PI_4(%rip), %xmm2 399 movq 8+PI_4(%rip), %xmm7 400 xorpd %xmm5, %xmm5 401 subl $1008, %edx 402 pinsrw $3, %edx, %xmm5 403 mulsd %xmm4, %xmm0 404 shll $16, %esi 405 sarl $31, %esi 406 mulsd %xmm5, %xmm3 407 movq %xmm0, %xmm1 408 mulsd %xmm2, %xmm0 409 shrl $30, %edi 410 addsd %xmm3, %xmm1 411 mulsd %xmm2, %xmm3 412 addl %esi, %edi 413 xorl %esi, %edi 414 mulsd %xmm1, %xmm7 415 movl %edi, %eax 416 addsd %xmm3, %xmm7 417 movq %xmm0, %xmm2 418 addsd %xmm7, %xmm0 419 subsd %xmm0, %xmm2 420 addsd %xmm2, %xmm7 421 movapd PI32INV(%rip), %xmm1 422 movddup %xmm0, %xmm0 423 movapd sign_mask(%rip), %xmm4 424 andpd %xmm0, %xmm4 425 mulpd %xmm0, %xmm1 426 movddup %xmm7, %xmm7 427 movapd ONEHALF(%rip), %xmm5 428 movapd MUL16(%rip), %xmm6 429 orps %xmm4, %xmm5 430 addpd %xmm5, %xmm1 431 movapd %xmm1, %xmm5 432 unpckhpd %xmm5, %xmm5 433 cvttsd2si %xmm5, %edx 434 cvttpd2dq %xmm1, %xmm1 435 cvtdq2pd %xmm1, %xmm1 436 mulpd %xmm6, %xmm1 437 movapd P_1(%rip), %xmm3 438 movq QQ_2(%rip), %xmm5 439 shll $4, %eax 440 addl $469248, %edx 441 movapd P_2(%rip), %xmm4 442 mulpd %xmm1, %xmm3 443 addl %eax, %edx 444 andl $31, %edx 445 mulsd %xmm1, %xmm5 446 movl %edx, %ecx 447 mulpd %xmm1, %xmm4 448 shll $1, %ecx 449 subpd %xmm3, %xmm0 450 mulpd P_3(%rip), %xmm1 451 addl %ecx, %edx 452 shll $2, %ecx 453 addl %ecx, %edx 454 addsd %xmm0, %xmm5 455 movapd %xmm0, %xmm2 456 subpd %xmm4, %xmm0 457 movq ONE(%rip), %xmm6 458 shll $4, %edx 459 lea Ctable(%rip), %rax 460 andpd MASK_35(%rip), %xmm5 461 movapd %xmm0, %xmm3 462 addq %rdx, %rax 463 subpd %xmm0, %xmm2 464 unpckhpd %xmm0, %xmm0 465 divsd %xmm5, %xmm6 466 subpd %xmm4, %xmm2 467 subsd %xmm5, %xmm3 468 subpd %xmm1, %xmm2 469 movapd 48(%rax), %xmm1 470 addpd %xmm7, %xmm2 471 movapd 16(%rax), %xmm7 472 mulpd %xmm0, %xmm7 473 movapd 96(%rax), %xmm4 474 mulpd %xmm0, %xmm1 475 mulpd %xmm0, %xmm4 476 addsd %xmm3, %xmm2 477 movapd %xmm0, %xmm3 478 mulpd %xmm0, %xmm0 479 addpd (%rax), %xmm7 480 addpd 32(%rax), %xmm1 481 mulpd %xmm0, %xmm1 482 addpd 80(%rax), %xmm4 483 addpd %xmm1, %xmm7 484 movapd 112(%rax), %xmm1 485 mulpd %xmm0, %xmm1 486 mulpd %xmm0, %xmm0 487 addpd %xmm1, %xmm4 488 movapd 64(%rax), %xmm1 489 mulpd %xmm0, %xmm1 490 addpd %xmm1, %xmm7 491 movapd %xmm3, %xmm1 492 mulpd %xmm0, %xmm3 493 mulsd %xmm0, %xmm0 494 mulpd 144(%rax), %xmm1 495 mulpd %xmm3, %xmm4 496 movq %xmm1, %xmm3 497 addpd %xmm4, %xmm7 498 movq %xmm1, %xmm4 499 mulsd %xmm7, %xmm0 500 unpckhpd %xmm7, %xmm7 501 addsd %xmm7, %xmm0 502 unpckhpd %xmm1, %xmm1 503 addsd %xmm1, %xmm3 504 subsd %xmm3, %xmm4 505 addsd %xmm4, %xmm1 506 movq %xmm2, %xmm4 507 movq 144(%rax), %xmm7 508 unpckhpd %xmm2, %xmm2 509 addsd 152(%rax), %xmm7 510 mulsd %xmm2, %xmm7 511 addsd 136(%rax), %xmm7 512 addsd %xmm1, %xmm7 513 addsd %xmm7, %xmm0 514 movq ONE(%rip), %xmm7 515 mulsd %xmm6, %xmm4 516 movq 168(%rax), %xmm2 517 andpd %xmm6, %xmm2 518 mulsd %xmm2, %xmm5 519 mulsd 160(%rax), %xmm6 520 subsd %xmm5, %xmm7 521 subsd 128(%rax), %xmm2 522 subsd %xmm4, %xmm7 523 mulsd %xmm6, %xmm7 524 movq %xmm3, %xmm4 525 subsd %xmm2, %xmm3 526 addsd %xmm3, %xmm2 527 subsd %xmm2, %xmm4 528 addsd %xmm4, %xmm0 529 subsd %xmm7, %xmm0 530 addsd %xmm3, %xmm0 531 jmp ..B1.4 532.L_2TAG_PACKET_9.0.1: 533 addl $64, %edx 534 movq %r10, %r9 535 movq %r8, %r10 536 movq $0, %r8 537 cmpq $0, %r9 538 jne .L_2TAG_PACKET_10.0.1 539 addl $64, %edx 540 movq %r10, %r9 541 movq %r8, %r10 542 cmpq $0, %r9 543 jne .L_2TAG_PACKET_10.0.1 544 jmp .L_2TAG_PACKET_12.0.1 545.L_2TAG_PACKET_11.0.1: 546 je .L_2TAG_PACKET_12.0.1 547 negl %ecx 548 shrq %cl, %r10 549 movq %r9, %rax 550 shrq %cl, %r9 551 subl %ecx, %edx 552 negl %ecx 553 addl $64, %ecx 554 shlq %cl, %rax 555 orq %rax, %r10 556 jmp .L_2TAG_PACKET_12.0.1 557.L_2TAG_PACKET_5.0.1: 558 notl %ecx 559 shlq $32, %r9 560 orq %r11, %r9 561 shlq %cl, %r9 562 movq %r9, %rdi 563 testl $-2147483648, %r9d 564 jne .L_2TAG_PACKET_13.0.1 565 shrl %cl, %r9d 566 movl $0, %ebx 567 shrq $2, %rdi 568 jmp .L_2TAG_PACKET_8.0.1 569.L_2TAG_PACKET_6.0.1: 570 shrl %cl, %r9d 571 movl $1073741824, %ebx 572 shrl %cl, %ebx 573 shlq $32, %r9 574 orq %r11, %r9 575 shlq $32, %rbx 576 addl $1073741824, %edi 577 movq $0, %rcx 578 movq $0, %r11 579 subq %r8, %rcx 580 sbbq %r10, %r11 581 sbbq %r9, %rbx 582 movq %rcx, %r8 583 movq %r11, %r10 584 movq %rbx, %r9 585 movl $32768, %ebx 586 jmp .L_2TAG_PACKET_7.0.1 587.L_2TAG_PACKET_13.0.1: 588 shrl %cl, %r9d 589 movq $0x100000000, %rbx 590 shrq %cl, %rbx 591 movq $0, %rcx 592 movq $0, %r11 593 subq %r8, %rcx 594 sbbq %r10, %r11 595 sbbq %r9, %rbx 596 movq %rcx, %r8 597 movq %r11, %r10 598 movq %rbx, %r9 599 movl $32768, %ebx 600 shrq $2, %rdi 601 addl $1073741824, %edi 602 jmp .L_2TAG_PACKET_8.0.1 603.L_2TAG_PACKET_4.0.1: 604 movq 8(%rsp), %xmm0 605 mulsd NEG_ZERO(%rip), %xmm0 606 movq %xmm0, (%rsp) 607.L_2TAG_PACKET_14.0.1: 608..B1.4: 609 addq $16, %rsp 610..___tag_value_tan.6: 611 popq %rbx 612..___tag_value_tan.8: 613 ret 614..___tag_value_tan.9: 615END(tan) 616# -- End tan 617 .section .rodata, "a" 618 .align 16 619 .align 16 620ONEHALF: 621 .long 0 622 .long 1071644672 623 .long 0 624 .long 1071644672 625 .type ONEHALF,@object 626 .size ONEHALF,16 627 .align 16 628MUL16: 629 .long 0 630 .long 1076887552 631 .long 0 632 .long 1072693248 633 .type MUL16,@object 634 .size MUL16,16 635 .align 16 636sign_mask: 637 .long 0 638 .long 2147483648 639 .long 0 640 .long 2147483648 641 .type sign_mask,@object 642 .size sign_mask,16 643 .align 16 644PI32INV: 645 .long 1841940611 646 .long 1071931184 647 .long 1841940611 648 .long 1076125488 649 .type PI32INV,@object 650 .size PI32INV,16 651 .align 16 652P_1: 653 .long 1413758976 654 .long 1069097467 655 .long 1413742592 656 .long 1069097467 657 .type P_1,@object 658 .size P_1,16 659 .align 16 660P_2: 661 .long 1734819840 662 .long 3174229945 663 .long 1280049152 664 .long 1028033571 665 .type P_2,@object 666 .size P_2,16 667 .align 16 668P_3: 669 .long 923219018 670 .long 984130272 671 .long 57701189 672 .long 988383790 673 .type P_3,@object 674 .size P_3,16 675 .align 16 676Ctable: 677 .long 0 678 .long 0 679 .long 0 680 .long 0 681 .long 2284589306 682 .long 1066820852 683 .long 0 684 .long 0 685 .long 0 686 .long 0 687 .long 0 688 .long 0 689 .long 1441186365 690 .long 1065494243 691 .long 1431655765 692 .long 1070945621 693 .long 0 694 .long 0 695 .long 0 696 .long 0 697 .long 236289504 698 .long 1064135997 699 .long 286331153 700 .long 1069617425 701 .long 0 702 .long 0 703 .long 0 704 .long 0 705 .long 1160476131 706 .long 1062722102 707 .long 463583772 708 .long 1068212666 709 .long 0 710 .long 0 711 .long 0 712 .long 0 713 .long 0 714 .long 1072693248 715 .long 0 716 .long 0 717 .long 0 718 .long 0 719 .long 0 720 .long 0 721 .long 1313038235 722 .long 1066745731 723 .long 0 724 .long 0 725 .long 1013878342 726 .long 1067152618 727 .long 0 728 .long 0 729 .long 3663426833 730 .long 1065725283 731 .long 3693284251 732 .long 1069118808 733 .long 650852232 734 .long 1065882376 735 .long 1996245381 736 .long 1071000265 737 .long 2008746170 738 .long 1064664197 739 .long 3055842593 740 .long 1068578846 741 .long 1495406348 742 .long 1064652437 743 .long 2269530157 744 .long 1069711235 745 .long 285563696 746 .long 1063576465 747 .long 1046897440 748 .long 1067705865 749 .long 233429731 750 .long 1063453151 751 .long 522045958 752 .long 1068476590 753 .long 2354785698 754 .long 1069102779 755 .long 1317599141 756 .long 1012432133 757 .long 0 758 .long 1072693248 759 .long 2828230105 760 .long 1065606626 761 .long 0 762 .long 0 763 .long 0 764 .long 0 765 .long 1512545955 766 .long 1068119047 767 .long 0 768 .long 0 769 .long 1127048698 770 .long 1067909459 771 .long 0 772 .long 0 773 .long 2300200450 774 .long 1067254767 775 .long 3593250296 776 .long 1070233561 777 .long 3009365544 778 .long 1066902117 779 .long 1127373050 780 .long 1071173457 781 .long 3046103305 782 .long 1066371299 783 .long 24583402 784 .long 1069723988 785 .long 4082511758 786 .long 1065914199 787 .long 3223889699 788 .long 1070020367 789 .long 548927984 790 .long 1065415756 791 .long 558065897 792 .long 1068949418 793 .long 680073315 794 .long 1064940726 795 .long 388873200 796 .long 1068944270 797 .long 3763679576 798 .long 1070167541 799 .long 1497360404 800 .long 1009710547 801 .long 0 802 .long 1072693248 803 .long 64931152 804 .long 1067729411 805 .long 0 806 .long 0 807 .long 0 808 .long 0 809 .long 2467582782 810 .long 1069256389 811 .long 0 812 .long 0 813 .long 162150096 814 .long 1068946420 815 .long 0 816 .long 0 817 .long 3702794237 818 .long 1068579152 819 .long 3631919291 820 .long 1070936926 821 .long 3456821413 822 .long 1068217218 823 .long 2031366438 824 .long 1071495745 825 .long 1596664020 826 .long 1067799281 827 .long 1509038701 828 .long 1070601643 829 .long 583171477 830 .long 1067510148 831 .long 3785344682 832 .long 1070618476 833 .long 2402036048 834 .long 1067075736 835 .long 3233018412 836 .long 1069913186 837 .long 411280568 838 .long 1066710556 839 .long 1065584192 840 .long 1069747896 841 .long 895247324 842 .long 1070819848 843 .long 500078909 844 .long 3161288781 845 .long 0 846 .long 1072693248 847 .long 729983843 848 .long 1068994194 849 .long 0 850 .long 0 851 .long 0 852 .long 0 853 .long 1458794562 854 .long 1070398550 855 .long 0 856 .long 0 857 .long 2857777489 858 .long 1070137637 859 .long 0 860 .long 0 861 .long 1024359517 862 .long 1069876531 863 .long 2616040238 864 .long 1071582937 865 .long 1609024636 866 .long 1069675088 867 .long 2529240549 868 .long 1071836633 869 .long 1510128600 870 .long 1069440113 871 .long 2251697184 872 .long 1071253687 873 .long 1262761453 874 .long 1069142850 875 .long 1263091857 876 .long 1071190461 877 .long 3043383486 878 .long 1068885191 879 .long 2476932470 880 .long 1070842002 881 .long 3659995028 882 .long 1068669200 883 .long 855891755 884 .long 1070696894 885 .long 2583490354 886 .long 1071284857 887 .long 3062633575 888 .long 1014008623 889 .long 0 890 .long 1072693248 891 .long 2550940471 892 .long 1069938201 893 .long 0 894 .long 0 895 .long 0 896 .long 0 897 .long 3422807297 898 .long 1071640847 899 .long 0 900 .long 0 901 .long 1151658053 902 .long 1071494715 903 .long 0 904 .long 0 905 .long 929607071 906 .long 1071346340 907 .long 1037049034 908 .long 1072037305 909 .long 2786928657 910 .long 1071215282 911 .long 1447406859 912 .long 1072265209 913 .long 3490952107 914 .long 1071090851 915 .long 3205232916 916 .long 1071968658 917 .long 1297344304 918 .long 1070977120 919 .long 1066110976 920 .long 1071946035 921 .long 3803721480 922 .long 1070871082 923 .long 1496754229 924 .long 1071807201 925 .long 2982550683 926 .long 1070773243 927 .long 4014441989 928 .long 1071736222 929 .long 419968236 930 .long 1071717047 931 .long 3451266538 932 .long 3163444811 933 .long 0 934 .long 1072693248 935 .long 2960267235 936 .long 1070745841 937 .long 0 938 .long 0 939 .long 0 940 .long 0 941 .long 724322768 942 .long 1072881308 943 .long 0 944 .long 0 945 .long 643153048 946 .long 1072905816 947 .long 0 948 .long 0 949 .long 4285079458 950 .long 1072928558 951 .long 3912524733 952 .long 1072622983 953 .long 118362272 954 .long 1072952754 955 .long 4107767972 956 .long 1072827408 957 .long 2689502883 958 .long 1072976922 959 .long 946523347 960 .long 1072772766 961 .long 573204189 962 .long 1073001761 963 .long 581531518 964 .long 1072826391 965 .long 1386236526 966 .long 1073026959 967 .long 3718905905 968 .long 1072832823 969 .long 1145558140 970 .long 1073052673 971 .long 513572637 972 .long 1072861969 973 .long 716700048 974 .long 1071997368 975 .long 547126769 976 .long 1015523525 977 .long 0 978 .long 1072693248 979 .long 1097907398 980 .long 1071420120 981 .long 0 982 .long 0 983 .long 0 984 .long 0 985 .long 3349892442 986 .long 1074290212 987 .long 0 988 .long 0 989 .long 3913197405 990 .long 1074501181 991 .long 0 992 .long 0 993 .long 2494034522 994 .long 1074739170 995 .long 1264738763 996 .long 1073084804 997 .long 1520293906 998 .long 1074899632 999 .long 1958936600 1000 .long 1073411493 1001 .long 2133649635 1002 .long 1075052171 1003 .long 4270740730 1004 .long 1073574708 1005 .long 1728930189 1006 .long 1075224844 1007 .long 1303998552 1008 .long 1073799186 1009 .long 618611933 1010 .long 1075420255 1011 .long 1769828046 1012 .long 1073938542 1013 .long 2200537986 1014 .long 1075641421 1015 .long 433361110 1016 .long 1074105369 1017 .long 719595600 1018 .long 1072317184 1019 .long 294527206 1020 .long 3162140088 1021 .long 0 1022 .long 1073741824 1023 .long 3811788216 1024 .long 3218400550 1025 .long 0 1026 .long 0 1027 .long 0 1028 .long 0 1029 .long 1704352102 1030 .long 1075943001 1031 .long 0 1032 .long 0 1033 .long 2284589306 1034 .long 1076258036 1035 .long 0 1036 .long 0 1037 .long 2211264291 1038 .long 1076659010 1039 .long 0 1040 .long 1073741824 1041 .long 1441186365 1042 .long 1077028579 1043 .long 1431655765 1044 .long 1074091349 1045 .long 876943673 1046 .long 1077353622 1047 .long 2863311531 1048 .long 1074440874 1049 .long 236289504 1050 .long 1077767485 1051 .long 286331153 1052 .long 1074860305 1053 .long 2805473311 1054 .long 1078115278 1055 .long 95443718 1056 .long 1075163227 1057 .long 1160476131 1058 .long 1078450742 1059 .long 463583772 1060 .long 1075552698 1061 .long 0 1062 .long 1072693248 1063 .long 0 1064 .long 0 1065 .long 0 1066 .long 1073741824 1067 .long 0 1068 .long 0 1069 .long 0 1070 .long 0 1071 .long 0 1072 .long 0 1073 .long 1330165971 1074 .long 3207850745 1075 .long 0 1076 .long 0 1077 .long 217536623 1078 .long 1059109098 1079 .long 0 1080 .long 0 1081 .long 3492120849 1082 .long 3205151475 1083 .long 602185705 1084 .long 3215678092 1085 .long 760422958 1086 .long 1056312597 1087 .long 555127889 1088 .long 1067545266 1089 .long 3139784124 1090 .long 3202470837 1091 .long 3690544014 1092 .long 3213150171 1093 .long 95707915 1094 .long 1053635428 1095 .long 4003114407 1096 .long 1064581412 1097 .long 2034926231 1098 .long 3199711161 1099 .long 3759536023 1100 .long 3210559989 1101 .long 3826928214 1102 .long 1050893819 1103 .long 3837960785 1104 .long 1061790379 1105 .long 1526325248 1106 .long 3217967566 1107 .long 2356426521 1108 .long 1025423456 1109 .long 0 1110 .long 0 1111 .long 457728975 1112 .long 1071088276 1113 .long 0 1114 .long 1072693248 1115 .long 0 1116 .long 4294967288 1117 .long 1398462608 1118 .long 3207303968 1119 .long 0 1120 .long 0 1121 .long 26205983 1122 .long 1058461213 1123 .long 0 1124 .long 0 1125 .long 56226238 1126 .long 3204528612 1127 .long 2754706541 1128 .long 3215359511 1129 .long 2187799823 1130 .long 1055634437 1131 .long 790323742 1132 .long 1067402587 1133 .long 1372385848 1134 .long 3201651479 1135 .long 4097292716 1136 .long 3212856302 1137 .long 3348210357 1138 .long 1052830099 1139 .long 2442796466 1140 .long 1064337602 1141 .long 862608142 1142 .long 3198830754 1143 .long 170296152 1144 .long 3210060867 1145 .long 3755571428 1146 .long 1049933343 1147 .long 3614866008 1148 .long 1061361670 1149 .long 719978496 1150 .long 3217669096 1151 .long 1998842465 1152 .long 3174703977 1153 .long 0 1154 .long 0 1155 .long 3749156607 1156 .long 1071048258 1157 .long 0 1158 .long 1072693248 1159 .long 0 1160 .long 4294967288 1161 .long 3120498638 1162 .long 3206749304 1163 .long 0 1164 .long 0 1165 .long 2773578114 1166 .long 1058009312 1167 .long 0 1168 .long 0 1169 .long 2030783676 1170 .long 3203817873 1171 .long 2223654598 1172 .long 3215071936 1173 .long 2976134650 1174 .long 1054987244 1175 .long 706390066 1176 .long 1067217386 1177 .long 4258437615 1178 .long 3200900378 1179 .long 1066252975 1180 .long 3212391267 1181 .long 815777514 1182 .long 1051989462 1183 .long 3202745457 1184 .long 1064010682 1185 .long 2493556375 1186 .long 3198004753 1187 .long 1046243251 1188 .long 3209678971 1189 .long 2593078846 1190 .long 1049017717 1191 .long 2763962276 1192 .long 1060970161 1193 .long 701480960 1194 .long 3217377742 1195 .long 3205862232 1196 .long 3174660915 1197 .long 0 1198 .long 0 1199 .long 2267016812 1200 .long 1071015664 1201 .long 0 1202 .long 1072693248 1203 .long 0 1204 .long 4294967288 1205 .long 2107155798 1206 .long 3206166872 1207 .long 0 1208 .long 0 1209 .long 2642992129 1210 .long 1057424578 1211 .long 0 1212 .long 0 1213 .long 1936992811 1214 .long 3203204426 1215 .long 1485063559 1216 .long 3214682643 1217 .long 1432914553 1218 .long 1054319398 1219 .long 3996381654 1220 .long 1067075828 1221 .long 2833029256 1222 .long 3200223545 1223 .long 2866066872 1224 .long 3211982662 1225 .long 2432888737 1226 .long 1051234178 1227 .long 3669764559 1228 .long 1063748136 1229 .long 2458496952 1230 .long 3197170774 1231 .long 1948234989 1232 .long 3209098147 1233 .long 2843698787 1234 .long 1048163519 1235 .long 3398041407 1236 .long 1060559728 1237 .long 2829230080 1238 .long 3217092115 1239 .long 1034046433 1240 .long 3174271903 1241 .long 0 1242 .long 0 1243 .long 298675305 1244 .long 1070989821 1245 .long 0 1246 .long 1072693248 1247 .long 0 1248 .long 4294967288 1249 .long 437603223 1250 .long 3205589761 1251 .long 0 1252 .long 0 1253 .long 759330352 1254 .long 1057048511 1255 .long 0 1256 .long 0 1257 .long 3107463368 1258 .long 3202507988 1259 .long 3144465176 1260 .long 3214191500 1261 .long 2290961810 1262 .long 1053841035 1263 .long 1618153340 1264 .long 1066971547 1265 .long 3836869393 1266 .long 3199400272 1267 .long 584032116 1268 .long 3211469261 1269 .long 1245704358 1270 .long 1050626462 1271 .long 4247487438 1272 .long 1063561943 1273 .long 1669034927 1274 .long 3196274812 1275 .long 3844233498 1276 .long 3208626322 1277 .long 2706958524 1278 .long 1047411374 1279 .long 3857199098 1280 .long 1060281647 1281 .long 3593904128 1282 .long 3216590719 1283 .long 3267547836 1284 .long 3172163321 1285 .long 0 1286 .long 0 1287 .long 4076712227 1288 .long 1070970214 1289 .long 0 1290 .long 1072693248 1291 .long 0 1292 .long 4294967288 1293 .long 3290090340 1294 .long 3204793485 1295 .long 0 1296 .long 0 1297 .long 3685760367 1298 .long 1056668370 1299 .long 0 1300 .long 0 1301 .long 2655163949 1302 .long 3201674917 1303 .long 628750575 1304 .long 3213566872 1305 .long 680140505 1306 .long 1053299777 1307 .long 2954464709 1308 .long 1066900026 1309 .long 803201619 1310 .long 3198516435 1311 .long 1466315631 1312 .long 3210837162 1313 .long 1611220163 1314 .long 1049972438 1315 .long 2766187256 1316 .long 1063437894 1317 .long 1804579484 1318 .long 3195331491 1319 .long 3695969289 1320 .long 3207854418 1321 .long 2617238373 1322 .long 1046675948 1323 .long 3095830084 1324 .long 1060095334 1325 .long 3789570048 1326 .long 3216034914 1327 .long 23826559 1328 .long 3172048060 1329 .long 0 1330 .long 0 1331 .long 3870939386 1332 .long 1070956467 1333 .long 0 1334 .long 1072693248 1335 .long 0 1336 .long 4294967288 1337 .long 1571758758 1338 .long 3203672535 1339 .long 0 1340 .long 0 1341 .long 113026373 1342 .long 1056416381 1343 .long 0 1344 .long 0 1345 .long 1913766298 1346 .long 3200523326 1347 .long 2507068734 1348 .long 3212502004 1349 .long 4000648818 1350 .long 1053003803 1351 .long 2446607349 1352 .long 1066858259 1353 .long 912662124 1354 .long 3197333001 1355 .long 1349489537 1356 .long 3209765608 1357 .long 3412972607 1358 .long 1049641401 1359 .long 1721283327 1360 .long 1063366855 1361 .long 1466691883 1362 .long 3194116746 1363 .long 3852528092 1364 .long 3206760861 1365 .long 285443293 1366 .long 1046158380 1367 .long 1758739894 1368 .long 1059895449 1369 .long 1858781184 1370 .long 3214984212 1371 .long 3447575948 1372 .long 1024675855 1373 .long 0 1374 .long 0 1375 .long 2242038011 1376 .long 1070948320 1377 .long 0 1378 .long 1072693248 1379 .long 0 1380 .long 4294967288 1381 .long 0 1382 .long 0 1383 .long 0 1384 .long 0 1385 .long 737611454 1386 .long 1056336527 1387 .long 0 1388 .long 0 1389 .long 0 1390 .long 0 1391 .long 0 1392 .long 0 1393 .long 3594790527 1394 .long 1052911621 1395 .long 381774871 1396 .long 1066844524 1397 .long 0 1398 .long 0 1399 .long 0 1400 .long 0 1401 .long 3303051618 1402 .long 1049456050 1403 .long 3154187623 1404 .long 1063343722 1405 .long 0 1406 .long 0 1407 .long 0 1408 .long 0 1409 .long 528061788 1410 .long 1045944910 1411 .long 2469719819 1412 .long 1059831159 1413 .long 0 1414 .long 0 1415 .long 0 1416 .long 0 1417 .long 0 1418 .long 0 1419 .long 1431655765 1420 .long 1070945621 1421 .long 0 1422 .long 1072693248 1423 .long 0 1424 .long 4294967288 1425 .long 1571758758 1426 .long 1056188887 1427 .long 0 1428 .long 0 1429 .long 113026373 1430 .long 1056416381 1431 .long 0 1432 .long 0 1433 .long 1913766298 1434 .long 1053039678 1435 .long 2507068734 1436 .long 1065018356 1437 .long 4000648818 1438 .long 1053003803 1439 .long 2446607349 1440 .long 1066858259 1441 .long 912662124 1442 .long 1049849353 1443 .long 1349489537 1444 .long 1062281960 1445 .long 3412972607 1446 .long 1049641401 1447 .long 1721283327 1448 .long 1063366855 1449 .long 1466691883 1450 .long 1046633098 1451 .long 3852528092 1452 .long 1059277213 1453 .long 285443293 1454 .long 1046158380 1455 .long 1758739894 1456 .long 1059895449 1457 .long 1858781184 1458 .long 1067500564 1459 .long 3447575948 1460 .long 3172159503 1461 .long 0 1462 .long 0 1463 .long 2242038011 1464 .long 1070948320 1465 .long 0 1466 .long 1072693248 1467 .long 0 1468 .long 4294967288 1469 .long 3290090340 1470 .long 1057309837 1471 .long 0 1472 .long 0 1473 .long 3685760367 1474 .long 1056668370 1475 .long 0 1476 .long 0 1477 .long 2655163949 1478 .long 1054191269 1479 .long 628750575 1480 .long 1066083224 1481 .long 680140505 1482 .long 1053299777 1483 .long 2954464709 1484 .long 1066900026 1485 .long 803201619 1486 .long 1051032787 1487 .long 1466315631 1488 .long 1063353514 1489 .long 1611220163 1490 .long 1049972438 1491 .long 2766187256 1492 .long 1063437894 1493 .long 1804579484 1494 .long 1047847843 1495 .long 3695969289 1496 .long 1060370770 1497 .long 2617238373 1498 .long 1046675948 1499 .long 3095830084 1500 .long 1060095334 1501 .long 3789570048 1502 .long 1068551266 1503 .long 23826559 1504 .long 1024564412 1505 .long 0 1506 .long 0 1507 .long 3870939386 1508 .long 1070956467 1509 .long 0 1510 .long 1072693248 1511 .long 0 1512 .long 4294967288 1513 .long 437603223 1514 .long 1058106113 1515 .long 0 1516 .long 0 1517 .long 759330352 1518 .long 1057048511 1519 .long 0 1520 .long 0 1521 .long 3107463368 1522 .long 1055024340 1523 .long 3144465176 1524 .long 1066707852 1525 .long 2290961810 1526 .long 1053841035 1527 .long 1618153340 1528 .long 1066971547 1529 .long 3836869393 1530 .long 1051916624 1531 .long 584032116 1532 .long 1063985613 1533 .long 1245704358 1534 .long 1050626462 1535 .long 4247487438 1536 .long 1063561943 1537 .long 1669034927 1538 .long 1048791164 1539 .long 3844233498 1540 .long 1061142674 1541 .long 2706958524 1542 .long 1047411374 1543 .long 3857199098 1544 .long 1060281647 1545 .long 3593904128 1546 .long 1069107071 1547 .long 3267547836 1548 .long 1024679673 1549 .long 0 1550 .long 0 1551 .long 4076712227 1552 .long 1070970214 1553 .long 0 1554 .long 1072693248 1555 .long 0 1556 .long 4294967288 1557 .long 2107155798 1558 .long 1058683224 1559 .long 0 1560 .long 0 1561 .long 2642992129 1562 .long 1057424578 1563 .long 0 1564 .long 0 1565 .long 1936992811 1566 .long 1055720778 1567 .long 1485063559 1568 .long 1067198995 1569 .long 1432914553 1570 .long 1054319398 1571 .long 3996381654 1572 .long 1067075828 1573 .long 2833029256 1574 .long 1052739897 1575 .long 2866066872 1576 .long 1064499014 1577 .long 2432888737 1578 .long 1051234178 1579 .long 3669764559 1580 .long 1063748136 1581 .long 2458496952 1582 .long 1049687126 1583 .long 1948234989 1584 .long 1061614499 1585 .long 2843698787 1586 .long 1048163519 1587 .long 3398041407 1588 .long 1060559728 1589 .long 2829230080 1590 .long 1069608467 1591 .long 1034046433 1592 .long 1026788255 1593 .long 0 1594 .long 0 1595 .long 298675305 1596 .long 1070989821 1597 .long 0 1598 .long 1072693248 1599 .long 0 1600 .long 4294967288 1601 .long 3120498638 1602 .long 1059265656 1603 .long 0 1604 .long 0 1605 .long 2773578114 1606 .long 1058009312 1607 .long 0 1608 .long 0 1609 .long 2030783676 1610 .long 1056334225 1611 .long 2223654598 1612 .long 1067588288 1613 .long 2976134650 1614 .long 1054987244 1615 .long 706390066 1616 .long 1067217386 1617 .long 4258437615 1618 .long 1053416730 1619 .long 1066252975 1620 .long 1064907619 1621 .long 815777514 1622 .long 1051989462 1623 .long 3202745457 1624 .long 1064010682 1625 .long 2493556375 1626 .long 1050521105 1627 .long 1046243251 1628 .long 1062195323 1629 .long 2593078846 1630 .long 1049017717 1631 .long 2763962276 1632 .long 1060970161 1633 .long 701480960 1634 .long 1069894094 1635 .long 3205862232 1636 .long 1027177267 1637 .long 0 1638 .long 0 1639 .long 2267016812 1640 .long 1071015664 1641 .long 0 1642 .long 1072693248 1643 .long 0 1644 .long 4294967288 1645 .long 1398462608 1646 .long 1059820320 1647 .long 0 1648 .long 0 1649 .long 26205983 1650 .long 1058461213 1651 .long 0 1652 .long 0 1653 .long 56226238 1654 .long 1057044964 1655 .long 2754706541 1656 .long 1067875863 1657 .long 2187799823 1658 .long 1055634437 1659 .long 790323742 1660 .long 1067402587 1661 .long 1372385848 1662 .long 1054167831 1663 .long 4097292716 1664 .long 1065372654 1665 .long 3348210357 1666 .long 1052830099 1667 .long 2442796466 1668 .long 1064337602 1669 .long 862608142 1670 .long 1051347106 1671 .long 170296152 1672 .long 1062577219 1673 .long 3755571428 1674 .long 1049933343 1675 .long 3614866008 1676 .long 1061361670 1677 .long 719978496 1678 .long 1070185448 1679 .long 1998842465 1680 .long 1027220329 1681 .long 0 1682 .long 0 1683 .long 3749156607 1684 .long 1071048258 1685 .long 0 1686 .long 1072693248 1687 .long 0 1688 .long 4294967288 1689 .long 1330165971 1690 .long 1060367097 1691 .long 0 1692 .long 0 1693 .long 217536623 1694 .long 1059109098 1695 .long 0 1696 .long 0 1697 .long 3492120849 1698 .long 1057667827 1699 .long 602185705 1700 .long 1068194444 1701 .long 760422958 1702 .long 1056312597 1703 .long 555127889 1704 .long 1067545266 1705 .long 3139784124 1706 .long 1054987189 1707 .long 3690544014 1708 .long 1065666523 1709 .long 95707915 1710 .long 1053635428 1711 .long 4003114407 1712 .long 1064581412 1713 .long 2034926231 1714 .long 1052227513 1715 .long 3759536023 1716 .long 1063076341 1717 .long 3826928214 1718 .long 1050893819 1719 .long 3837960785 1720 .long 1061790379 1721 .long 1526325248 1722 .long 1070483918 1723 .long 2356426521 1724 .long 3172907104 1725 .long 0 1726 .long 0 1727 .long 457728975 1728 .long 1071088276 1729 .long 0 1730 .long 1072693248 1731 .long 0 1732 .long 4294967288 1733 .long 1704352102 1734 .long 3223426649 1735 .long 0 1736 .long 0 1737 .long 2284589306 1738 .long 1076258036 1739 .long 0 1740 .long 0 1741 .long 2211264291 1742 .long 3224142658 1743 .long 0 1744 .long 3221225472 1745 .long 1441186365 1746 .long 1077028579 1747 .long 1431655765 1748 .long 1074091349 1749 .long 876943673 1750 .long 3224837270 1751 .long 2863311531 1752 .long 3221924522 1753 .long 236289504 1754 .long 1077767485 1755 .long 286331153 1756 .long 1074860305 1757 .long 2805473311 1758 .long 3225598926 1759 .long 95443718 1760 .long 3222646875 1761 .long 1160476131 1762 .long 1078450742 1763 .long 463583772 1764 .long 1075552698 1765 .long 0 1766 .long 3220176896 1767 .long 0 1768 .long 0 1769 .long 0 1770 .long 1073741824 1771 .long 0 1772 .long 0 1773 .long 0 1774 .long 0 1775 .long 0 1776 .long 0 1777 .long 3349892442 1778 .long 3221773860 1779 .long 0 1780 .long 0 1781 .long 3913197405 1782 .long 1074501181 1783 .long 0 1784 .long 0 1785 .long 2494034522 1786 .long 3222222818 1787 .long 1264738763 1788 .long 3220568452 1789 .long 1520293906 1790 .long 1074899632 1791 .long 1958936600 1792 .long 1073411493 1793 .long 2133649635 1794 .long 3222535819 1795 .long 4270740730 1796 .long 3221058356 1797 .long 1728930189 1798 .long 1075224844 1799 .long 1303998552 1800 .long 1073799186 1801 .long 618611933 1802 .long 3222903903 1803 .long 1769828046 1804 .long 3221422190 1805 .long 2200537986 1806 .long 1075641421 1807 .long 433361110 1808 .long 1074105369 1809 .long 719595600 1810 .long 3219800832 1811 .long 294527206 1812 .long 1014656440 1813 .long 0 1814 .long 1073741824 1815 .long 3811788216 1816 .long 3218400550 1817 .long 0 1818 .long 0 1819 .long 0 1820 .long 0 1821 .long 724322768 1822 .long 3220364956 1823 .long 0 1824 .long 0 1825 .long 643153048 1826 .long 1072905816 1827 .long 0 1828 .long 0 1829 .long 4285079458 1830 .long 3220412206 1831 .long 3912524733 1832 .long 3220106631 1833 .long 118362272 1834 .long 1072952754 1835 .long 4107767972 1836 .long 1072827408 1837 .long 2689502883 1838 .long 3220460570 1839 .long 946523347 1840 .long 3220256414 1841 .long 573204189 1842 .long 1073001761 1843 .long 581531518 1844 .long 1072826391 1845 .long 1386236526 1846 .long 3220510607 1847 .long 3718905905 1848 .long 3220316471 1849 .long 1145558140 1850 .long 1073052673 1851 .long 513572637 1852 .long 1072861969 1853 .long 716700048 1854 .long 3219481016 1855 .long 547126769 1856 .long 3163007173 1857 .long 0 1858 .long 1072693248 1859 .long 1097907398 1860 .long 1071420120 1861 .long 0 1862 .long 0 1863 .long 0 1864 .long 0 1865 .long 3422807297 1866 .long 3219124495 1867 .long 0 1868 .long 0 1869 .long 1151658053 1870 .long 1071494715 1871 .long 0 1872 .long 0 1873 .long 929607071 1874 .long 3218829988 1875 .long 1037049034 1876 .long 3219520953 1877 .long 2786928657 1878 .long 1071215282 1879 .long 1447406859 1880 .long 1072265209 1881 .long 3490952107 1882 .long 3218574499 1883 .long 3205232916 1884 .long 3219452306 1885 .long 1297344304 1886 .long 1070977120 1887 .long 1066110976 1888 .long 1071946035 1889 .long 3803721480 1890 .long 3218354730 1891 .long 1496754229 1892 .long 3219290849 1893 .long 2982550683 1894 .long 1070773243 1895 .long 4014441989 1896 .long 1071736222 1897 .long 419968236 1898 .long 3219200695 1899 .long 3451266538 1900 .long 1015961163 1901 .long 0 1902 .long 1072693248 1903 .long 2960267235 1904 .long 1070745841 1905 .long 0 1906 .long 0 1907 .long 0 1908 .long 0 1909 .long 1458794562 1910 .long 3217882198 1911 .long 0 1912 .long 0 1913 .long 2857777489 1914 .long 1070137637 1915 .long 0 1916 .long 0 1917 .long 1024359517 1918 .long 3217360179 1919 .long 2616040238 1920 .long 3219066585 1921 .long 1609024636 1922 .long 1069675088 1923 .long 2529240549 1924 .long 1071836633 1925 .long 1510128600 1926 .long 3216923761 1927 .long 2251697184 1928 .long 3218737335 1929 .long 1262761453 1930 .long 1069142850 1931 .long 1263091857 1932 .long 1071190461 1933 .long 3043383486 1934 .long 3216368839 1935 .long 2476932470 1936 .long 3218325650 1937 .long 3659995028 1938 .long 1068669200 1939 .long 855891755 1940 .long 1070696894 1941 .long 2583490354 1942 .long 3218768505 1943 .long 3062633575 1944 .long 3161492271 1945 .long 0 1946 .long 1072693248 1947 .long 2550940471 1948 .long 1069938201 1949 .long 0 1950 .long 0 1951 .long 0 1952 .long 0 1953 .long 2467582782 1954 .long 3216740037 1955 .long 0 1956 .long 0 1957 .long 162150096 1958 .long 1068946420 1959 .long 0 1960 .long 0 1961 .long 3702794237 1962 .long 3216062800 1963 .long 3631919291 1964 .long 3218420574 1965 .long 3456821413 1966 .long 1068217218 1967 .long 2031366438 1968 .long 1071495745 1969 .long 1596664020 1970 .long 3215282929 1971 .long 1509038701 1972 .long 3218085291 1973 .long 583171477 1974 .long 1067510148 1975 .long 3785344682 1976 .long 1070618476 1977 .long 2402036048 1978 .long 3214559384 1979 .long 3233018412 1980 .long 3217396834 1981 .long 411280568 1982 .long 1066710556 1983 .long 1065584192 1984 .long 1069747896 1985 .long 895247324 1986 .long 3218303496 1987 .long 500078909 1988 .long 1013805133 1989 .long 0 1990 .long 1072693248 1991 .long 729983843 1992 .long 1068994194 1993 .long 0 1994 .long 0 1995 .long 0 1996 .long 0 1997 .long 1512545955 1998 .long 3215602695 1999 .long 0 2000 .long 0 2001 .long 1127048698 2002 .long 1067909459 2003 .long 0 2004 .long 0 2005 .long 2300200450 2006 .long 3214738415 2007 .long 3593250296 2008 .long 3217717209 2009 .long 3009365544 2010 .long 1066902117 2011 .long 1127373050 2012 .long 1071173457 2013 .long 3046103305 2014 .long 3213854947 2015 .long 24583402 2016 .long 3217207636 2017 .long 4082511758 2018 .long 1065914199 2019 .long 3223889699 2020 .long 1070020367 2021 .long 548927984 2022 .long 3212899404 2023 .long 558065897 2024 .long 3216433066 2025 .long 680073315 2026 .long 1064940726 2027 .long 388873200 2028 .long 1068944270 2029 .long 3763679576 2030 .long 3217651189 2031 .long 1497360404 2032 .long 3157194195 2033 .long 0 2034 .long 1072693248 2035 .long 64931152 2036 .long 1067729411 2037 .long 0 2038 .long 0 2039 .long 0 2040 .long 0 2041 .long 1313038235 2042 .long 3214229379 2043 .long 0 2044 .long 0 2045 .long 1013878342 2046 .long 1067152618 2047 .long 0 2048 .long 0 2049 .long 3663426833 2050 .long 3213208931 2051 .long 3693284251 2052 .long 3216602456 2053 .long 650852232 2054 .long 1065882376 2055 .long 1996245381 2056 .long 1071000265 2057 .long 2008746170 2058 .long 3212147845 2059 .long 3055842593 2060 .long 3216062494 2061 .long 1495406348 2062 .long 1064652437 2063 .long 2269530157 2064 .long 1069711235 2065 .long 285563696 2066 .long 3211060113 2067 .long 1046897440 2068 .long 3215189513 2069 .long 233429731 2070 .long 1063453151 2071 .long 522045958 2072 .long 1068476590 2073 .long 2354785698 2074 .long 3216586427 2075 .long 1317599141 2076 .long 3159915781 2077 .long 0 2078 .long 1072693248 2079 .long 2828230105 2080 .long 1065606626 2081 .long 0 2082 .long 0 2083 .long 0 2084 .long 0 2085 .type Ctable,@object 2086 .size Ctable,5632 2087 .align 16 2088MASK_35: 2089 .long 4294705152 2090 .long 4294967295 2091 .long 0 2092 .long 0 2093 .type MASK_35,@object 2094 .size MASK_35,16 2095 .align 16 2096Q_11: 2097 .long 3103673719 2098 .long 1065509018 2099 .type Q_11,@object 2100 .size Q_11,8 2101 .space 8, 0x00 # pad 2102 .align 16 2103Q_9: 2104 .long 3213130307 2105 .long 1066820768 2106 .type Q_9,@object 2107 .size Q_9,8 2108 .space 8, 0x00 # pad 2109 .align 16 2110Q_7: 2111 .long 1388628139 2112 .long 1068212666 2113 .type Q_7,@object 2114 .size Q_7,8 2115 .space 8, 0x00 # pad 2116 .align 16 2117Q_5: 2118 .long 285812550 2119 .long 1069617425 2120 .type Q_5,@object 2121 .size Q_5,8 2122 .space 8, 0x00 # pad 2123 .align 16 2124Q_3: 2125 .long 1431655954 2126 .long 1070945621 2127 .type Q_3,@object 2128 .size Q_3,8 2129 .space 8, 0x00 # pad 2130 .align 16 2131PI_INV_TABLE: 2132 .long 0 2133 .long 0 2134 .long 2734261102 2135 .long 1313084713 2136 .long 4230436817 2137 .long 4113882560 2138 .long 3680671129 2139 .long 1011060801 2140 .long 4266746795 2141 .long 3736847713 2142 .long 3072618042 2143 .long 1112396512 2144 .long 105459434 2145 .long 164729372 2146 .long 4263373596 2147 .long 2972297022 2148 .long 3900847605 2149 .long 784024708 2150 .long 3919343654 2151 .long 3026157121 2152 .long 965858873 2153 .long 2203269620 2154 .long 2625920907 2155 .long 3187222587 2156 .long 536385535 2157 .long 3724908559 2158 .long 4012839307 2159 .long 1510632735 2160 .long 1832287951 2161 .long 667617719 2162 .long 1330003814 2163 .long 2657085997 2164 .long 1965537991 2165 .long 3957715323 2166 .long 1023883767 2167 .long 2320667370 2168 .long 1811636145 2169 .long 529358088 2170 .long 1443049542 2171 .long 4235946923 2172 .long 4040145953 2173 .type PI_INV_TABLE,@object 2174 .size PI_INV_TABLE,164 2175 .space 12, 0x00 # pad 2176 .align 16 2177PI_4: 2178 .long 0 2179 .long 1072243195 2180 .long 1175561766 2181 .long 1048908043 2182 .type PI_4,@object 2183 .size PI_4,16 2184 .align 8 2185QQ_2: 2186 .long 1734816687 2187 .long 1026746297 2188 .type QQ_2,@object 2189 .size QQ_2,8 2190 .align 8 2191ONE: 2192 .long 0 2193 .long 1072693248 2194 .type ONE,@object 2195 .size ONE,8 2196 .align 8 2197TWO_POW_55: 2198 .long 0 2199 .long 1130364928 2200 .type TWO_POW_55,@object 2201 .size TWO_POW_55,8 2202 .align 8 2203TWO_POW_M55: 2204 .long 0 2205 .long 1015021568 2206 .type TWO_POW_M55,@object 2207 .size TWO_POW_M55,8 2208 .align 4 2209NEG_ZERO: 2210 .long 0 2211 .long 2147483648 2212 .type NEG_ZERO,@object 2213 .size NEG_ZERO,8 2214 .data 2215 .section .note.GNU-stack, "" 2216// -- Begin DWARF2 SEGMENT .eh_frame 2217 .section .eh_frame,"a",@progbits 2218.eh_frame_seg: 2219 .align 1 2220 .4byte 0x00000014 2221 .8byte 0x00527a0100000000 2222 .8byte 0x08070c1b01107801 2223 .4byte 0x00000190 2224 .4byte 0x0000002c 2225 .4byte 0x0000001c 2226 .4byte ..___tag_value_tan.1-. 2227 .4byte ..___tag_value_tan.9-..___tag_value_tan.1 2228 .2byte 0x0400 2229 .4byte ..___tag_value_tan.3-..___tag_value_tan.1 2230 .4byte 0x0283100e 2231 .byte 0x04 2232 .4byte ..___tag_value_tan.5-..___tag_value_tan.3 2233 .2byte 0x200e 2234 .byte 0x04 2235 .4byte ..___tag_value_tan.6-..___tag_value_tan.5 2236 .4byte 0x04c3100e 2237 .4byte ..___tag_value_tan.8-..___tag_value_tan.6 2238 .2byte 0x080e 2239# End 2240