diff --git a/sysdeps/x86_64/fpu/e_expf.S b/sysdeps/x86_64/fpu/e_expf.S new file mode 100644 index 0000000..874c0c8 --- /dev/null +++ b/sysdeps/x86_64/fpu/e_expf.S @@ -0,0 +1,314 @@ +/* Optimized __ieee754_expf function. + Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Intel Corporation. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + + .text +ENTRY(__ieee754_expf) + /* parameter 1: %xmm0 */ +L(label_1_1): + movd %xmm0, %eax + movss %xmm0, -8(%rsp) + movl %eax, %ecx + andl $2147483647, %ecx + cmpl $1118652779, %ecx + jae L(label_1_6) +L(label_1_2): + cmpl $830472192, %ecx + jae L(label_1_4) +L(label_1_3): + movss tablevalue_9(%rip), %xmm1 + addss %xmm1, %xmm0 + movss %xmm0, -16(%rsp) + ret + +L(label_1_4): + cvtss2sd -8(%rsp), %xmm3 + movaps %xmm3, %xmm0 + lea __libm_expf_table_64(%rip), %rcx + movsd tablevalue_5(%rip), %xmm2 + mulsd KLN2(%rip), %xmm0 + addsd tablevalue_1(%rip), %xmm0 + cvtsd2ss %xmm0, %xmm0 + movss %xmm0, -16(%rsp) + movss -16(%rsp), %xmm1 + movsd tablevalue_3(%rip), %xmm0 + movl -16(%rsp), %edx + movl %edx, %eax + shll $26, %eax + subss tablevalue_2(%rip), %xmm1 + cvtss2sd %xmm1, %xmm1 + mulsd NLN2K(%rip), %xmm1 + sarl $26, %eax + addsd %xmm1, %xmm3 + movaps %xmm3, %xmm4 + mulsd %xmm3, %xmm4 + mulsd %xmm4, %xmm0 + movslq %eax, %rax + addsd tablevalue_4(%rip), %xmm0 + mulsd %xmm4, %xmm0 + subl %eax, %edx + mulsd %xmm2, %xmm4 + shrl $6, %edx + addsd tablevalue_6(%rip), %xmm4 + mulsd %xmm3, %xmm4 + shll $23, %edx + addsd %xmm4, %xmm0 + mulsd 256(%rcx, %rax, 8), %xmm0 + addl $1065353216, %edx + movl %edx, -24(%rsp) + cvtss2sd -24(%rsp), %xmm5 + addsd 256(%rcx, %rax, 8), %xmm0 + mulsd %xmm5, %xmm0 + cvtsd2ss %xmm0, %xmm0 +L(label_1_5): + ret + +L(label_1_6): + shrl $31, %eax + lea range(%rip), %rdx + cmpl (%rdx, %rax, 4), %ecx + jbe L(label_1_16) +L(label_1_7): + cmpl $2139095040, %ecx + jae L(label_1_12) +L(label_1_8): + testq %rax, %rax + je L(label_1_10) +L(label_1_9): + movss tablevalue_7(%rip), %xmm0 + mulss %xmm0, %xmm0 + ret + +L(label_1_10): + movss tablevalue_8(%rip), %xmm0 + mulss %xmm0, %xmm0 +L(label_1_11): + ret + +L(label_1_12): + jne L(label_1_14) +L(label_1_13): + lea _inf_zero(%rip), %rdx + movss (%rdx, %rax, 4), %xmm0 + ret + +L(label_1_14): + movss -8(%rsp), %xmm0 + addss %xmm0, %xmm0 +L(label_1_15): + ret + +L(label_1_16): + cvtss2sd -8(%rsp), %xmm4 + movaps %xmm4, %xmm1 + lea __libm_expf_table_64(%rip), %rsi + mulsd KLN2(%rip), %xmm1 + movq $0x3ff0000000000000, %rcx + movsd tablevalue_3(%rip), %xmm0 + movsd tablevalue_5(%rip), %xmm3 + addsd tablevalue_1(%rip), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, -16(%rsp) + movss -16(%rsp), %xmm2 + movl -16(%rsp), %edx + andl $4194303, %edx + subss tablevalue_2(%rip), %xmm2 + cvtss2sd %xmm2, %xmm2 + mulsd NLN2K(%rip), %xmm2 + movl %edx, %eax + shll $26, %eax + addsd %xmm2, %xmm4 + movaps %xmm4, %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm5, %xmm0 + sarl $26, %eax + addsd tablevalue_4(%rip), %xmm0 + mulsd %xmm5, %xmm0 + mulsd %xmm3, %xmm5 + movslq %eax, %rax + addsd tablevalue_6(%rip), %xmm5 + mulsd %xmm4, %xmm5 + subl %eax, %edx + shrl $6, %edx + addsd %xmm5, %xmm0 + mulsd 256(%rsi, %rax, 8), %xmm0 + addsd 256(%rsi, %rax, 8), %xmm0 + shlq $52, %rdx + addq %rcx, %rdx + movq %rdx, -24(%rsp) + mulsd -24(%rsp), %xmm0 + cvtsd2ss %xmm0, %xmm0 + ret +END(__ieee754_expf) + + .section .rodata, "a" + .align ALIGNARG(5) + .align ALIGNARG(5) +__libm_expf_table_64: + .long 0x667f3bcd, 0x3fe6a09e + .long 0x3c651a2f, 0x3fe6dfb2 + .long 0xe8ec5f74, 0x3fe71f75 + .long 0x564267c9, 0x3fe75feb + .long 0x73eb0187, 0x3fe7a114 + .long 0x36cf4e62, 0x3fe7e2f3 + .long 0x994cce13, 0x3fe82589 + .long 0x9b4492ed, 0x3fe868d9 + .long 0x422aa0db, 0x3fe8ace5 + .long 0x99157736, 0x3fe8f1ae + .long 0xb0cdc5e5, 0x3fe93737 + .long 0x9fde4e50, 0x3fe97d82 + .long 0x82a3f090, 0x3fe9c491 + .long 0x7b5de565, 0x3fea0c66 + .long 0xb23e255d, 0x3fea5503 + .long 0x5579fdbf, 0x3fea9e6b + .long 0x995ad3ad, 0x3feae89f + .long 0xb84f15fb, 0x3feb33a2 + .long 0xf2fb5e47, 0x3feb7f76 + .long 0x904bc1d2, 0x3febcc1e + .long 0xdd85529c, 0x3fec199b + .long 0x2e57d14b, 0x3fec67f1 + .long 0xdcef9069, 0x3fecb720 + .long 0x4a07897c, 0x3fed072d + .long 0xdcfba487, 0x3fed5818 + .long 0x03db3285, 0x3feda9e6 + .long 0x337b9b5f, 0x3fedfc97 + .long 0xe78b3ff6, 0x3fee502e + .long 0xa2a490da, 0x3feea4af + .long 0xee615a27, 0x3feefa1b + .long 0x5b6e4540, 0x3fef5076 + .long 0x819e90d8, 0x3fefa7c1 + .long 0x00000000, 0x3ff00000 + .long 0x3e778061, 0x3ff02c9a + .long 0xd3158574, 0x3ff059b0 + .long 0x18759bc8, 0x3ff08745 + .long 0x6cf9890f, 0x3ff0b558 + .long 0x32d3d1a2, 0x3ff0e3ec + .long 0xd0125b51, 0x3ff11301 + .long 0xaea92de0, 0x3ff1429a + .long 0x3c7d517b, 0x3ff172b8 + .long 0xeb6fcb75, 0x3ff1a35b + .long 0x3168b9aa, 0x3ff1d487 + .long 0x88628cd6, 0x3ff2063b + .long 0x6e756238, 0x3ff2387a + .long 0x65e27cdd, 0x3ff26b45 + .long 0xf51fdee1, 0x3ff29e9d + .long 0xa6e4030b, 0x3ff2d285 + .long 0x0a31b715, 0x3ff306fe + .long 0xb26416ff, 0x3ff33c08 + .long 0x373aa9cb, 0x3ff371a7 + .long 0x34e59ff7, 0x3ff3a7db + .long 0x4c123422, 0x3ff3dea6 + .long 0x21f72e2a, 0x3ff4160a + .long 0x6061892d, 0x3ff44e08 + .long 0xb5c13cd0, 0x3ff486a2 + .long 0xd5362a27, 0x3ff4bfda + .long 0x769d2ca7, 0x3ff4f9b2 + .long 0x569d4f82, 0x3ff5342b + .long 0x36b527da, 0x3ff56f47 + .long 0xdd485429, 0x3ff5ab07 + .long 0x15ad2148, 0x3ff5e76f + .long 0xb03a5585, 0x3ff6247e + .long 0x82552225, 0x3ff66238 + .long 0x667f3bcd, 0x3ff6a09e + ASM_TYPE_DIRECTIVE(__libm_expf_table_64, @object) + ASM_SIZE_DIRECTIVE(__libm_expf_table_64) + + .align ALIGNARG(3) +KLN2: + .long 0x652b82fe, 0x40571547 + ASM_TYPE_DIRECTIVE(KLN2, @object) + ASM_SIZE_DIRECTIVE(KLN2) + + .align ALIGNARG(3) +NLN2K: + .long 0xfefa39ef, 0xbf862e42 + ASM_TYPE_DIRECTIVE(NLN2K, @object) + ASM_SIZE_DIRECTIVE(NLN2K) + + .align ALIGNARG(3) +tablevalue_1: + .long 0x00000000, 0x41680000 + ASM_TYPE_DIRECTIVE(tablevalue_1, @object) + ASM_SIZE_DIRECTIVE(tablevalue_1) + + .align ALIGNARG(3) +tablevalue_3: + .long 0xeb78fa85, 0x3fa56420 + ASM_TYPE_DIRECTIVE(tablevalue_3, @object) + ASM_SIZE_DIRECTIVE(tablevalue_3) + + .align ALIGNARG(3) +tablevalue_4: + .long 0x008d6118, 0x3fe00000 + ASM_TYPE_DIRECTIVE(tablevalue_4, @object) + ASM_SIZE_DIRECTIVE(tablevalue_4) + + .align ALIGNARG(3) +tablevalue_5: + .long 0xda752d4f, 0x3fc55550 + ASM_TYPE_DIRECTIVE(tablevalue_5, @object) + ASM_SIZE_DIRECTIVE(tablevalue_5) + + .align ALIGNARG(3) +tablevalue_6: + .long 0xffffe7c6, 0x3fefffff + ASM_TYPE_DIRECTIVE(tablevalue_6, @object) + ASM_SIZE_DIRECTIVE(tablevalue_6) + + .align ALIGNARG(2) +range: + .long 1118925335 + .long 1120924084 + ASM_TYPE_DIRECTIVE(range, @object) + ASM_SIZE_DIRECTIVE(range) + + .align ALIGNARG(2) +_inf_zero: + .long 2139095040 + .long 0 + ASM_TYPE_DIRECTIVE(_inf_zero, @object) + ASM_SIZE_DIRECTIVE(_inf_zero) + + .align ALIGNARG(2) +tablevalue_2: + .long 0x4b400000 + ASM_TYPE_DIRECTIVE(tablevalue_2, @object) + ASM_SIZE_DIRECTIVE(tablevalue_2) + + .align ALIGNARG(2) +tablevalue_7: + .long 0x0d800000 + ASM_TYPE_DIRECTIVE(tablevalue_7, @object) + ASM_SIZE_DIRECTIVE(tablevalue_7) + + .align ALIGNARG(2) +tablevalue_8: + .long 0x71800000 + ASM_TYPE_DIRECTIVE(tablevalue_8, @object) + ASM_SIZE_DIRECTIVE(tablevalue_8) + + .align ALIGNARG(2) +tablevalue_9: + .long 0x3f800000 + ASM_TYPE_DIRECTIVE(tablevalue_9, @object) + ASM_SIZE_DIRECTIVE(tablevalue_9) + +strong_alias (__ieee754_expf, __expf_finite) diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile index be68903..69bb781 100644 --- a/sysdeps/x86_64/fpu/multiarch/Makefile +++ b/sysdeps/x86_64/fpu/multiarch/Makefile @@ -1,3 +1,5 @@ +libm-sysdep_routines += e_exp-sse2 + ifeq ($(subdir),math) libm-sysdep_routines += s_floor-c s_ceil-c s_floorf-c s_ceilf-c \ s_rint-c s_rintf-c s_nearbyint-c s_nearbyintf-c diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp-sse2.S b/sysdeps/x86_64/fpu/multiarch/e_exp-sse2.S new file mode 100644 index 0000000..1384127 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/e_exp-sse2.S @@ -0,0 +1,4199 @@ +/* Optimized __ieee754_exp and __exp1 functions. + Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Intel Corporation. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + + .text +ENTRY (__ieee754_exp_sse2) + /* parameter 1: %xmm0 */ + lea -24(%rsp), %rsp + movq binexp(%rip), %rax + movq %rax, 8(%rsp) + movsd %xmm0, 16(%rsp) + movl hugeint(%rip), %eax + andl 20(%rsp), %eax + movl 20(%rsp), %edi + cmpl $1016070143, %eax + jle L(label_1_34) + cmpl bigint(%rip), %eax + jge L(label_1_7) + movsd log2e(%rip), %xmm1 + movaps %xmm0, %xmm13 + mulsd %xmm0, %xmm1 + lea fine(%rip), %rsi + movsd ln_two2(%rip), %xmm6 + lea coar(%rip), %rcx + movsd ln_two1(%rip), %xmm2 + movsd three33(%rip), %xmm4 + movsd p3(%rip), %xmm7 + addsd three51(%rip), %xmm1 + movaps %xmm1, %xmm3 + movsd %xmm1, 16(%rsp) + movl 16(%rsp), %edi + shll $20, %edi + subsd three51(%rip), %xmm3 + mulsd %xmm3, %xmm6 + addl $1072693248, %edi + mulsd %xmm2, %xmm3 + subsd %xmm3, %xmm13 + addsd %xmm13, %xmm4 + movaps %xmm4, %xmm5 + movsd %xmm4, (%rsp) + movl (%rsp), %edx + movl %edx, %eax + sarl $8, %eax + andl $511, %edx + andl $-2, %eax + addl %edx, %edx + addl $356, %eax + movslq %eax, %rax + subsd three33(%rip), %xmm5 + movsd (%rsi, %rdx, 8), %xmm9 + subsd %xmm5, %xmm13 + movsd 8(%rsi, %rdx, 8), %xmm10 + movaps %xmm9, %xmm15 + movsd (%rcx, %rax, 8), %xmm14 + subsd %xmm6, %xmm13 + mulsd %xmm14, %xmm15 + mulsd %xmm10, %xmm14 + mulsd %xmm13, %xmm7 + movsd 8(%rcx, %rax, 8), %xmm11 + movaps %xmm13, %xmm8 + mulsd %xmm11, %xmm9 + addsd p2(%rip), %xmm7 + mulsd %xmm13, %xmm8 + mulsd %xmm10, %xmm11 + addsd %xmm9, %xmm14 + mulsd %xmm7, %xmm8 + addsd %xmm11, %xmm14 + addsd %xmm8, %xmm13 + movaps %xmm14, %xmm12 + movaps %xmm15, %xmm2 + mulsd %xmm13, %xmm12 + mulsd %xmm15, %xmm13 + addsd %xmm12, %xmm14 + addsd %xmm13, %xmm14 + addsd %xmm14, %xmm2 + subsd %xmm2, %xmm15 + addsd %xmm14, %xmm15 + mulsd err_0(%rip), %xmm15 + addsd %xmm2, %xmm15 + ucomisd %xmm15, %xmm2 + jne L(label_1_24) + jp L(label_1_24) + movl %edi, 12(%rsp) + movsd 8(%rsp), %xmm1 + mulsd %xmm1, %xmm2 + movaps %xmm2, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_7): + cmpl badint(%rip), %eax + jl L(label_1_18) + cmpl $2146435072, %eax + jg L(label_1_16) + jge L(label_1_14) + xorps %xmm1, %xmm1 + comisd %xmm1, %xmm0 + jbe L(label_1_12) + movsd hhuge(%rip), %xmm0 + mulsd %xmm0, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_12): + movsd tiny(%rip), %xmm0 + mulsd %xmm0, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_14): + cmpl $0, 16(%rsp) + jne L(label_1_16) + movsd inf(%rip), %xmm2 + xorps %xmm1, %xmm1 + comisd %xmm1, %xmm0 + ja L(label_10) + movaps %xmm1, %xmm2 +L(label_10): + movaps %xmm2, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_16): + addsd %xmm0, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_18): + movsd log2e(%rip), %xmm1 + movaps %xmm0, %xmm13 + mulsd %xmm0, %xmm1 + lea fine(%rip), %rsi + movsd ln_two2(%rip), %xmm6 + lea coar(%rip), %rcx + movsd ln_two1(%rip), %xmm2 + movsd three33(%rip), %xmm4 + movsd p3(%rip), %xmm7 + addsd three51(%rip), %xmm1 + movaps %xmm1, %xmm3 + movsd %xmm1, 16(%rsp) + subsd three51(%rip), %xmm3 + mulsd %xmm3, %xmm6 + mulsd %xmm2, %xmm3 + subsd %xmm3, %xmm13 + addsd %xmm13, %xmm4 + movaps %xmm4, %xmm5 + movsd %xmm4, (%rsp) + movl (%rsp), %edx + movl %edx, %eax + sarl $8, %eax + andl $511, %edx + andl $-2, %eax + addl %edx, %edx + addl $356, %eax + movslq %eax, %rax + testl $-2147483648, %edi + subsd three33(%rip), %xmm5 + movsd (%rsi, %rdx, 8), %xmm9 + subsd %xmm5, %xmm13 + movsd 8(%rsi, %rdx, 8), %xmm10 + movaps %xmm9, %xmm4 + movsd (%rcx, %rax, 8), %xmm14 + subsd %xmm6, %xmm13 + mulsd %xmm14, %xmm4 + mulsd %xmm10, %xmm14 + mulsd %xmm13, %xmm7 + movsd 8(%rcx, %rax, 8), %xmm11 + movaps %xmm13, %xmm8 + mulsd %xmm11, %xmm9 + addsd p2(%rip), %xmm7 + mulsd %xmm13, %xmm8 + mulsd %xmm10, %xmm11 + addsd %xmm9, %xmm14 + mulsd %xmm7, %xmm8 + addsd %xmm11, %xmm14 + addsd %xmm8, %xmm13 + movaps %xmm14, %xmm12 + movaps %xmm4, %xmm5 + mulsd %xmm13, %xmm12 + mulsd %xmm4, %xmm13 + addsd %xmm12, %xmm14 + addsd %xmm13, %xmm14 + addsd %xmm14, %xmm5 + subsd %xmm5, %xmm4 + addsd %xmm14, %xmm4 + je L(label_1_30) + movsd tablevalue_28(%rip), %xmm1 + movl 16(%rsp), %eax + comisd %xmm5, %xmm1 + jbe L(label_1_21) + decl %eax + addsd %xmm5, %xmm5 + addsd %xmm4, %xmm4 +L(label_1_21): + cmpl $-1022, %eax + jl L(label_1_26) + mulsd err_0(%rip), %xmm4 + addsd %xmm5, %xmm4 + ucomisd %xmm4, %xmm5 + jne L(label_1_24) + jp L(label_1_24) + shll $20, %eax + addl $1072693248, %eax + movl %eax, 12(%rsp) + mulsd 8(%rsp), %xmm5 + movaps %xmm5, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_24): + call __slowexp@PLT + lea 24(%rsp), %rsp + ret + +L(label_1_26): + negl %eax + movaps %xmm1, %xmm2 + addl $-1022, %eax + negl %eax + shll $20, %eax + addl $1072693248, %eax + movl %eax, 12(%rsp) + mulsd 8(%rsp), %xmm5 + mulsd 8(%rsp), %xmm4 + addsd %xmm5, %xmm2 + movsd err_0(%rip), %xmm3 + subsd %xmm2, %xmm1 + mulsd 8(%rsp), %xmm3 + addsd %xmm5, %xmm1 + addsd tablevalue_27(%rip), %xmm3 + addsd %xmm4, %xmm1 + movaps %xmm2, %xmm4 + addsd %xmm1, %xmm4 + subsd %xmm4, %xmm2 + addsd %xmm1, %xmm2 + mulsd %xmm2, %xmm3 + addsd %xmm4, %xmm3 + ucomisd %xmm3, %xmm4 + jne L(label_1_24) + jp L(label_1_24) + movl $1048576, 12(%rsp) + subsd tablevalue_28(%rip), %xmm4 + mulsd 8(%rsp), %xmm4 + movaps %xmm4, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_30): + movsd err_0(%rip), %xmm1 + mulsd %xmm1, %xmm4 + movl 16(%rsp), %eax + addsd %xmm5, %xmm4 + shll $20, %eax + addl $804257792, %eax + ucomisd %xmm4, %xmm5 + jne L(label_1_24) + jp L(label_1_24) + movl %eax, 12(%rsp) + movsd 8(%rsp), %xmm1 + mulsd %xmm1, %xmm5 + mulsd t256(%rip), %xmm5 + movaps %xmm5, %xmm0 + lea 24(%rsp), %rsp + ret + +L(label_1_34): + movsd tablevalue_28(%rip), %xmm0 + lea 24(%rsp), %rsp + ret +END(__ieee754_exp_sse2) + + .text +ENTRY(__exp1_sse2) + /* parameter 1: %xmm0 */ + /* parameter 2: %xmm1 */ + /* parameter 3: %xmm2 */ + movq binexp(%rip), %rax + movq %rax, -16(%rsp) + movsd %xmm0, -8(%rsp) + movl hugeint(%rip), %eax + andl -4(%rsp), %eax + movl -4(%rsp), %edi + cmpl $1016070143, %eax + jle L(label_2_30) + cmpl bigint(%rip), %eax + jge L(label_2_6) + movsd log2e(%rip), %xmm3 + lea fine(%rip), %rsi + mulsd %xmm0, %xmm3 + lea coar(%rip), %rcx + movsd ln_two2(%rip), %xmm8 + movsd ln_two1(%rip), %xmm4 + movsd three33(%rip), %xmm6 + movsd tablevalue_37(%rip), %xmm15 + addsd three51(%rip), %xmm3 + addsd %xmm15, %xmm2 + movaps %xmm3, %xmm5 + addsd err_1(%rip), %xmm2 + subsd three51(%rip), %xmm5 + mulsd %xmm5, %xmm8 + mulsd %xmm4, %xmm5 + subsd %xmm8, %xmm1 + subsd %xmm5, %xmm0 + movsd %xmm3, -8(%rsp) + addsd %xmm0, %xmm6 + movaps %xmm6, %xmm7 + movsd %xmm6, -24(%rsp) + movl -24(%rsp), %edx + movl %edx, %eax + sarl $8, %eax + andl $511, %edx + andl $-2, %eax + addl %edx, %edx + addl $356, %eax + movslq %eax, %rax + subsd three33(%rip), %xmm7 + movsd (%rsi, %rdx, 8), %xmm10 + subsd %xmm7, %xmm0 + movsd 8(%rsi, %rdx, 8), %xmm11 + addsd %xmm1, %xmm0 + movsd p3(%rip), %xmm1 + movaps %xmm0, %xmm9 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm9 + addsd p2(%rip), %xmm1 + mulsd %xmm1, %xmm9 + movaps %xmm10, %xmm1 + movsd (%rcx, %rax, 8), %xmm14 + addsd %xmm9, %xmm0 + mulsd %xmm14, %xmm1 + mulsd %xmm11, %xmm14 + movsd 8(%rcx, %rax, 8), %xmm12 + mulsd %xmm12, %xmm10 + mulsd %xmm11, %xmm12 + addsd %xmm10, %xmm14 + movl -8(%rsp), %edi + addsd %xmm12, %xmm14 + movaps %xmm14, %xmm13 + mulsd %xmm0, %xmm13 + mulsd %xmm1, %xmm0 + addsd %xmm13, %xmm14 + shll $20, %edi + addsd %xmm0, %xmm14 + movaps %xmm1, %xmm0 + addl $1072693248, %edi + addsd %xmm14, %xmm0 + subsd %xmm0, %xmm1 + addsd %xmm14, %xmm1 + mulsd %xmm2, %xmm1 + addsd %xmm0, %xmm1 + ucomisd %xmm1, %xmm0 + jp L(label_2_4) + je L(label_2_31) +L(label_2_4): + movsd tablevalue_35(%rip), %xmm0 + ret + +L(label_2_6): + cmpl badint(%rip), %eax + jl L(label_2_17) + cmpl $2146435072, %eax + jg L(label_2_15) + jge L(label_2_13) + xorps %xmm1, %xmm1 + comisd %xmm1, %xmm0 + jbe L(label_2_11) + movsd hhuge(%rip), %xmm0 + mulsd %xmm0, %xmm0 + ret + +L(label_2_11): + movsd tiny(%rip), %xmm0 + mulsd %xmm0, %xmm0 + ret + +L(label_2_13): + cmpl $0, -8(%rsp) + jne L(label_2_15) + movsd inf(%rip), %xmm2 + xorps %xmm1, %xmm1 + comisd %xmm1, %xmm0 + ja L(label_27) + movaps %xmm1, %xmm2 +L(label_27): + movaps %xmm2, %xmm0 + ret + +L(label_2_15): + movsd zero(%rip), %xmm0 + divsd %xmm0, %xmm0 + ret + +L(label_2_17): + movsd log2e(%rip), %xmm3 + lea fine(%rip), %rsi + mulsd %xmm0, %xmm3 + lea coar(%rip), %rcx + movsd ln_two2(%rip), %xmm8 + movsd ln_two1(%rip), %xmm4 + movsd three33(%rip), %xmm6 + addsd three51(%rip), %xmm3 + movaps %xmm3, %xmm5 + movsd %xmm3, -8(%rsp) + subsd three51(%rip), %xmm5 + mulsd %xmm5, %xmm8 + mulsd %xmm4, %xmm5 + subsd %xmm8, %xmm1 + subsd %xmm5, %xmm0 + addsd %xmm0, %xmm6 + movaps %xmm6, %xmm7 + movsd %xmm6, -24(%rsp) + movl -24(%rsp), %edx + movl %edx, %eax + sarl $8, %eax + andl $511, %edx + andl $-2, %eax + addl %edx, %edx + addl $356, %eax + movslq %eax, %rax + testl $-2147483648, %edi + subsd three33(%rip), %xmm7 + movsd (%rsi, %rdx, 8), %xmm10 + subsd %xmm7, %xmm0 + movsd 8(%rsi, %rdx, 8), %xmm11 + movaps %xmm10, %xmm5 + movsd (%rcx, %rax, 8), %xmm14 + addsd %xmm1, %xmm0 + mulsd %xmm14, %xmm5 + mulsd %xmm11, %xmm14 + movsd p3(%rip), %xmm1 + movaps %xmm0, %xmm9 + mulsd %xmm0, %xmm1 + mulsd %xmm0, %xmm9 + addsd p2(%rip), %xmm1 + movsd 8(%rcx, %rax, 8), %xmm12 + mulsd %xmm12, %xmm10 + mulsd %xmm11, %xmm12 + mulsd %xmm1, %xmm9 + addsd %xmm10, %xmm14 + addsd %xmm9, %xmm0 + addsd %xmm12, %xmm14 + movaps %xmm14, %xmm13 + mulsd %xmm0, %xmm13 + mulsd %xmm5, %xmm0 + addsd %xmm13, %xmm14 + addsd %xmm0, %xmm14 + movaps %xmm5, %xmm0 + addsd %xmm14, %xmm0 + subsd %xmm0, %xmm5 + addsd %xmm14, %xmm5 + je L(label_2_27) + movsd tablevalue_37(%rip), %xmm3 + movl -8(%rsp), %eax + comisd %xmm0, %xmm3 + jbe L(label_2_20) + decl %eax + addsd %xmm0, %xmm0 + addsd %xmm5, %xmm5 +L(label_2_20): + cmpl $-1022, %eax + jl L(label_2_24) + addsd %xmm3, %xmm2 + addsd err_1(%rip), %xmm2 + mulsd %xmm2, %xmm5 + addsd %xmm0, %xmm5 + ucomisd %xmm5, %xmm0 + jp L(label_2_22) + je L(label_2_32) +L(label_2_22): + movsd tablevalue_35(%rip), %xmm0 + ret + +L(label_2_24): + negl %eax + movaps %xmm3, %xmm4 + addl $-1022, %eax + negl %eax + shll $20, %eax + addl $1072693248, %eax + movl %eax, -12(%rsp) + mulsd -16(%rsp), %xmm0 + mulsd -16(%rsp), %xmm5 + addsd %xmm0, %xmm4 + movsd err_1(%rip), %xmm1 + subsd %xmm4, %xmm3 + addsd %xmm1, %xmm2 + addsd %xmm0, %xmm3 + mulsd -16(%rsp), %xmm2 + addsd %xmm5, %xmm3 + addsd tablevalue_36(%rip), %xmm2 + movaps %xmm4, %xmm0 + addsd %xmm3, %xmm0 + subsd %xmm0, %xmm4 + addsd %xmm3, %xmm4 + mulsd %xmm4, %xmm2 + addsd %xmm0, %xmm2 + ucomisd %xmm2, %xmm0 + jp L(label_2_25) + je L(label_2_33) +L(label_2_25): + movsd tablevalue_35(%rip), %xmm0 + ret + +L(label_2_27): + movsd tablevalue_37(%rip), %xmm1 + movl -8(%rsp), %eax + addsd %xmm1, %xmm2 + shll $20, %eax + addsd err_1(%rip), %xmm2 + mulsd %xmm2, %xmm5 + addl $804257792, %eax + addsd %xmm0, %xmm5 + ucomisd %xmm5, %xmm0 + jp L(label_2_28) + je L(label_2_34) +L(label_2_28): + movsd tablevalue_35(%rip), %xmm0 + ret + +L(label_2_30): + movsd tablevalue_37(%rip), %xmm0 + ret + +L(label_2_31): + movl %edi, -12(%rsp) + movsd -16(%rsp), %xmm1 + mulsd %xmm1, %xmm0 + ret + +L(label_2_32): + shll $20, %eax + addl $1072693248, %eax + movl %eax, -12(%rsp) + mulsd -16(%rsp), %xmm0 + ret + +L(label_2_33): + movl $1048576, -12(%rsp) + subsd tablevalue_37(%rip), %xmm0 + mulsd -16(%rsp), %xmm0 + ret + +L(label_2_34): + movl %eax, -12(%rsp) + movsd -16(%rsp), %xmm1 + mulsd %xmm1, %xmm0 + mulsd t256(%rip), %xmm0 + ret + +END(__exp1_sse2) + + .section .rodata, "a" + + .align ALIGNARG(5) +binexp: + .long 0 + .long 0 + + .align ALIGNARG(5) +coar: + .long -939524096 + .long 1072077401 + .long 1618594295 + .long 1039281485 + .long -939524096 + .long 1072080297 + .long 632252451 + .long 1041860653 + .long 1946157056 + .long 1072083199 + .long 836419417 + .long -1105062794 + .long -939524096 + .long 1072086106 + .long -1717380086 + .long 1042485932 + .long -805306368 + .long 1072089019 + .long -828402859 + .long -1104783066 + .long -2080374784 + .long 1072091938 + .long 757698029 + .long 1043278886 + .long -201326592 + .long 1072094862 + .long 510954799 + .long -1104231794 + .long 335544320 + .long 1072097793 + .long -963856411 + .long 1043172461 + .long -201326592 + .long 1072100728 + .long 1100997360 + .long 1039014558 + .long -1879048192 + .long 1072103670 + .long -558977484 + .long -1107354883 + .long -335544320 + .long 1072106617 + .long 1435201826 + .long -1106824962 + .long 201326592 + .long 1072109571 + .long 757599291 + .long -1104819323 + .long -268435456 + .long 1072112529 + .long 863730516 + .long -1106840882 + .long -1677721600 + .long 1072115494 + .long 1170221938 + .long 1042848714 + .long 402653184 + .long 1072118465 + .long 1345974730 + .long -1105666394 + .long 1610612736 + .long 1072121441 + .long -2033318600 + .long -1106653040 + .long 2013265920 + .long 1072124423 + .long -808559141 + .long 1042878073 + .long 1744830464 + .long 1072127411 + .long -1303797380 + .long 1037442544 + .long 738197504 + .long 1072130405 + .long -516667913 + .long 1043276535 + .long -805306368 + .long 1072133404 + .long -2024901170 + .long -1104358316 + .long 1275068416 + .long 1072136410 + .long -549198916 + .long -1107207730 + .long -1476395008 + .long 1072139421 + .long 1771705138 + .long 1042780817 + .long -335544320 + .long 1072142438 + .long 769231980 + .long -1104540723 + .long 268435456 + .long 1072145462 + .long 363632542 + .long 1042674549 + .long 536870912 + .long 1072148491 + .long 803929334 + .long 1042730229 + .long 469762048 + .long 1072151526 + .long 1403891047 + .long 1042797812 + .long 134217728 + .long 1072154567 + .long 2143130982 + .long 1041297095 + .long -469762048 + .long 1072157613 + .long -1702683258 + .long 1042823152 + .long -1207959552 + .long 1072160666 + .long 1555350363 + .long -1106076704 + .long -2147483648 + .long 1072163725 + .long 37023821 + .long 1042520330 + .long 1140850688 + .long 1072166790 + .long 1691732034 + .long 1043249159 + .long 134217728 + .long 1072169861 + .long 45410792 + .long 1041221743 + .long -872415232 + .long 1072172937 + .long 2067952831 + .long -1109936717 + .long -1811939328 + .long 1072176020 + .long -1197887473 + .long -1105819509 + .long 1610612736 + .long 1072179109 + .long 1586811221 + .long 1042844017 + .long 939524096 + .long 1072182204 + .long 161431134 + .long 1043001010 + .long 536870912 + .long 1072185305 + .long 1073089404 + .long -1104955102 + .long 335544320 + .long 1072188412 + .long 767393810 + .long -1107831887 + .long 469762048 + .long 1072191525 + .long -1467536405 + .long -1108194397 + .long 939524096 + .long 1072194644 + .long 27924647 + .long 1043267076 + .long 1879048192 + .long 1072197769 + .long -1807444318 + .long 1042389100 + .long -1006632960 + .long 1072200900 + .long -1222640897 + .long 1040804491 + .long 939524096 + .long 1072204038 + .long -1135838523 + .long -1105080822 + .long -872415232 + .long 1072207181 + .long -1161812847 + .long -1106809019 + .long -2080374784 + .long 1072210331 + .long -652035803 + .long 1043025826 + .long 1744830464 + .long 1072213487 + .long 1679319983 + .long 1039620571 + .long 2013265920 + .long 1072216649 + .long -961847804 + .long -1104299652 + .long -1275068416 + .long 1072219817 + .long -501913837 + .long -1104857524 + .long 536870912 + .long 1072222992 + .long -2043940873 + .long 1042017148 + .long -1006632960 + .long 1072226172 + .long 485110693 + .long -1108026100 + .long -1610612736 + .long 1072229359 + .long 1366916423 + .long -1104857121 + .long -1275068416 + .long 1072232552 + .long -267355352 + .long 1041215940 + .long 134217728 + .long 1072235752 + .long -535074627 + .long 1040897697 + .long -1677721600 + .long 1072238957 + .long 528013785 + .long 1042882839 + .long 2013265920 + .long 1072242169 + .long 1330701775 + .long -1105365542 + .long -1744830464 + .long 1072245387 + .long 1955962456 + .long 1038422059 + .long 67108864 + .long 1072248612 + .long -769561547 + .long -1107178928 + .long -1140850688 + .long 1072251842 + .long -1330620284 + .long 1042439165 + .long -939524096 + .long 1072255079 + .long 1622656449 + .long -1106304637 + .long 603979776 + .long 1072258323 + .long -1249508287 + .long 1043313786 + .long -603979776 + .long 1072261572 + .long -489421410 + .long -1107165230 + .long -335544320 + .long 1072264828 + .long 314272397 + .long -1108742798 + .long 1476395008 + .long 1072268091 + .long 1136655140 + .long 1043019797 + .long 671088640 + .long 1072271360 + .long -291590882 + .long 1040448034 + .long 1543503872 + .long 1072274635 + .long 930167031 + .long -1105119167 + .long -201326592 + .long 1072277916 + .long -614241132 + .long 1041727749 + .long -134217728 + .long 1072281204 + .long -177077982 + .long 1042177658 + .long 1811939328 + .long 1072284499 + .long -1565762898 + .long -1104966657 + .long 1275068416 + .long 1072287800 + .long -113517608 + .long 1042745491 + .long -1543503872 + .long 1072291107 + .long 894142159 + .long 1039402016 + .long 1946157056 + .long 1072294421 + .long -1999960393 + .long -1104316717 + .long -1140850688 + .long 1072297741 + .long -1630475168 + .long -1104865735 + .long -2147483648 + .long 1072301068 + .long -488774394 + .long 1042220777 + .long -939524096 + .long 1072304401 + .long -1905413001 + .long 1040270665 + .long -1811939328 + .long 1072307741 + .long -126786295 + .long -1108034537 + .long -402653184 + .long 1072311087 + .long -630048183 + .long -1105131557 + .long -1006632960 + .long 1072314440 + .long -1737841815 + .long 1041929002 + .long 805306368 + .long 1072317800 + .long 1096363227 + .long 1041858706 + .long 805306368 + .long 1072321166 + .long 1735117496 + .long -1104271857 + .long -1073741824 + .long 1072324538 + .long 761091600 + .long 1038280737 + .long -402653184 + .long 1072327917 + .long 2107769191 + .long 1043296326 + .long -1342177280 + .long 1072331303 + .long -101012176 + .long -1105385422 + .long 335544320 + .long 1072334696 + .long 1140485189 + .long -1104939128 + .long 402653184 + .long 1072338095 + .long -1442306254 + .long 1040260647 + .long -1006632960 + .long 1072341500 + .long -964497217 + .long -1105151285 + .long 402653184 + .long 1072344913 + .long 2077265016 + .long -1104295971 + .long 335544320 + .long 1072348332 + .long -1548677222 + .long 1042444706 + .long -1006632960 + .long 1072351757 + .long 2036791628 + .long -1105902436 + .long 603979776 + .long 1072355190 + .long 1876489198 + .long 1037066551 + .long 1006632960 + .long 1072358629 + .long -1940253622 + .long -1104773935 + .long 201326592 + .long 1072362075 + .long -1247958709 + .long -1104550524 + .long -1744830464 + .long 1072365527 + .long 2068977967 + .long -1104945201 + .long -469762048 + .long 1072368986 + .long 2024237893 + .long -1105399042 + .long -201326592 + .long 1072372452 + .long 2127040502 + .long -1104960159 + .long -939524096 + .long 1072375925 + .long -1825641112 + .long 1042465993 + .long 1744830464 + .long 1072379405 + .long -1249690473 + .long 1043007580 + .long -671088640 + .long 1072382891 + .long -1816579686 + .long -1107169133 + .long 402653184 + .long 1072386385 + .long -88283536 + .long -1104851199 + .long 671088640 + .long 1072389885 + .long 1652211632 + .long 1043276994 + .long 335544320 + .long 1072393392 + .long -424932536 + .long 1042226924 + .long -603979776 + .long 1072396905 + .long 310352572 + .long -1105557903 + .long -2147483648 + .long 1072400426 + .long -931368013 + .long -1110766552 + .long 134217728 + .long 1072403954 + .long 2133547671 + .long -1105008419 + .long 1946157056 + .long 1072407488 + .long 757246421 + .long -1105512891 + .long -939524096 + .long 1072411029 + .long 1116703624 + .long 1040898762 + .long 201326592 + .long 1072414578 + .long -839256447 + .long -1104241145 + .long 1006632960 + .long 1072418133 + .long 2141539023 + .long -1106730713 + .long 1610612736 + .long 1072421695 + .long -2111458427 + .long 1041142478 + .long 2080374784 + .long 1072425264 + .long 2075169925 + .long 1039371306 + .long -1811939328 + .long 1072428840 + .long -159253921 + .long -1104282268 + .long -1543503872 + .long 1072432423 + .long -588739630 + .long 1043216461 + .long -1140850688 + .long 1072436013 + .long -28923757 + .long -1105137391 + .long -738197504 + .long 1072439610 + .long -1316372518 + .long 1041841569 + .long -134217728 + .long 1072443214 + .long 238680832 + .long -1105140831 + .long 603979776 + .long 1072446826 + .long 821099205 + .long 1042133060 + .long 1677721600 + .long 1072450444 + .long -1757123817 + .long -1104428756 + .long -1275068416 + .long 1072454069 + .long -1774239408 + .long -1104664938 + .long 402653184 + .long 1072457702 + .long 810123851 + .long 1042435366 + .long -1744830464 + .long 1072461341 + .long -2013770627 + .long 1043094437 + .long 939524096 + .long 1072464988 + .long -997907655 + .long -1109274291 + .long -134217728 + .long 1072468641 + .long 1435032033 + .long -1105574626 + .long -603979776 + .long 1072472302 + .long 1757410391 + .long -1105380458 + .long -402653184 + .long 1072475970 + .long 1303246708 + .long -1105676688 + .long 536870912 + .long 1072479646 + .long 2142370817 + .long -1105586872 + .long -2013265920 + .long 1072483328 + .long 2029804272 + .long -1104724178 + .long 536870912 + .long 1072487018 + .long -1493915583 + .long 1042096527 + .long -268435456 + .long 1072490714 + .long 1291857056 + .long 1043205033 + .long -67108864 + .long 1072494418 + .long 106887545 + .long 1042347195 + .long 1207959552 + .long 1072498130 + .long 293157683 + .long -1104227371 + .long -805306368 + .long 1072501848 + .long -1858911821 + .long 1041325628 + .long -1610612736 + .long 1072505574 + .long -1286315767 + .long 1038711810 + .long -1207959552 + .long 1072509307 + .long 469276911 + .long 1040741696 + .long 469762048 + .long 1072513048 + .long 879728193 + .long 1042322480 + .long -805306368 + .long 1072516795 + .long -1997229557 + .long 1043033588 + .long -603979776 + .long 1072520550 + .long 213016629 + .long -1104230769 + .long 939524096 + .long 1072524313 + .long 524605891 + .long 1043112648 + .long -201326592 + .long 1072528082 + .long 1097879264 + .long 1041295092 + .long 201326592 + .long 1072531860 + .long 637071586 + .long 1043305075 + .long -2013265920 + .long 1072535644 + .long 830970078 + .long 1043137562 + .long 1811939328 + .long 1072539436 + .long -1823879336 + .long -1107274112 + .long -1207959552 + .long 1072543235 + .long -821259443 + .long -1106184603 + .long 1879048192 + .long 1072547042 + .long 424025188 + .long 1041654052 + .long -1677721600 + .long 1072550856 + .long 1079387336 + .long -1105514794 + .long 1006632960 + .long 1072554678 + .long 1645679873 + .long -1104725377 + .long 1409286144 + .long 1072558507 + .long -479325104 + .long -1104805333 + .long -402653184 + .long 1072562343 + .long 772255253 + .long -1105447906 + .long -67108864 + .long 1072566187 + .long 416343809 + .long -1107525970 + .long -1811939328 + .long 1072570039 + .long -321781877 + .long 1040626511 + .long -1275068416 + .long 1072573898 + .long 1746118217 + .long 1041470627 + .long 1610612736 + .long 1072577765 + .long -1049277164 + .long 1040471190 + .long -1677721600 + .long 1072581639 + .long -171571076 + .long -1105719297 + .long 1744830464 + .long 1072585521 + .long -1378245888 + .long 1042480077 + .long -872415232 + .long 1072589410 + .long -1358788123 + .long 1043253191 + .long -872415232 + .long 1072593307 + .long 1068756436 + .long 1042555266 + .long 1811939328 + .long 1072597212 + .long 82024581 + .long -1105194236 + .long -1409286144 + .long 1072601124 + .long -427614927 + .long -1105145006 + .long -1879048192 + .long 1072605044 + .long 1636695275 + .long 1042154285 + .long 536870912 + .long 1072608972 + .long -105167490 + .long 1041847971 + .long 1610612736 + .long 1072612907 + .long 1350852018 + .long -1104513056 + .long 1275068416 + .long 1072616850 + .long 1204041816 + .long 1042748663 + .long -268435456 + .long 1072620800 + .long 1904294502 + .long 1043262870 + .long 1342177280 + .long 1072624759 + .long 1337240116 + .long -1106981442 + .long 1811939328 + .long 1072628725 + .long -2031398923 + .long -1104710494 + .long 1207959552 + .long 1072632699 + .long -1388072238 + .long -1104552555 + .long -402653184 + .long 1072636680 + .long -1407785722 + .long -1105416784 + .long 1342177280 + .long 1072640670 + .long 1484020859 + .long 1041411123 + .long -2013265920 + .long 1072644667 + .long 1858263124 + .long -1104903912 + .long -1946157056 + .long 1072648672 + .long 810208776 + .long 1042716779 + .long 1744830464 + .long 1072652685 + .long 990459214 + .long 1041395073 + .long 469762048 + .long 1072656706 + .long 2000430003 + .long 1039166126 + .long -1409286144 + .long 1072660734 + .long -668011485 + .long -1113520714 + .long 469762048 + .long 1072664771 + .long 1179949496 + .long 1038933741 + .long 1879048192 + .long 1072668815 + .long -487652434 + .long 1040904148 + .long -1409286144 + .long 1072672867 + .long 90682087 + .long 1042011328 + .long -738197504 + .long 1072676927 + .long 1335360703 + .long 1042721314 + .long -268435456 + .long 1072680995 + .long 1582205137 + .long -1104178144 + .long -67108864 + .long 1072685071 + .long 1133400802 + .long -1104855036 + .long 0 + .long 1072689156 + .long -286703876 + .long -1105898838 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 1072695298 + .long 1145697543 + .long 1041586176 + .long 67108864 + .long 1072697352 + .long -2010286634 + .long -1103803736 + .long 134217728 + .long 1072699410 + .long 926998102 + .long 1043346960 + .long 335544320 + .long 1072701472 + .long 1527525988 + .long 1043726404 + .long 671088640 + .long 1072703538 + .long 26734019 + .long 1044139046 + .long 1207959552 + .long 1072705608 + .long 1346816521 + .long 1040912443 + .long 1946157056 + .long 1072707682 + .long -106551772 + .long -1103862372 + .long -1409286144 + .long 1072709760 + .long -586510537 + .long -1104853960 + .long -201326592 + .long 1072711842 + .long -1750092062 + .long 1039292098 + .long 1342177280 + .long 1072713929 + .long -1841486367 + .long -1104116257 + .long -1073741824 + .long 1072716019 + .long 1587785873 + .long -1103164781 + .long 1140850688 + .long 1072718114 + .long 1566790476 + .long -1104970268 + .long -536870912 + .long 1072720212 + .long -15968073 + .long 1043339033 + .long -1744830464 + .long 1072722315 + .long -1644710299 + .long 1043235856 + .long 1811939328 + .long 1072724422 + .long 991064610 + .long 1043635385 + .long 1610612736 + .long 1072726533 + .long -1730102008 + .long 1039214572 + .long 1946157056 + .long 1072728648 + .long 1886176287 + .long -1104887370 + .long -1476395008 + .long 1072730767 + .long 154158319 + .long 1043549945 + .long 67108864 + .long 1072732891 + .long 1455189123 + .long -1106049871 + .long -2080374784 + .long 1072735018 + .long -1339508348 + .long 1043150910 + .long 805306368 + .long 1072737150 + .long 1692901890 + .long -1104061666 + .long 67108864 + .long 1072739286 + .long -965203682 + .long -1106591258 + .long 67108864 + .long 1072741426 + .long 789774306 + .long 1043989528 + .long 939524096 + .long 1072743570 + .long 1138152194 + .long -1103636969 + .long -1744830464 + .long 1072745718 + .long 355256570 + .long 1042363378 + .long 738197504 + .long 1072747871 + .long -379132233 + .long 1044178385 + .long -134217728 + .long 1072750027 + .long 2076887652 + .long 1041940260 + .long -67108864 + .long 1072752188 + .long 780983277 + .long -1103604490 + .long 939524096 + .long 1072754354 + .long 204608875 + .long -1103207325 + .long -1409286144 + .long 1072756523 + .long -1231588660 + .long 1043748465 + .long 1677721600 + .long 1072758697 + .long 45162522 + .long -1103610214 + .long 1476395008 + .long 1072760875 + .long 1347722432 + .long -1105176222 + .long -1879048192 + .long 1072763057 + .long -2438542 + .long -1103664130 + .long 134217728 + .long 1072765244 + .long 1547952883 + .long 1044126809 + .long -872415232 + .long 1072767434 + .long -150569845 + .long -1104751756 + .long -738197504 + .long 1072769629 + .long 1306197533 + .long 1043610828 + .long 671088640 + .long 1072771829 + .long 1491848063 + .long 1044208662 + .long -872415232 + .long 1072774032 + .long -1234269357 + .long -1104454382 + .long -1140850688 + .long 1072776240 + .long -1289309054 + .long -1104877287 + .long -67108864 + .long 1072778452 + .long -928334525 + .long 1042486170 + .long -1879048192 + .long 1072780669 + .long 376716117 + .long 1043389835 + .long 2080374784 + .long 1072782890 + .long 898649168 + .long -1104029951 + .long -1140850688 + .long 1072785115 + .long 820038275 + .long 1041268546 + .long 1476395008 + .long 1072787345 + .long -635735773 + .long -1104875022 + .long 1342177280 + .long 1072789579 + .long 231185955 + .long -1103443214 + .long -1543503872 + .long 1072791817 + .long 1620276462 + .long -1104946055 + .long 1476395008 + .long 1072794060 + .long 977322935 + .long 1042689271 + .long 1879048192 + .long 1072796307 + .long 1512371299 + .long 1042102323 + .long -335544320 + .long 1072798558 + .long -1976679360 + .long 1043048877 + .long -805306368 + .long 1072800814 + .long 1640241192 + .long 1040026812 + .long 469762048 + .long 1072803075 + .long 1515052813 + .long 1041917414 + .long -738197504 + .long 1072805339 + .long -1618833995 + .long -1109197381 + .long -134217728 + .long 1072807608 + .long -1214550001 + .long 1043287784 + .long -1946157056 + .long 1072809882 + .long 232904680 + .long 1044040757 + .long -1811939328 + .long 1072812160 + .long -6414176 + .long 1041330846 + .long 268435456 + .long 1072814443 + .long 1814996747 + .long -1104146664 + .long 0 + .long 1072816730 + .long -834512331 + .long 1039347202 + .long 1744830464 + .long 1072819021 + .long -1707987694 + .long 1044110934 + .long 1342177280 + .long 1072821317 + .long -1166837009 + .long -1103347955 + .long -1342177280 + .long 1072823617 + .long -929637510 + .long -1106629168 + .long -1879048192 + .long 1072825922 + .long -122191114 + .long 1042642864 + .long -201326592 + .long 1072828231 + .long 1935704008 + .long -1104384605 + .long -671088640 + .long 1072830545 + .long -929991864 + .long 1043724241 + .long 1140850688 + .long 1072832864 + .long -811799191 + .long 1044082524 + .long 1006632960 + .long 1072835187 + .long -2055775186 + .long -1103522178 + .long -1207959552 + .long 1072837514 + .long 1232217812 + .long 1044066835 + .long -1006632960 + .long 1072839846 + .long 812855847 + .long 1044260624 + .long 1610612736 + .long 1072842183 + .long -1356768654 + .long 1043577001 + .long -1879048192 + .long 1072844524 + .long 325411391 + .long -1103128910 + .long 1342177280 + .long 1072846870 + .long 668918274 + .long -1103678897 + .long -1543503872 + .long 1072849220 + .long 1313361287 + .long 1043434709 + .long -1811939328 + .long 1072851575 + .long -1455089176 + .long -1109131977 + .long 469762048 + .long 1072853935 + .long -294089687 + .long 1043796783 + .long 1140850688 + .long 1072856299 + .long -398268992 + .long -1107042889 + .long 134217728 + .long 1072858668 + .long -511928685 + .long 1043833851 + .long 1879048192 + .long 1072861041 + .long -1363945056 + .long 1042606783 + .long 2080374784 + .long 1072863419 + .long -2059729101 + .long -1105999946 + .long 738197504 + .long 1072865802 + .long -944404299 + .long 1043147904 + .long -2013265920 + .long 1072868189 + .long 1888434450 + .long -1103775920 + .long -1946157056 + .long 1072870581 + .long -704802512 + .long -1104602512 + .long 1006632960 + .long 1072872978 + .long 214933363 + .long 1043261751 + .long -1610612736 + .long 1072875379 + .long -735250580 + .long -1103347956 + .long -1342177280 + .long 1072877785 + .long 1618361697 + .long 1043717460 + .long 2013265920 + .long 1072880196 + .long -405362117 + .long 1042727960 + .long -134217728 + .long 1072882611 + .long 1874442152 + .long -1103755834 + .long 738197504 + .long 1072885032 + .long 618454517 + .long 1043817428 + .long 536870912 + .long 1072887457 + .long -1460921688 + .long -1105575650 + .long -805306368 + .long 1072889886 + .long 535319663 + .long -1104937823 + .long 1073741824 + .long 1072892321 + .long 984541022 + .long -1104552179 + .long 1879048192 + .long 1072894760 + .long 1009533446 + .long 1043768790 + .long 1744830464 + .long 1072897204 + .long -1261864528 + .long 1041988158 + .long 671088640 + .long 1072899653 + .long 1886180755 + .long -1103751811 + .long -1342177280 + .long 1072902106 + .long -1918581178 + .long -1103498409 + .long 67108864 + .long 1072904565 + .long -713687441 + .long -1103207202 + .long 603979776 + .long 1072907028 + .long 1154484448 + .long 1040710115 + .long 402653184 + .long 1072909496 + .long 1515601527 + .long -1104243463 + .long -603979776 + .long 1072911968 + .long 611708697 + .long 1043418562 + .long 2013265920 + .long 1072914446 + .long -1556429306 + .long 1042732579 + .long -335544320 + .long 1072916928 + .long -1067765408 + .long 1041698694 + .long 1006632960 + .long 1072919416 + .long -620043494 + .long -1103569410 + .long 1677721600 + .long 1072921908 + .long 1460057456 + .long 1043751593 + .long 1879048192 + .long 1072924405 + .long 1735422750 + .long -1105844764 + .long 1543503872 + .long 1072926907 + .long 1654067345 + .long -1105823503 + .long 738197504 + .long 1072929414 + .long -800732404 + .long -1106894980 + .long -469762048 + .long 1072931925 + .long 1451957410 + .long -1103769775 + .long -2080374784 + .long 1072934442 + .long 2142642008 + .long -1103658619 + .long 201326592 + .long 1072936964 + .long 1335964591 + .long 1044346868 + .long -2013265920 + .long 1072939490 + .long -1341426690 + .long -1105004182 + .long -268435456 + .long 1072942021 + .long 515165743 + .long 1043667556 + .long 1342177280 + .long 1072944558 + .long -747284935 + .long -1103284970 + .long -1610612736 + .long 1072947099 + .long 1139327246 + .long 1042078008 + .long -335544320 + .long 1072949645 + .long 1163692098 + .long -1103761885 + .long 805306368 + .long 1072952197 + .long -1765149459 + .long -1104563582 + .long 1879048192 + .long 1072954753 + .long 828951563 + .long 1042588686 + .long -1342177280 + .long 1072957314 + .long -2033768391 + .long 1043825852 + .long -201326592 + .long 1072959880 + .long 126212167 + .long 1040588569 + .long 1006632960 + .long 1072962452 + .long -430659127 + .long -1104695566 + .long -2013265920 + .long 1072965028 + .long -102448710 + .long 1043587011 + .long -536870912 + .long 1072967609 + .long 1497173109 + .long 1042568616 + .long 1140850688 + .long 1072970196 + .long 596338129 + .long -1109123762 + .long -1275068416 + .long 1072972787 + .long 1162657483 + .long 1044112918 + .long 939524096 + .long 1072975384 + .long -1826860238 + .long 1042316092 + .long -805306368 + .long 1072977985 + .long 1981144265 + .long -1103951802 + .long 2080374784 + .long 1072980592 + .long -459802546 + .long -1104508293 + .long 1073741824 + .long 1072983204 + .long -147345544 + .long 1040321360 + .long 536870912 + .long 1072985821 + .long -481625133 + .long 1041328921 + .long 536870912 + .long 1072988443 + .long -2078352558 + .long -1103227481 + .long 1006632960 + .long 1072991070 + .long 867425822 + .long 1041187011 + .long 2080374784 + .long 1072993702 + .long -1829769726 + .long 1043554431 + .long -469762048 + .long 1072996339 + .long 351789416 + .long -1105580619 + .long 1879048192 + .long 1072998982 + .long 1052384404 + .long 1044339180 + .long 738197504 + .long 1073001630 + .long -1952782203 + .long -1104042695 + .long 268435456 + .long 1073004283 + .long -247690091 + .long 1043311627 + .long 671088640 + .long 1073006941 + .long -122206347 + .long -1103970117 + .long 1879048192 + .long 1073009604 + .long 1335129275 + .long -1104166322 + .long -335544320 + .long 1073012272 + .long 165318943 + .long 1040224048 + .long -1610612736 + .long 1073014946 + .long -1158096501 + .long 1042912449 + .long -1879048192 + .long 1073017625 + .long 409242890 + .long -1105738868 + .long -1140850688 + .long 1073020309 + .long -231766376 + .long -1104639918 + .long 671088640 + .long 1073022999 + .long 815972691 + .long -1103348029 + .long -738197504 + .long 1073025693 + .long -1769696598 + .long -1104693754 + .long -1006632960 + .long 1073028393 + .long 1628444201 + .long 1043202966 + .long -67108864 + .long 1073031098 + .long -621892808 + .long 1044285295 + .long -2147483648 + .long 1073033809 + .long -309044432 + .long 1042937246 + .long 1342177280 + .long 1073036525 + .long 189457393 + .long 1041422298 + .long 1879048192 + .long 1073039246 + .long 1605977808 + .long -1104171080 + .long -536870912 + .long 1073041972 + .long -2015884186 + .long -1105680205 + .long -1543503872 + .long 1073044704 + .long 1984755804 + .long 1042854287 + .long -1073741824 + .long 1073047441 + .long 735823604 + .long 1043488791 + .long 939524096 + .long 1073050184 + .long 1406477310 + .long -1105027176 + .long 201326592 + .long 1073052932 + .long 1302038304 + .long -1103373048 + .long 1006632960 + .long 1073055685 + .long 165180574 + .long 1041669820 + .long -805306368 + .long 1073058443 + .long 865869952 + .long 1041829004 + .long -939524096 + .long 1073061207 + .long -562697782 + .long 1043402660 + .long 671088640 + .long 1073063977 + .long 278393222 + .long 1043414296 + .long -201326592 + .long 1073066751 + .long -719576074 + .long -1104421372 + .long 671088640 + .long 1073069532 + .long -1992768634 + .long 1044309630 + .long -805306368 + .long 1073072317 + .long 1205822837 + .long 1040806840 + .long -402653184 + .long 1073075108 + .long 498694017 + .long 1042603778 + .long 2013265920 + .long 1073077905 + .long -1404375844 + .long -1103119872 + .long 2080374784 + .long 1073080707 + .long -1818270614 + .long -1104201809 + .long -67108864 + .long 1073083514 + .long 1487335145 + .long -1103532561 + .long -134217728 + .long 1073086327 + .long -480166789 + .long -1104063928 + .long 1946157056 + .long 1073089146 + .long -246073594 + .long -1104762398 + .long 1946157056 + .long 1073091970 + .long -1370653514 + .long -1103401994 + .long -134217728 + .long 1073094799 + .long -1632244827 + .long -1103792293 + .long 67108864 + .long 1073097635 + .long -1042008826 + .long -1104510437 + .long -1677721600 + .long 1073100475 + .long 2066582772 + .long -1103725350 + .long -1073741824 + .long 1073103321 + .long 1049655837 + .long -1106042485 + .long 1946157056 + .long 1073106173 + .long 2079711204 + .long 1043617006 + .long -1073741824 + .long 1073109030 + .long 1667679741 + .long -1103194609 + .long -1677721600 + .long 1073111893 + .long -1958493826 + .long 1043216271 + .long 335544320 + .long 1073114762 + .long -1540332235 + .long 1042566112 + .long 671088640 + .long 1073117636 + .long -1913242258 + .long -1109084479 + .long -671088640 + .long 1073120515 + .long -425575985 + .long 1044095266 + .long 738197504 + .long 1073123401 + .long 1509646128 + .long 1042805382 + .long 603979776 + .long 1073126292 + .long -1759692432 + .long -1107017663 + ASM_TYPE_DIRECTIVE(coar, @object) + ASM_SIZE_DIRECTIVE(coar) + + .align ALIGNARG(5) +fine: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 1072693252 + .long 1431661227 + .long 1033895937 + .long 0 + .long 1072693256 + .long -1431633920 + .long 1035993090 + .long 0 + .long 1072693260 + .long -2147428352 + .long 1037172740 + .long 0 + .long 1072693264 + .long 1431743147 + .long 1038090245 + .long 0 + .long 1072693268 + .long 1789783041 + .long 1038680074 + .long 0 + .long 1072693272 + .long 221185 + .long 1039269897 + .long 0 + .long 1072693276 + .long 1253108568 + .long 1039695886 + .long 0 + .long 1072693280 + .long -1431306238 + .long 1040187402 + .long 0 + .long 1072693284 + .long 805866244 + .long 1040465935 + .long 0 + .long 1072693288 + .long -714974543 + .long 1040777236 + .long 0 + .long 1072693292 + .long -1161970934 + .long 1041121307 + .long 0 + .long 1072693296 + .long 884744 + .long 1041367058 + .long 0 + .long 1072693300 + .long -490913055 + .long 1041571862 + .long 0 + .long 1072693304 + .long -1787930606 + .long 1041793052 + .long 0 + .long 1072693308 + .long 673248665 + .long 1042030627 + .long 0 + .long 1072693312 + .long 1433053884 + .long 1042284565 + .long 0 + .long 1072693316 + .long -1765418281 + .long 1042419737 + .long 0 + .long 1072693320 + .long 1612852255 + .long 1042563102 + .long 0 + .long 1072693324 + .long -1182809709 + .long 1042714659 + .long 0 + .long 1072693328 + .long -1428242380 + .long 1042874409 + .long 0 + .long 1072693332 + .long 1010781954 + .long 1043042352 + .long 0 + .long 1072693336 + .long 1973524223 + .long 1043218487 + .long 0 + .long 1072693340 + .long -1350377068 + .long 1043367967 + .long 0 + .long 1072693344 + .long 3539009 + .long 1043464228 + .long 0 + .long 1072693348 + .long -1326825723 + .long 1043564584 + .long 0 + .long 1072693352 + .long -979388831 + .long 1043669037 + .long 0 + .long 1072693356 + .long 1112965077 + .long 1043777587 + .long 0 + .long 1072693360 + .long 722384353 + .long 1043890233 + .long 0 + .long 1072693364 + .long -2084015097 + .long 1044006975 + .long 0 + .long 1072693368 + .long 1350817478 + .long 1044127814 + .long 0 + .long 1072693372 + .long -1790903394 + .long 1044252749 + .long 67108864 + .long 1072693376 + .long -1442840849 + .long -1103102038 + .long 67108864 + .long 1072693380 + .long 1765734754 + .long -1103235166 + .long 67108864 + .long 1072693384 + .long -1535388871 + .long -1103372391 + .long 67108864 + .long 1072693388 + .long 1471572725 + .long -1103513712 + .long 67108864 + .long 1072693392 + .long 2129567252 + .long -1103659130 + .long 67108864 + .long 1072693396 + .long 371476758 + .long -1103808644 + .long 67108864 + .long 1072693400 + .long 425150331 + .long -1103962255 + .long 67108864 + .long 1072693404 + .long -2071497790 + .long -1104119963 + .long 67108864 + .long 1072693408 + .long -1486270765 + .long -1104413006 + .long 67108864 + .long 1072693412 + .long 96302562 + .long -1104744807 + .long 67108864 + .long 1072693416 + .long 470485937 + .long -1105084802 + .long 67108864 + .long 1072693420 + .long -995919239 + .long -1105666877 + .long 67108864 + .long 1072693424 + .long 1111807503 + .long -1106511599 + .long 67108864 + .long 1072693428 + .long -325986232 + .long -1108942251 + .long 67108864 + .long 1072693432 + .long -333738228 + .long 1040254955 + .long 67108864 + .long 1072693436 + .long -1984015702 + .long 1041507385 + .long 67108864 + .long 1072693440 + .long 113250355 + .long 1042285120 + .long 67108864 + .long 1072693444 + .long -928385184 + .long 1042682468 + .long 67108864 + .long 1072693448 + .long 312295390 + .long 1043088011 + .long 67108864 + .long 1072693452 + .long 1984767576 + .long 1043417433 + .long 67108864 + .long 1072693456 + .long 793821548 + .long 1043628398 + .long 67108864 + .long 1072693460 + .long -1202084693 + .long 1043843459 + .long 67108864 + .long 1072693464 + .long 359138457 + .long 1044062618 + .long 67108864 + .long 1072693468 + .long 1249646261 + .long 1044285873 + .long 134217728 + .long 1072693472 + .long -1536561538 + .long -1103233482 + .long 134217728 + .long 1072693476 + .long -1287007361 + .long -1103464931 + .long 134217728 + .long 1072693480 + .long -568107059 + .long -1103700477 + .long 134217728 + .long 1072693484 + .long 553015782 + .long -1103940119 + .long 134217728 + .long 1072693488 + .long -276492657 + .long -1104217190 + .long 134217728 + .long 1072693492 + .long -1123067678 + .long -1104712863 + .long 134217728 + .long 1072693496 + .long 1159082881 + .long -1105234355 + .long 134217728 + .long 1072693500 + .long 1608472730 + .long -1106269274 + .long 134217728 + .long 1072693504 + .long -1413759340 + .long 1032148394 + .long 134217728 + .long 1072693508 + .long -625252085 + .long 1041247020 + .long 134217728 + .long 1072693512 + .long 2015427488 + .long 1042302425 + .long 134217728 + .long 1072693516 + .long -1829419198 + .long 1042847262 + .long 134217728 + .long 1072693520 + .long -487748039 + .long 1043366706 + .long 134217728 + .long 1072693524 + .long -1939242727 + .long 1043647319 + .long 134217728 + .long 1072693528 + .long 1240383684 + .long 1043932029 + .long 134217728 + .long 1072693532 + .long 528323260 + .long 1044220836 + .long 201326592 + .long 1072693536 + .long -286670211 + .long -1103233997 + .long 201326592 + .long 1072693540 + .long -582551709 + .long -1103530998 + .long 201326592 + .long 1072693544 + .long -1483095179 + .long -1103832096 + .long 201326592 + .long 1072693548 + .long 1239538991 + .long -1104137291 + .long 201326592 + .long 1072693552 + .long -2143423457 + .long -1104742639 + .long 201326592 + .long 1072693556 + .long 423836236 + .long -1105539732 + .long 201326592 + .long 1072693560 + .long -2022644881 + .long -1107447103 + .long 201326592 + .long 1072693564 + .long 1802806334 + .long 1040738336 + .long 201326592 + .long 1072693568 + .long -557789096 + .long 1042287210 + .long 201326592 + .long 1072693572 + .long 582842482 + .long 1042946768 + .long 201326592 + .long 1072693576 + .long -144056014 + .long 1043473819 + .long 201326592 + .long 1072693580 + .long 629287066 + .long 1043811793 + .long 201326592 + .long 1072693584 + .long -1616386828 + .long 1044153863 + .long 268435456 + .long 1072693588 + .long -1775987140 + .long -1103220288 + .long 268435456 + .long 1072693592 + .long 2011362418 + .long -1103570553 + .long 268435456 + .long 1072693596 + .long 26402860 + .long -1103924915 + .long 268435456 + .long 1072693600 + .long 1583875531 + .long -1104416222 + .long 268435456 + .long 1072693604 + .long -108262860 + .long -1105141337 + .long 268435456 + .long 1072693608 + .long 843346488 + .long -1106852693 + .long 268435456 + .long 1072693612 + .long -1037707071 + .long 1040612692 + .long 268435456 + .long 1072693616 + .long 96756495 + .long 1042354136 + .long 268435456 + .long 1072693620 + .long -1155505899 + .long 1043112029 + .long 268435456 + .long 1072693624 + .long 743380134 + .long 1043605619 + .long 268435456 + .long 1072693628 + .long -216056994 + .long 1043992760 + .long 335544320 + .long 1072693632 + .long -906036023 + .long -1103104257 + .long 335544320 + .long 1072693636 + .long 118174794 + .long -1103499593 + .long 335544320 + .long 1072693640 + .long -1073411422 + .long -1103899028 + .long 335544320 + .long 1072693644 + .long -505922409 + .long -1104454591 + .long 335544320 + .long 1072693648 + .long 1459630853 + .long -1105340594 + .long 335544320 + .long 1072693652 + .long -1475926031 + .long -1108158390 + .long 335544320 + .long 1072693656 + .long 1397511169 + .long 1041541935 + .long 335544320 + .long 1072693660 + .long -663363965 + .long 1042753083 + .long 335544320 + .long 1072693664 + .long -1615363382 + .long 1043467121 + .long 335544320 + .long 1072693668 + .long -213305569 + .long 1043895238 + .long 335544320 + .long 1072693672 + .long -353340218 + .long 1044327453 + .long 402653184 + .long 1072693676 + .long 1968331452 + .long -1103484023 + .long 402653184 + .long 1072693680 + .long 696175842 + .long -1103924433 + .long 402653184 + .long 1072693684 + .long 1529408585 + .long -1104587354 + .long 402653184 + .long 1072693688 + .long -162813955 + .long -1105770027 + .long 402653184 + .long 1072693692 + .long -1469820607 + .long 1039228574 + .long 402653184 + .long 1072693696 + .long 493816631 + .long 1042291862 + .long 402653184 + .long 1072693700 + .long -436040135 + .long 1043213659 + .long 402653184 + .long 1072693704 + .long -1687946722 + .long 1043738386 + .long 402653184 + .long 1072693708 + .long 199233574 + .long 1044207481 + .long 469762048 + .long 1072693712 + .long -1215691707 + .long -1103400930 + .long 469762048 + .long 1072693716 + .long -1428566115 + .long -1103878220 + .long 469762048 + .long 1072693720 + .long -1809990987 + .long -1104568687 + .long 469762048 + .long 1072693724 + .long 1151524829 + .long -1105880212 + .long 469762048 + .long 1072693728 + .long 516470940 + .long 1040223396 + .long 469762048 + .long 1072693732 + .long -236056934 + .long 1042494475 + .long 469762048 + .long 1072693736 + .long 1378980156 + .long 1043411577 + .long 469762048 + .long 1072693740 + .long -1819726232 + .long 1043913454 + .long 536870912 + .long 1072693744 + .long 1057072808 + .long -1103139686 + .long 536870912 + .long 1072693748 + .long 560886380 + .long -1103649759 + .long 536870912 + .long 1072693752 + .long 528052409 + .long -1104177332 + .long 536870912 + .long 1072693756 + .long 397405128 + .long -1105228636 + .long 536870912 + .long 1072693760 + .long 71588614 + .long 1035294208 + .long 536870912 + .long 1072693764 + .long 204016166 + .long 1042299822 + .long 536870912 + .long 1072693768 + .long 272975805 + .long 1043347034 + .long 536870912 + .long 1072693772 + .long 580324835 + .long 1043881695 + .long 603979776 + .long 1072693776 + .long -1091197452 + .long -1103140711 + .long 603979776 + .long 1072693780 + .long -1872736192 + .long -1103683568 + .long 603979776 + .long 1072693784 + .long -1689200402 + .long -1104310518 + .long 603979776 + .long 1072693788 + .long -885664700 + .long -1105626145 + .long 603979776 + .long 1072693792 + .long 562619349 + .long 1040239804 + .long 603979776 + .long 1072693796 + .long 916954986 + .long 1042629714 + .long 603979776 + .long 1072693800 + .long -694473432 + .long 1043544764 + .long 603979776 + .long 1072693804 + .long -1173897637 + .long 1044112210 + .long 671088640 + .long 1072693808 + .long 912650791 + .long -1103404011 + .long 671088640 + .long 1072693812 + .long -156411691 + .long -1103979654 + .long 671088640 + .long 1072693816 + .long 94097994 + .long -1104968259 + .long 671088640 + .long 1072693820 + .long -656232012 + .long -1108654086 + .long 671088640 + .long 1072693824 + .long 584016118 + .long 1042300098 + .long 671088640 + .long 1072693828 + .long 968816767 + .long 1043408644 + .long 671088640 + .long 1072693832 + .long -1505799415 + .long 1044004777 + .long 738197504 + .long 1072693836 + .long -1525240226 + .long -1103325266 + .long 738197504 + .long 1072693840 + .long -1539147478 + .long -1103929596 + .long 738197504 + .long 1072693844 + .long -1501105246 + .long -1104925520 + .long 738197504 + .long 1072693848 + .long -1021085437 + .long -1108888267 + .long 738197504 + .long 1072693852 + .long -1636143881 + .long 1042372110 + .long 738197504 + .long 1072693856 + .long -1463807099 + .long 1043473338 + .long 738197504 + .long 1072693860 + .long 1651512031 + .long 1044098160 + .long 805306368 + .long 1072693864 + .long 2142384874 + .long -1103447337 + .long 805306368 + .long 1072693868 + .long -106552245 + .long -1104080356 + .long 805306368 + .long 1072693872 + .long 497851108 + .long -1105369728 + .long 805306368 + .long 1072693876 + .long -671413565 + .long 1040415482 + .long 805306368 + .long 1072693880 + .long 1664360683 + .long 1042845762 + .long 805306368 + .long 1072693884 + .long -2140830678 + .long 1043738853 + .long 872415232 + .long 1072693888 + .long -1264737025 + .long -1103112621 + .long 872415232 + .long 1072693892 + .long 1768868726 + .long -1103770230 + .long 872415232 + .long 1072693896 + .long 874159459 + .long -1104713347 + .long 872415232 + .long 1072693900 + .long 663278136 + .long -1107771644 + .long 872415232 + .long 1072693904 + .long 1117796226 + .long 1042373057 + .long 872415232 + .long 1072693908 + .long 357388169 + .long 1043527092 + .long 872415232 + .long 1072693912 + .long 494908097 + .long 1044205194 + .long 939524096 + .long 1072693916 + .long 1108874504 + .long -1103607651 + .long 939524096 + .long 1072693920 + .long 183681676 + .long -1104437372 + .long 939524096 + .long 1072693924 + .long 1159484247 + .long -1106626783 + .long 939524096 + .long 1072693928 + .long 1638424670 + .long 1042106353 + .long 939524096 + .long 1072693932 + .long -2119159857 + .long 1043462879 + .long 939524096 + .long 1072693936 + .long 1462724426 + .long 1044165573 + .long 1006632960 + .long 1072693940 + .long 588748266 + .long -1103592622 + .long 1006632960 + .long 1072693944 + .long -767019398 + .long -1104456499 + .long 1006632960 + .long 1072693948 + .long -1213474547 + .long -1106900025 + .long 1006632960 + .long 1072693952 + .long 1860825583 + .long 1042312943 + .long 1006632960 + .long 1072693956 + .long 639365278 + .long 1043546219 + .long 1006632960 + .long 1072693960 + .long 1493179488 + .long 1044273505 + .long 1073741824 + .long 1072693964 + .long -1411526094 + .long -1103725147 + .long 1073741824 + .long 1072693968 + .long -923119341 + .long -1104770733 + .long 1073741824 + .long 1072693972 + .long -1959549183 + .long 1032934092 + .long 1073741824 + .long 1072693976 + .long 1040549232 + .long 1042725548 + .long 1073741824 + .long 1072693980 + .long 1663266417 + .long 1043777114 + .long 1140850688 + .long 1072693984 + .long 2088401244 + .long -1103249250 + .long 1140850688 + .long 1072693988 + .long 2077637917 + .long -1104005228 + .long 1140850688 + .long 1072693992 + .long 1539084549 + .long -1105561058 + .long 1140850688 + .long 1072693996 + .long -655480037 + .long 1041508896 + .long 1140850688 + .long 1072694000 + .long -274036083 + .long 1043383194 + .long 1140850688 + .long 1072694004 + .long -1721854302 + .long 1044155568 + .long 1207959552 + .long 1072694008 + .long -928541591 + .long -1103652298 + .long 1207959552 + .long 1072694012 + .long 1691251203 + .long -1104715210 + .long 1207959552 + .long 1072694016 + .long 135912040 + .long 1037172952 + .long 1207959552 + .long 1072694020 + .long -438298412 + .long 1042850377 + .long 1207959552 + .long 1072694024 + .long -1979156846 + .long 1043884617 + .long 1275068416 + .long 1072694028 + .long -694839157 + .long -1103401842 + .long 1275068416 + .long 1072694032 + .long 1439874234 + .long -1104255288 + .long 1275068416 + .long 1072694036 + .long 2005973626 + .long -1106816589 + .long 1275068416 + .long 1072694040 + .long -1029569951 + .long 1042472436 + .long 1275068416 + .long 1072694044 + .long 1239462069 + .long 1043716142 + .long 1342177280 + .long 1072694048 + .long -1321057746 + .long -1103253862 + .long 1342177280 + .long 1072694052 + .long -1944645658 + .long -1104075424 + .long 1342177280 + .long 1072694056 + .long 175357815 + .long -1106104179 + .long 1342177280 + .long 1072694060 + .long 1582943994 + .long 1042299450 + .long 1342177280 + .long 1072694064 + .long -850968385 + .long 1043650144 + .long 1409286144 + .long 1072694068 + .long 1682774147 + .long -1103208360 + .long 1409286144 + .long 1072694072 + .long 1636784054 + .long -1104050418 + .long 1409286144 + .long 1072694076 + .long -1711620849 + .long -1106086140 + .long 1409286144 + .long 1072694080 + .long -1580507441 + .long 1042331422 + .long 1409286144 + .long 1072694084 + .long 144610273 + .long 1043686627 + .long 1476395008 + .long 1072694088 + .long -78433982 + .long -1103265339 + .long 1476395008 + .long 1072694092 + .long -1225863572 + .long -1104127893 + .long 1476395008 + .long 1072694096 + .long 832276542 + .long -1106708367 + .long 1476395008 + .long 1072694100 + .long 1975481603 + .long 1042568357 + .long 1476395008 + .long 1072694104 + .long -263485243 + .long 1043825590 + .long 1543503872 + .long 1072694108 + .long -2115030873 + .long -1103424799 + .long 1543503872 + .long 1072694112 + .long 798963287 + .long -1104465171 + .long 1543503872 + .long 1072694116 + .long 1423913404 + .long -1112537011 + .long 1543503872 + .long 1072694120 + .long -1023166535 + .long 1043010258 + .long 1543503872 + .long 1072694124 + .long 2025156503 + .long 1044067038 + .long 1610612736 + .long 1072694128 + .long 62474604 + .long -1103686743 + .long 1610612736 + .long 1072694132 + .long 529721126 + .long -1105030054 + .long 1610612736 + .long 1072694136 + .long 1645688543 + .long 1041382729 + .long 1610612736 + .long 1072694140 + .long 959797261 + .long 1043495125 + .long 1677721600 + .long 1072694144 + .long 1773794811 + .long -1103131228 + .long 1677721600 + .long 1072694148 + .long -1941488440 + .long -1104051174 + .long 1677721600 + .long 1072694152 + .long 1401740807 + .long -1106553751 + .long 1677721600 + .long 1072694156 + .long 2140118373 + .long 1042644487 + .long 1677721600 + .long 1072694160 + .long 912647467 + .long 1043921048 + .long 1744830464 + .long 1072694164 + .long -1030327107 + .long -1103577649 + .long 1744830464 + .long 1072694168 + .long 1314436313 + .long -1104885656 + .long 1744830464 + .long 1072694172 + .long 848586455 + .long 1041241516 + .long 1744830464 + .long 1072694176 + .long -589377980 + .long 1043496717 + .long 1811939328 + .long 1072694180 + .long -1300343512 + .long -1103169717 + .long 1811939328 + .long 1072694184 + .long -1653512206 + .long -1104126559 + .long 1811939328 + .long 1072694188 + .long -6813664 + .long -1107607747 + .long 1811939328 + .long 1072694192 + .long 332699529 + .long 1042942843 + .long 1811939328 + .long 1072694196 + .long -1539643268 + .long 1044107122 + .long 1879048192 + .long 1072694200 + .long -1928938048 + .long -1103800620 + .long 1879048192 + .long 1072694204 + .long 392619341 + .long -1105611680 + .long 1879048192 + .long 1072694208 + .long 2072365242 + .long 1042356560 + .long 1879048192 + .long 1072694212 + .long 1104153325 + .long 1043830380 + .long 1946157056 + .long 1072694216 + .long -172927737 + .long -1103540277 + .long 1946157056 + .long 1072694220 + .long -914320444 + .long -1104917504 + .long 1946157056 + .long 1072694224 + .long -493847585 + .long 1041518395 + .long 1946157056 + .long 1072694228 + .long 645716260 + .long 1043619234 + .long 2013265920 + .long 1072694232 + .long -684382528 + .long -1103345530 + .long 2013265920 + .long 1072694236 + .long -119417298 + .long -1104560809 + .long 2013265920 + .long 1072694240 + .long -699132447 + .long 1040505237 + .long 2013265920 + .long 1072694244 + .long 1383995992 + .long 1043473685 + .long 2080374784 + .long 1072694248 + .long 827665317 + .long -1103216380 + .long 2080374784 + .long 1072694252 + .long -1721980101 + .long -1104335309 + .long 2080374784 + .long 1072694256 + .long 1194946780 + .long 1039281480 + .long 2080374784 + .long 1072694260 + .long -971926020 + .long 1043393734 + .long -2147483648 + .long 1072694264 + .long 64183348 + .long -1103152829 + .long -2147483648 + .long 1072694268 + .long -1435204665 + .long -1104241007 + .long -2147483648 + .long 1072694272 + .long -1145278002 + .long 1038440106 + .long -2147483648 + .long 1072694276 + .long -2122968127 + .long 1043379383 + .long -2080374784 + .long 1072694280 + .long 1316008108 + .long -1103154878 + .long -2080374784 + .long 1072694284 + .long 732614703 + .long -1104277904 + .long -2080374784 + .long 1072694288 + .long -191954446 + .long 1039347042 + .long -2080374784 + .long 1072694292 + .long -2064950376 + .long 1043430632 + .long -2013265920 + .long 1072694296 + .long 283975947 + .long -1103222527 + .long -2013265920 + .long 1072694300 + .long 478085201 + .long -1104446003 + .long -2013265920 + .long 1072694304 + .long -2018892026 + .long 1040570816 + .long -2013265920 + .long 1072694308 + .long -793627213 + .long 1043547482 + .long -1946157056 + .long 1072694312 + .long 1258792208 + .long -1103355778 + .long -1946157056 + .long 1072694316 + .long 2087617419 + .long -1104745306 + .long -1946157056 + .long 1072694320 + .long -325998379 + .long 1041567599 + .long -1946157056 + .long 1072694324 + .long 1695312515 + .long 1043729935 + .long -1879048192 + .long 1072694328 + .long -58837959 + .long -1103554632 + .long -1879048192 + .long 1072694332 + .long 1257556150 + .long -1105175814 + .long -1879048192 + .long 1072694336 + .long -600714879 + .long 1042389381 + .long -1879048192 + .long 1072694340 + .long 1111278270 + .long 1043977991 + .long -1811939328 + .long 1072694344 + .long 621659583 + .long -1103819088 + .long -1811939328 + .long 1072694348 + .long 506263699 + .long -1106304230 + .long -1811939328 + .long 1072694352 + .long -735276332 + .long 1042983899 + .long -1811939328 + .long 1072694356 + .long 1753679707 + .long 1044291651 + .long -1744830464 + .long 1072694360 + .long -999141221 + .long -1104149150 + .long -1744830464 + .long 1072694364 + .long 1924494048 + .long 1039552438 + .long -1744830464 + .long 1072694368 + .long -278850212 + .long 1043521373 + .long -1677721600 + .long 1072694372 + .long 667942506 + .long -1103391173 + .long -1677721600 + .long 1072694376 + .long -1261594882 + .long -1104939105 + .long -1677721600 + .long 1072694380 + .long 1853300499 + .long 1042201215 + .long -1677721600 + .long 1072694384 + .long -29436408 + .long 1043949843 + .long -1610612736 + .long 1072694388 + .long 1854047503 + .long -1103836045 + .long -1610612736 + .long 1072694392 + .long 891905719 + .long -1106800717 + .long -1610612736 + .long 1072694396 + .long 867170478 + .long 1043198230 + .long -1543503872 + .long 1072694400 + .long -385226019 + .long -1103164178 + .long -1543503872 + .long 1072694404 + .long -694975081 + .long -1104542520 + .long -1543503872 + .long 1072694408 + .long 1550210264 + .long 1041522858 + .long -1543503872 + .long 1072694412 + .long 572604111 + .long 1043808958 + .long -1476395008 + .long 1072694416 + .long -969825450 + .long -1103723863 + .long -1476395008 + .long 1072694420 + .long 2004334148 + .long -1106190284 + .long -1476395008 + .long 1072694424 + .long 1044056465 + .long 1043088680 + .long -1409286144 + .long 1072694428 + .long 188622495 + .long -1103138106 + .long -1409286144 + .long 1072694432 + .long 836735547 + .long -1104547785 + .long -1409286144 + .long 1072694436 + .long -400092194 + .long 1041648205 + .long -1409286144 + .long 1072694440 + .long 833596491 + .long 1043868999 + .long -1342177280 + .long 1072694444 + .long 1845291384 + .long -1103812608 + .long -1342177280 + .long 1072694448 + .long 131501351 + .long -1107072485 + .long -1342177280 + .long 1072694452 + .long 1555505007 + .long 1043357054 + .long -1275068416 + .long 1072694456 + .long 820373904 + .long -1103312965 + .long -1275068416 + .long 1072694460 + .long 195132906 + .long -1104954912 + .long -1275068416 + .long 1072694464 + .long -1007707176 + .long 1042430911 + .long -1275068416 + .long 1072694468 + .long -1972048704 + .long 1044129972 + .long -1207959552 + .long 1072694472 + .long 139997642 + .long -1104102286 + .long -1207959552 + .long 1072694476 + .long 1821188040 + .long 1040413537 + .long -1207959552 + .long 1072694480 + .long 808689848 + .long 1043704143 + .long -1140850688 + .long 1072694484 + .long -59701282 + .long -1103688760 + .long -1140850688 + .long 1072694488 + .long -1562834726 + .long -1106409758 + .long -1140850688 + .long 1072694492 + .long 1491932510 + .long 1043297322 + .long -1073741824 + .long 1072694496 + .long 1979370960 + .long -1103312140 + .long -1073741824 + .long 1072694500 + .long 1868293587 + .long -1105035278 + .long -1073741824 + .long 1072694504 + .long -692279257 + .long 1042593293 + .long -1073741824 + .long 1072694508 + .long -148160298 + .long 1044252171 + .long -1006632960 + .long 1072694512 + .long 546038755 + .long -1104380460 + .long -1006632960 + .long 1072694516 + .long 1680858552 + .long 1041641619 + .long -1006632960 + .long 1072694520 + .long -1222493787 + .long 1043949368 + .long -939524096 + .long 1072694524 + .long 1912728987 + .long -1103974994 + .long -939524096 + .long 1072694528 + .long 436995571 + .long 1039455990 + .long -939524096 + .long 1072694532 + .long 906724166 + .long 1043683474 + .long -872415232 + .long 1072694536 + .long -255826891 + .long -1103721403 + .long -872415232 + .long 1072694540 + .long 1980605174 + .long -1107097400 + .long -872415232 + .long 1072694544 + .long -536291973 + .long 1043454488 + .long -805306368 + .long 1072694548 + .long 543130356 + .long -1103504720 + .long -805306368 + .long 1072694552 + .long 803595235 + .long -1105855024 + .long -805306368 + .long 1072694556 + .long 1115189825 + .long 1043191706 + .long -738197504 + .long 1072694560 + .long -1799543308 + .long -1103324948 + .long -738197504 + .long 1072694564 + .long 1405656323 + .long -1105192126 + .long -738197504 + .long 1072694568 + .long -879751081 + .long 1042881374 + .long -671088640 + .long 1072694572 + .long -508110793 + .long -1103182086 + .long -671088640 + .long 1072694576 + .long -121681433 + .long -1104931009 + .long -671088640 + .long 1072694580 + .long 865983319 + .long 1042644864 + .long -671088640 + .long 1072694584 + .long 1691757660 + .long 1044355877 + .long -603979776 + .long 1072694588 + .long 781268569 + .long -1104743712 + .long -603979776 + .long 1072694592 + .long 1390922643 + .long 1042482175 + .long -603979776 + .long 1072694596 + .long -1425211659 + .long 1044286836 + .long -536870912 + .long 1072694600 + .long 486014438 + .long -1104630238 + .long -536870912 + .long 1072694604 + .long 28605331 + .long 1042393309 + .long -536870912 + .long 1072694608 + .long 1561397218 + .long 1044254707 + .long -469762048 + .long 1072694612 + .long -341009951 + .long -1104590588 + .long -469762048 + .long 1072694616 + .long 407578644 + .long 1042378266 + .long -469762048 + .long 1072694620 + .long -419037045 + .long 1044259489 + .long -402653184 + .long 1072694624 + .long -1033412246 + .long -1104624761 + .long -402653184 + .long 1072694628 + .long 1861464072 + .long 1042437047 + .long -402653184 + .long 1072694632 + .long -1257245839 + .long 1044301184 + .long -335544320 + .long 1072694636 + .long -924841621 + .long -1104732759 + .long -335544320 + .long 1072694640 + .long -571042664 + .long 1042569653 + .long -335544320 + .long 1072694644 + .long 861092913 + .long 1044379792 + .long -268435456 + .long 1072694648 + .long 651011223 + .long -1104914582 + .long -268435456 + .long 1072694652 + .long 1033697571 + .long 1042776086 + .long -201326592 + .long 1072694656 + .long 839612539 + .long -1103215569 + .long -201326592 + .long 1072694660 + .long 65446763 + .long -1105170232 + .long -201326592 + .long 1072694664 + .long 1714463551 + .long 1043056345 + .long -134217728 + .long 1072694668 + .long 250031295 + .long -1103368003 + .long -134217728 + .long 1072694672 + .long 264349779 + .long -1105800315 + .long -134217728 + .long 1072694676 + .long 402521437 + .long 1043371776 + .long -67108864 + .long 1072694680 + .long -149253716 + .long -1103557352 + .long -67108864 + .long 1072694684 + .long 1774553990 + .long -1106966173 + .long -67108864 + .long 1072694688 + .long -1180367667 + .long 1043585733 + .long 0 + .long 1072694693 + .long 2122319668 + .long -1103783614 + .long 0 + .long 1072694697 + .long -442944307 + .long 1039149998 + .long 0 + .long 1072694701 + .long 70467086 + .long 1043836606 + .long 67108864 + .long 1072694705 + .long 955358255 + .long -1104046791 + .long 67108864 + .long 1072694709 + .long -340672169 + .long 1041554260 + .long 67108864 + .long 1072694713 + .long 1674498141 + .long 1044124393 + .long 134217728 + .long 1072694717 + .long 1955732655 + .long -1104543239 + .long 134217728 + .long 1072694721 + .long -917731854 + .long 1042544197 + .long 201326592 + .long 1072694725 + .long -1151218706 + .long -1103169353 + .long 201326592 + .long 1072694729 + .long 1501505841 + .long -1105235406 + .long 201326592 + .long 1072694733 + .long -1352961211 + .long 1043242824 + .long 268435456 + .long 1072694737 + .long -315110049 + .long -1103530972 + .long 268435456 + .long 1072694741 + .long 142040171 + .long -1107214525 + .long 268435456 + .long 1072694745 + .long 2741211 + .long 1043674202 + .long 335544320 + .long 1072694749 + .long -980674206 + .long -1103929507 + .long 335544320 + .long 1072694753 + .long 1195576836 + .long 1041265601 + .long 335544320 + .long 1072694757 + .long 1245831752 + .long 1044097348 + .long 402653184 + .long 1072694761 + .long -1334933362 + .long -1104579389 + .long 402653184 + .long 1072694765 + .long -590507213 + .long 1042670587 + .long 469762048 + .long 1072694769 + .long 1575123281 + .long -1103277668 + .long 469762048 + .long 1072694773 + .long -465156862 + .long -1105849150 + .long 469762048 + .long 1072694777 + .long -522518893 + .long 1043486528 + .long 536870912 + .long 1072694781 + .long -1944368112 + .long -1103774649 + .long 536870912 + .long 1072694785 + .long 543714537 + .long 1040318896 + .long 536870912 + .long 1072694789 + .long -1789555869 + .long 1044008121 + .long 603979776 + .long 1072694793 + .long -1467964437 + .long -1104466567 + .long 603979776 + .long 1072694797 + .long -1768296777 + .long 1042623397 + .long 671088640 + .long 1072694801 + .long -2013194783 + .long -1103286889 + .long 671088640 + .long 1072694805 + .long 681826184 + .long -1106017297 + .long 671088640 + .long 1072694809 + .long 148298787 + .long 1043561382 + .long 738197504 + .long 1072694813 + .long 184556040 + .long -1103882318 + .long 738197504 + .long 1072694817 + .long -112281190 + .long 1041339375 + .long 738197504 + .long 1072694821 + .long 684965179 + .long 1044181424 + .long 805306368 + .long 1072694825 + .long 251447682 + .long -1104878805 + .long 805306368 + .long 1072694829 + .long -490888065 + .long 1043101269 + .long 872415232 + .long 1072694833 + .long 1754469112 + .long -1103558642 + .long 872415232 + .long 1072694837 + .long -1455141452 + .long -1110597432 + .long 872415232 + .long 1072694841 + .long 2065825315 + .long 1043898769 + .long 939524096 + .long 1072694845 + .long 2120737249 + .long -1104354518 + .long 939524096 + .long 1072694849 + .long -2024115728 + .long 1042618004 + .long 1006632960 + .long 1072694853 + .long -130485163 + .long -1103337521 + .long 1006632960 + .long 1072694857 + .long 1999061074 + .long -1106618593 + .long 1006632960 + .long 1072694861 + .long 1672146856 + .long 1043718670 + .long 1073741824 + .long 1072694865 + .long -58205584 + .long -1104092936 + .long 1073741824 + .long 1072694869 + .long -385312003 + .long 1042339851 + .long 1140850688 + .long 1072694873 + .long -986774595 + .long -1103218956 + .long 1140850688 + .long 1072694877 + .long -1769938610 + .long -1106040924 + .long 1140850688 + .long 1072694881 + .long -684570995 + .long 1043641128 + .long 1207959552 + .long 1072694885 + .long -894046390 + .long -1104035906 + .long 1207959552 + .long 1072694889 + .long -492635167 + .long 1042249087 + .long 1275068416 + .long 1072694893 + .long -625994534 + .long -1103202950 + .long 1275068416 + .long 1072694897 + .long 50020283 + .long -1106058947 + .long 1275068416 + .long 1072694901 + .long -897701491 + .long 1043666146 + .long 1342177280 + .long 1072694905 + .long -1258845292 + .long -1104081436 + .long 1342177280 + .long 1072694909 + .long -1983685371 + .long 1042398900 + .long 1409286144 + .long 1072694913 + .long 1140099420 + .long -1103289504 + .long 1409286144 + .long 1072694917 + .long 1539611359 + .long -1106726750 + .long 1409286144 + .long 1072694921 + .long 844575065 + .long 1043793726 + .long 1476395008 + .long 1072694925 + .long -1928908078 + .long -1104308527 + .long 1476395008 + .long 1072694929 + .long -1678680473 + .long 1042736109 + .long 1543503872 + .long 1072694933 + .long 204624123 + .long -1103478621 + .long 1543503872 + .long 1072694937 + .long -49618412 + .long 1035782574 + .long 1543503872 + .long 1072694941 + .long 59271329 + .long 1044023869 + .long 1610612736 + .long 1072694945 + .long 354230734 + .long -1104809838 + .long 1610612736 + .long 1072694949 + .long 292785219 + .long 1043278447 + .long 1677721600 + .long 1072694953 + .long 1050470765 + .long -1103770303 + .long 1677721600 + .long 1072694957 + .long -1917048552 + .long 1041465650 + .long 1677721600 + .long 1072694961 + .long 853494803 + .long 1044356577 + .long 1744830464 + .long 1072694965 + .long 824828082 + .long -1105833458 + .long 1744830464 + .long 1072694969 + .long 1777560161 + .long 1043679518 + .long 1811939328 + .long 1072694973 + .long -859128620 + .long -1104178575 + .long 1811939328 + .long 1072694977 + .long 223983769 + .long 1042704621 + .long 1879048192 + .long 1072694981 + .long 1255421344 + .long -1103512109 + .long 1879048192 + .long 1072694985 + .long -1852716357 + .long 1039531674 + .long 1879048192 + .long 1072694989 + .long 1719043339 + .long 1044155821 + .long 1946157056 + .long 1072694993 + .long 494179146 + .long -1105172208 + .long 1946157056 + .long 1072694997 + .long 1300784248 + .long 1043536201 + .long 2013265920 + .long 1072695001 + .long -2134918206 + .long -1104049954 + .long 2013265920 + .long 1072695005 + .long 350099225 + .long 1042532865 + .long 2080374784 + .long 1072695009 + .long -1930850624 + .long -1103454951 + .long 2080374784 + .long 1072695013 + .long -1492801817 + .long 1039014503 + .long 2080374784 + .long 1072695017 + .long -321521583 + .long 1044156102 + .long -2147483648 + .long 1072695021 + .long -398864819 + .long -1105261319 + .long -2147483648 + .long 1072695025 + .long 210543722 + .long 1043593923 + .long -2080374784 + .long 1072695029 + .long 2069300184 + .long -1104136396 + .long -2080374784 + .long 1072695033 + .long -460283630 + .long 1042763189 + .long -2013265920 + .long 1072695037 + .long -1500274541 + .long -1103598834 + .long -2013265920 + .long 1072695041 + .long -256426582 + .long 1041012853 + .long -2013265920 + .long 1072695045 + .long 608807236 + .long 1044357427 + .long -1946157056 + .long 1072695049 + .long -1075418092 + .long -1106181499 + .long -1946157056 + .long 1072695053 + .long 89054397 + .long 1043852689 + .long -1879048192 + .long 1072695057 + .long -273262300 + .long -1104697238 + .long -1879048192 + .long 1072695061 + .long 478809329 + .long 1043364363 + .long -1811939328 + .long 1072695065 + .long 964669910 + .long -1103943763 + .long -1811939328 + .long 1072695069 + .long 336771579 + .long 1042451779 + .long -1744830464 + .long 1072695073 + .long -1797718096 + .long -1103480056 + .long -1744830464 + .long 1072695077 + .long 1859649600 + .long 1040358051 + .long -1744830464 + .long 1072695081 + .long -1775819510 + .long 1044312504 + .long -1677721600 + .long 1072695085 + .long 1607146249 + .long -1106149520 + .long -1677721600 + .long 1072695089 + .long 1737426825 + .long 1043881622 + .long -1610612736 + .long 1072695093 + .long -828159909 + .long -1104828961 + .long -1610612736 + .long 1072695097 + .long -9633021 + .long 1043467152 + .long -1543503872 + .long 1072695101 + .long -533515009 + .long -1104083482 + .long -1543503872 + .long 1072695105 + .long -73464467 + .long 1042805072 + .long -1476395008 + .long 1072695109 + .long -494336524 + .long -1103693632 + .long -1476395008 + .long 1072695113 + .long 185862058 + .long 1041799028 + .long -1409286144 + .long 1072695117 + .long -834366524 + .long -1103320195 + .long -1409286144 + .long 1072695121 + .long -880706184 + .long 1038247381 + .long -1409286144 + .long 1072695125 + .long 2091431139 + .long 1044242914 + .long -1342177280 + .long 1072695129 + .long 2104692678 + .long -1106051703 + .long -1342177280 + .long 1072695133 + .long 508393305 + .long 1043902304 + .long -1275068416 + .long 1072695137 + .long 212698274 + .long -1104960596 + .long -1275068416 + .long 1072695141 + .long 918054653 + .long 1043578107 + .long -1207959552 + .long 1072695145 + .long 1292265377 + .long -1104328616 + .long -1207959552 + .long 1072695149 + .long -873427350 + .long 1043207527 + .long -1140850688 + .long 1072695153 + .long -1613542139 + .long -1103939996 + .long -1140850688 + .long 1072695157 + .long -1741170976 + .long 1042624788 + .long -1073741824 + .long 1072695161 + .long 1379414653 + .long -1103656833 + .long -1073741824 + .long 1072695165 + .long 617143440 + .long 1041865210 + .long -1006632960 + .long 1072695169 + .long 497219774 + .long -1103390084 + .long -1006632960 + .long 1072695173 + .long -363794838 + .long 1040426117 + .long -939524096 + .long 1072695177 + .long -503012279 + .long -1103139750 + .long -939524096 + .long 1072695181 + .long 2027278579 + .long -1108093969 + .long -939524096 + .long 1072695185 + .long -2135828884 + .long 1044185572 + .long -872415232 + .long 1072695189 + .long -720070762 + .long -1106068543 + .long -872415232 + .long 1072695193 + .long 714052336 + .long 1043968066 + .long -805306368 + .long 1072695197 + .long 1865966727 + .long -1105231346 + .long -805306368 + .long 1072695201 + .long 1000586458 + .long 1043766974 + .long -738197504 + .long 1072695205 + .long -1775106478 + .long -1104829456 + .long -738197504 + .long 1072695209 + .long -738357302 + .long 1043582296 + .long -671088640 + .long 1072695213 + .long -970112847 + .long -1104476516 + .long -671088640 + .long 1072695217 + .long 330061670 + .long 1043414034 + .long -603979776 + .long 1072695221 + .long -2022753781 + .long -1104156405 + .long -603979776 + .long 1072695225 + .long 897507000 + .long 1043191252 + .long -536870912 + .long 1072695229 + .long 1290573182 + .long -1104009826 + .long -536870912 + .long 1072695233 + .long 311199430 + .long 1042920386 + .long -469762048 + .long 1072695237 + .long -559540728 + .long -1103882601 + .long -469762048 + .long 1072695241 + .long -23028112 + .long 1042682349 + .long -402653184 + .long 1072695245 + .long 1490328291 + .long -1103771790 + .long -402653184 + .long 1072695249 + .long 970603842 + .long 1042477144 + .long -335544320 + .long 1072695253 + .long -1687646141 + .long -1103677395 + .long -335544320 + .long 1072695257 + .long 72915670 + .long 1042304769 + .long -268435456 + .long 1072695261 + .long -2041425319 + .long -1103599415 + .long -268435456 + .long 1072695265 + .long 1014373804 + .long 1042045905 + .long -201326592 + .long 1072695269 + .long -108909236 + .long -1103537851 + .long -201326592 + .long 1072695273 + .long -1891491335 + .long 1041832478 + .long -134217728 + .long 1072695277 + .long -722969286 + .long -1103492702 + .long -134217728 + .long 1072695281 + .long -2125172187 + .long 1041684714 + .long -67108864 + .long 1072695285 + .long -126546373 + .long -1103463969 + .long -67108864 + .long 1072695289 + .long -1829995037 + .long 1041602613 + .long 0 + .long 1072695294 + .long 1142447197 + .long -1103451651 + ASM_TYPE_DIRECTIVE(fine, @object) + ASM_SIZE_DIRECTIVE(fine) + .space 512 + + .align ALIGNARG(3) +three51: + .long 0 + .long 1127743488 + ASM_TYPE_DIRECTIVE(three51, @object) + ASM_SIZE_DIRECTIVE(three51) + + .align ALIGNARG(3) +log2e: + .long 1697350398 + .long 1073157447 + ASM_TYPE_DIRECTIVE(log2e, @object) + ASM_SIZE_DIRECTIVE(log2e) + + .align ALIGNARG(3) +ln_two2: + .long -1815648464 + .long 1026487127 + ASM_TYPE_DIRECTIVE(ln_two2, @object) + ASM_SIZE_DIRECTIVE(ln_two2) + + .align ALIGNARG(3) +ln_two1: + .long -17156096 + .long 1072049730 + ASM_TYPE_DIRECTIVE(ln_two1, @object) + ASM_SIZE_DIRECTIVE(ln_two1) + + .align ALIGNARG(3) +three33: + .long 0 + .long 1108869120 + ASM_TYPE_DIRECTIVE(three33, @object) + ASM_SIZE_DIRECTIVE(three33) + + .align ALIGNARG(3) +p3: + .long 1431656975 + .long 1069897045 + ASM_TYPE_DIRECTIVE(p3, @object) + ASM_SIZE_DIRECTIVE(p3) + + .align ALIGNARG(3) +p2: + .long 1244 + .long 1071644672 + ASM_TYPE_DIRECTIVE(p2, @object) + ASM_SIZE_DIRECTIVE(p2) + + .align ALIGNARG(3) +err_0: + .long 0xae18ac9f, 0x3ff0000e + ASM_TYPE_DIRECTIVE(err_0, @object) + ASM_SIZE_DIRECTIVE(err_0) + + .align ALIGNARG(3) +tiny: + .long 0xc2f8f359, 0x01a56e1f + ASM_TYPE_DIRECTIVE(tiny, @object) + ASM_SIZE_DIRECTIVE(tiny) + + .align ALIGNARG(3) +hhuge: + .long 0x8800759c, 0x7e37e43c + ASM_TYPE_DIRECTIVE(hhuge, @object) + ASM_SIZE_DIRECTIVE(hhuge) + + .align ALIGNARG(3) +inf: + .long 0 + .long 2146435072 + ASM_TYPE_DIRECTIVE(inf, @object) + ASM_SIZE_DIRECTIVE(inf) + + .align ALIGNARG(3) +t256: + .long 0 + .long 1341128704 + ASM_TYPE_DIRECTIVE(t256, @object) + ASM_SIZE_DIRECTIVE(t256) + + .align ALIGNARG(3) +tablevalue_27: + .long 0x0006df38, 0x3ff00000 + ASM_TYPE_DIRECTIVE(tablevalue_27, @object) + ASM_SIZE_DIRECTIVE(tablevalue_27) + + .align ALIGNARG(3) +tablevalue_28: + .long 0x00000000, 0x3ff00000 + ASM_TYPE_DIRECTIVE(tablevalue_28, @object) + ASM_SIZE_DIRECTIVE(tablevalue_28) + + .align ALIGNARG(3) +err_1: + .long 0xa0b5ed8d, 0x3ef0c6f7 + ASM_TYPE_DIRECTIVE(err_1, @object) + ASM_SIZE_DIRECTIVE(err_1) + + .align ALIGNARG(3) +zero: + .long 0x00000000, 0x00000000 + ASM_TYPE_DIRECTIVE(zero, @object) + ASM_SIZE_DIRECTIVE(zero) + + .align ALIGNARG(3) +tablevalue_35: + .long 0x00000000, 0xc0240000 + ASM_TYPE_DIRECTIVE(tablevalue_35, @object) + ASM_SIZE_DIRECTIVE(tablevalue_35) + + .align ALIGNARG(3) +tablevalue_36: + .long 0x0000afec, 0x3ff00000 + ASM_TYPE_DIRECTIVE(tablevalue_36, @object) + ASM_SIZE_DIRECTIVE(tablevalue_36) + + .align ALIGNARG(3) +tablevalue_37: + .long 0x00000000, 0x3ff00000 + ASM_TYPE_DIRECTIVE(tablevalue_37, @object) + ASM_SIZE_DIRECTIVE(tablevalue_37) + + .align ALIGNARG(2) +hugeint: + .long 2147483647 + ASM_TYPE_DIRECTIVE(hugeint, @object) + ASM_SIZE_DIRECTIVE(hugeint) + + .align ALIGNARG(2) +bigint: + .long 1082531842 + ASM_TYPE_DIRECTIVE(bigint, @object) + ASM_SIZE_DIRECTIVE(bigint) + + .align ALIGNARG(2) +badint: + .long 1082613760 + ASM_TYPE_DIRECTIVE(badint, @object) + ASM_SIZE_DIRECTIVE(badint) diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c index 3c65028..419af56 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_exp.c +++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c @@ -4,21 +4,29 @@ extern double __ieee754_exp_sse2 (double); extern double __ieee754_exp_avx (double); +extern double __exp1_sse2 (double, double, double); +extern double __exp1_avx (double, double, double); + # ifdef HAVE_FMA4_SUPPORT extern double __ieee754_exp_fma4 (double); +extern double __exp1_fma4 (double, double, double); # else # undef HAS_FMA4 # define HAS_FMA4 0 # define __ieee754_exp_fma4 ((void *) 0) +# define __exp1_fma4 ((void *) 0) # endif libm_ifunc (__ieee754_exp, HAS_FMA4 ? __ieee754_exp_fma4 : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); -strong_alias (__ieee754_exp, __exp_finite) -# define __ieee754_exp __ieee754_exp_sse2 +libm_ifunc (__exp1, + HAS_FMA4 ? __exp1_fma4 + : (HAS_AVX ? __exp1_avx : __exp1_sse2)); +#else +strong_alias (__ieee754_exp_sse2, __ieee754_exp); +strong_alias (__exp1_sse2, __exp1); #endif - -#include +strong_alias (__ieee754_exp, __exp_finite) diff --git a/sysdeps/x86_64/fpu/s_erf.S b/sysdeps/x86_64/fpu/s_erf.S new file mode 100644 index 0000000..8c2d6a6 --- /dev/null +++ b/sysdeps/x86_64/fpu/s_erf.S @@ -0,0 +1,1376 @@ +/* Optimized erf and erfc functions. + Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Intel Corporation. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +ENTRY(__erf) + /* parameter 1: %xmm0 */ + lea -48(%rsp), %rsp + movaps %xmm0, %xmm7 + movsd %xmm7, (%rsp) + movl 4(%rsp), %r9d + movl %r9d, %eax + andl $2147483647, %eax + cmpl $2146435072, %eax + jge L(label_1_23) + cmpl $1072365568, %eax + jge L(label_1_9) + cmpl $1043333120, %eax + jge L(label_1_8) + cmpl $8388608, %eax + jge L(label_1_6) + movsd tablevalue_39(%rip), %xmm0 + movsd efx8(%rip), %xmm1 + mulsd %xmm7, %xmm0 + mulsd %xmm1, %xmm7 + addsd %xmm7, %xmm0 + mulsd tablevalue_38(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_6): + movsd efx(%rip), %xmm0 + mulsd %xmm7, %xmm0 + addsd %xmm7, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_8): + movaps %xmm7, %xmm5 + mulsd %xmm7, %xmm5 + movsd tablevalue_18(%rip), %xmm1 + movaps %xmm5, %xmm4 + movsd tablevalue_21(%rip), %xmm3 + mulsd %xmm5, %xmm1 + mulsd %xmm5, %xmm3 + mulsd %xmm5, %xmm4 + addsd tablevalue_17(%rip), %xmm1 + addsd tablevalue_20(%rip), %xmm3 + mulsd %xmm4, %xmm1 + movsd tablevalue_16(%rip), %xmm9 + movaps %xmm4, %xmm6 + movsd tablevalue_19(%rip), %xmm8 + mulsd %xmm5, %xmm9 + mulsd %xmm5, %xmm8 + mulsd tablevalue_23(%rip), %xmm5 + addsd tablevalue_15(%rip), %xmm9 + mulsd %xmm4, %xmm6 + addsd one(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd tablevalue_22(%rip), %xmm5 + addsd %xmm1, %xmm9 + addsd %xmm4, %xmm8 + movsd tablevalue_24(%rip), %xmm2 + mulsd %xmm6, %xmm2 + mulsd %xmm5, %xmm6 + addsd %xmm2, %xmm9 + addsd %xmm6, %xmm8 + divsd %xmm8, %xmm9 + mulsd %xmm7, %xmm9 + addsd %xmm9, %xmm7 + movaps %xmm7, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_9): + cmpl $1072955392, %eax + jge L(label_1_13) + andps tablevalue_73(%rip), %xmm7 + testl %r9d, %r9d + movsd tablevalue_29(%rip), %xmm2 + movsd tablevalue_31(%rip), %xmm5 + movsd tablevalue_26(%rip), %xmm0 + movsd tablevalue_27(%rip), %xmm10 + movsd tablevalue_33(%rip), %xmm3 + movsd tablevalue_35(%rip), %xmm1 + movsd tablevalue_36(%rip), %xmm4 + subsd one(%rip), %xmm7 + mulsd %xmm7, %xmm2 + movaps %xmm7, %xmm6 + mulsd %xmm7, %xmm5 + mulsd %xmm7, %xmm6 + addsd tablevalue_28(%rip), %xmm2 + mulsd %xmm7, %xmm0 + addsd tablevalue_30(%rip), %xmm5 + mulsd %xmm7, %xmm10 + mulsd %xmm7, %xmm3 + addsd tablevalue_25(%rip), %xmm0 + mulsd %xmm1, %xmm7 + addsd one(%rip), %xmm10 + mulsd %xmm6, %xmm2 + addsd tablevalue_32(%rip), %xmm3 + addsd tablevalue_34(%rip), %xmm7 + addsd %xmm2, %xmm0 + movaps %xmm6, %xmm8 + movaps %xmm6, %xmm9 + mulsd %xmm6, %xmm8 + mulsd %xmm5, %xmm6 + mulsd %xmm8, %xmm9 + mulsd %xmm8, %xmm3 + addsd %xmm6, %xmm10 + mulsd %xmm7, %xmm8 + mulsd %xmm9, %xmm4 + addsd %xmm3, %xmm0 + addsd %xmm8, %xmm10 + addsd %xmm4, %xmm0 + movsd tablevalue_37(%rip), %xmm7 + mulsd %xmm7, %xmm9 + addsd %xmm9, %xmm10 + jl L(label_1_24) + divsd %xmm10, %xmm0 + addsd erx(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_13): + cmpl $1075314688, %eax + jl L(label_1_15) + testl %r9d, %r9d + movsd tablevalue_74(%rip), %xmm0 + movsd tablevalue_41(%rip), %xmm1 + jge L(label_26) + movaps %xmm1, %xmm0 +L(label_26): + lea 48(%rsp), %rsp + ret + +L(label_1_15): + andps tablevalue_73(%rip), %xmm7 + cmpl $1074191214, %eax + movaps %xmm7, %xmm1 + mulsd %xmm7, %xmm1 + movsd one(%rip), %xmm6 + divsd %xmm1, %xmm6 + movaps %xmm6, %xmm3 + mulsd %xmm6, %xmm3 + movaps %xmm3, %xmm1 + movaps %xmm3, %xmm2 + mulsd %xmm3, %xmm1 + mulsd %xmm1, %xmm2 + jge L(label_1_17) + movsd tablevalue_46(%rip), %xmm9 + movaps %xmm1, %xmm14 + movsd tablevalue_48(%rip), %xmm12 + mulsd %xmm6, %xmm9 + mulsd %xmm6, %xmm12 + mulsd %xmm1, %xmm14 + addsd tablevalue_45(%rip), %xmm9 + addsd tablevalue_47(%rip), %xmm12 + mulsd tablevalue_57(%rip), %xmm14 + mulsd %xmm3, %xmm9 + mulsd %xmm12, %xmm3 + movsd tablevalue_44(%rip), %xmm5 + movsd tablevalue_50(%rip), %xmm10 + movsd tablevalue_52(%rip), %xmm13 + mulsd %xmm6, %xmm5 + mulsd %xmm6, %xmm10 + mulsd %xmm6, %xmm13 + addsd one(%rip), %xmm5 + addsd tablevalue_49(%rip), %xmm10 + addsd tablevalue_51(%rip), %xmm13 + addsd %xmm3, %xmm5 + mulsd %xmm1, %xmm10 + mulsd %xmm13, %xmm1 + movsd tablevalue_43(%rip), %xmm4 + addsd %xmm1, %xmm5 + mulsd %xmm6, %xmm4 + movsd tablevalue_54(%rip), %xmm11 + movsd tablevalue_56(%rip), %xmm8 + mulsd %xmm6, %xmm11 + addsd tablevalue_42(%rip), %xmm4 + mulsd %xmm8, %xmm6 + addsd tablevalue_53(%rip), %xmm11 + addsd %xmm9, %xmm4 + addsd tablevalue_55(%rip), %xmm6 + mulsd %xmm2, %xmm11 + addsd %xmm10, %xmm4 + mulsd %xmm6, %xmm2 + addsd %xmm11, %xmm4 + addsd %xmm2, %xmm5 + addsd %xmm14, %xmm5 + jmp L(label_1_18) + +L(label_1_17): + movsd tablevalue_62(%rip), %xmm9 + movsd tablevalue_64(%rip), %xmm12 + mulsd %xmm6, %xmm9 + mulsd %xmm6, %xmm12 + addsd tablevalue_61(%rip), %xmm9 + addsd tablevalue_63(%rip), %xmm12 + mulsd %xmm3, %xmm9 + mulsd %xmm12, %xmm3 + movsd tablevalue_59(%rip), %xmm4 + movsd tablevalue_60(%rip), %xmm5 + movsd tablevalue_66(%rip), %xmm10 + movsd tablevalue_68(%rip), %xmm13 + mulsd %xmm6, %xmm4 + mulsd %xmm6, %xmm5 + mulsd %xmm6, %xmm10 + addsd tablevalue_58(%rip), %xmm4 + mulsd %xmm6, %xmm13 + addsd one(%rip), %xmm5 + addsd tablevalue_65(%rip), %xmm10 + addsd %xmm9, %xmm4 + addsd tablevalue_67(%rip), %xmm13 + addsd %xmm3, %xmm5 + mulsd %xmm1, %xmm10 + mulsd %xmm13, %xmm1 + addsd %xmm10, %xmm4 + addsd %xmm1, %xmm5 + movsd tablevalue_70(%rip), %xmm8 + mulsd %xmm8, %xmm6 + movsd tablevalue_71(%rip), %xmm11 + mulsd %xmm2, %xmm11 + addsd tablevalue_69(%rip), %xmm6 + mulsd %xmm6, %xmm2 + addsd %xmm11, %xmm4 + addsd %xmm2, %xmm5 +L(label_1_18): + movsd %xmm7, 16(%rsp) + movl $0, 16(%rsp) + movsd 16(%rsp), %xmm0 + movsd %xmm0, (%rsp) + mulsd 16(%rsp), %xmm0 + xorps tablevalue_75(%rip), %xmm0 + movsd %xmm5, 24(%rsp) + movsd %xmm4, 32(%rsp) + movsd %xmm7, 8(%rsp) + subsd tablevalue_72(%rip), %xmm0 + call __ieee754_exp@PLT + movsd 8(%rsp), %xmm7 + movaps %xmm0, %xmm2 + movsd 32(%rsp), %xmm4 + movsd 24(%rsp), %xmm5 + divsd %xmm5, %xmm4 + movsd (%rsp), %xmm1 + movaps %xmm1, %xmm0 + addsd %xmm7, %xmm1 + subsd %xmm7, %xmm0 + mulsd %xmm1, %xmm0 + movsd %xmm7, 8(%rsp) + addsd %xmm4, %xmm0 + movsd %xmm2, 16(%rsp) + call __ieee754_exp@PLT + movsd 16(%rsp), %xmm2 + movsd 8(%rsp), %xmm7 + mulsd %xmm0, %xmm2 + testl %r9d, %r9d + jl L(label_1_25) + divsd %xmm7, %xmm2 + movsd one(%rip), %xmm0 + subsd %xmm2, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_23): + movsd one(%rip), %xmm1 + divsd %xmm7, %xmm1 + shrl $30, %r9d + andl $-2, %r9d + negl %r9d + incl %r9d + cvtsi2sd %r9d, %xmm0 + addsd %xmm1, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_24): + divsd %xmm10, %xmm0 + movaps %xmm0, %xmm1 + movsd tablevalue_40(%rip), %xmm0 + subsd %xmm1, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_25): + divsd %xmm7, %xmm2 + movsd one(%rip), %xmm0 + subsd %xmm2, %xmm0 + xorps tablevalue_75(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +END(__erf) + + +ENTRY(__erfc) + /* parameter 1: %xmm0 */ + lea -48(%rsp), %rsp + movaps %xmm0, %xmm4 + movsd %xmm4, (%rsp) + movl 4(%rsp), %r9d + movl %r9d, %eax + andl $2147483647, %eax + cmpl $2146435072, %eax + jge L(label_2_27) + cmpl $1072365568, %eax + jge L(label_2_9) + cmpl $1013972992, %eax + jl L(label_2_8) + movaps %xmm4, %xmm7 + cmpl $1070596096, %r9d + mulsd %xmm4, %xmm7 + movsd tablevalue_80(%rip), %xmm2 + movaps %xmm7, %xmm6 + movsd tablevalue_83(%rip), %xmm5 + mulsd %xmm7, %xmm2 + mulsd %xmm7, %xmm5 + mulsd %xmm7, %xmm6 + addsd tablevalue_79(%rip), %xmm2 + addsd tablevalue_82(%rip), %xmm5 + mulsd %xmm6, %xmm2 + movsd tablevalue_78(%rip), %xmm10 + movaps %xmm6, %xmm8 + movsd tablevalue_81(%rip), %xmm9 + movsd tablevalue_85(%rip), %xmm1 + mulsd %xmm7, %xmm10 + mulsd %xmm7, %xmm9 + mulsd %xmm1, %xmm7 + addsd tablevalue_77(%rip), %xmm10 + mulsd %xmm6, %xmm8 + addsd one(%rip), %xmm9 + mulsd %xmm5, %xmm6 + addsd tablevalue_84(%rip), %xmm7 + addsd %xmm2, %xmm10 + addsd %xmm6, %xmm9 + movsd tablevalue_86(%rip), %xmm3 + mulsd %xmm8, %xmm3 + mulsd %xmm7, %xmm8 + addsd %xmm3, %xmm10 + addsd %xmm8, %xmm9 + divsd %xmm9, %xmm10 + movsd one(%rip), %xmm0 + mulsd %xmm4, %xmm10 + jge L(label_2_6) + addsd %xmm10, %xmm4 + subsd %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_6): + movsd half(%rip), %xmm0 + subsd half(%rip), %xmm4 + addsd %xmm4, %xmm10 + subsd %xmm10, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_8): + movsd one(%rip), %xmm0 + subsd %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_9): + cmpl $1072955392, %eax + jge L(label_2_13) + andps tablevalue_133(%rip), %xmm4 + testl %r9d, %r9d + movsd tablevalue_91(%rip), %xmm2 + movsd tablevalue_93(%rip), %xmm6 + movsd tablevalue_88(%rip), %xmm11 + movsd tablevalue_89(%rip), %xmm10 + movsd tablevalue_95(%rip), %xmm3 + movsd tablevalue_97(%rip), %xmm1 + movsd tablevalue_98(%rip), %xmm5 + subsd one(%rip), %xmm4 + mulsd %xmm4, %xmm2 + movaps %xmm4, %xmm7 + mulsd %xmm4, %xmm6 + mulsd %xmm4, %xmm7 + addsd tablevalue_90(%rip), %xmm2 + mulsd %xmm4, %xmm11 + addsd tablevalue_92(%rip), %xmm6 + mulsd %xmm4, %xmm10 + mulsd %xmm4, %xmm3 + addsd tablevalue_87(%rip), %xmm11 + mulsd %xmm1, %xmm4 + addsd one(%rip), %xmm10 + mulsd %xmm7, %xmm2 + addsd tablevalue_94(%rip), %xmm3 + addsd tablevalue_96(%rip), %xmm4 + addsd %xmm2, %xmm11 + movaps %xmm7, %xmm8 + movaps %xmm7, %xmm9 + mulsd %xmm7, %xmm8 + mulsd %xmm6, %xmm7 + mulsd %xmm8, %xmm9 + mulsd %xmm8, %xmm3 + addsd %xmm7, %xmm10 + mulsd %xmm4, %xmm8 + mulsd %xmm9, %xmm5 + addsd %xmm3, %xmm11 + addsd %xmm8, %xmm10 + addsd %xmm5, %xmm11 + movsd tablevalue_99(%rip), %xmm4 + mulsd %xmm4, %xmm9 + addsd %xmm9, %xmm10 + jl L(label_2_28) + divsd %xmm10, %xmm11 + movsd tablevalue_100(%rip), %xmm0 + subsd %xmm11, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_13): + cmpl $1077673984, %eax + jge L(label_2_23) + andps tablevalue_133(%rip), %xmm4 + cmpl $1074191213, %eax + movaps %xmm4, %xmm1 + mulsd %xmm4, %xmm1 + movsd one(%rip), %xmm3 + divsd %xmm1, %xmm3 + jge L(label_2_16) + movsd tablevalue_105(%rip), %xmm6 + movaps %xmm3, %xmm10 + movsd tablevalue_107(%rip), %xmm9 + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm9 + mulsd %xmm3, %xmm10 + addsd tablevalue_104(%rip), %xmm6 + addsd tablevalue_106(%rip), %xmm9 + mulsd %xmm10, %xmm6 + movsd tablevalue_103(%rip), %xmm2 + movaps %xmm10, %xmm12 + movsd tablevalue_109(%rip), %xmm7 + movaps %xmm10, %xmm13 + movsd tablevalue_111(%rip), %xmm11 + mulsd %xmm3, %xmm2 + mulsd %xmm3, %xmm7 + mulsd %xmm3, %xmm11 + addsd one(%rip), %xmm2 + mulsd %xmm10, %xmm12 + addsd tablevalue_108(%rip), %xmm7 + mulsd %xmm9, %xmm10 + addsd tablevalue_110(%rip), %xmm11 + mulsd %xmm12, %xmm13 + mulsd %xmm12, %xmm7 + addsd %xmm10, %xmm2 + movsd tablevalue_102(%rip), %xmm1 + movaps %xmm12, %xmm14 + movsd tablevalue_113(%rip), %xmm8 + movsd tablevalue_115(%rip), %xmm5 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm8 + mulsd %xmm5, %xmm3 + addsd tablevalue_101(%rip), %xmm1 + mulsd %xmm12, %xmm14 + addsd tablevalue_112(%rip), %xmm8 + mulsd %xmm11, %xmm12 + addsd tablevalue_114(%rip), %xmm3 + addsd %xmm6, %xmm1 + mulsd tablevalue_116(%rip), %xmm14 + mulsd %xmm13, %xmm8 + addsd %xmm12, %xmm2 + mulsd %xmm3, %xmm13 + addsd %xmm7, %xmm1 + addsd %xmm13, %xmm2 + addsd %xmm8, %xmm1 + addsd %xmm14, %xmm2 + jmp L(label_2_18) +L(label_2_16): + testl %r9d, %r9d + jl L(label_2_30) +L(label_2_17): + movsd tablevalue_123(%rip), %xmm6 + movaps %xmm3, %xmm10 + movsd tablevalue_125(%rip), %xmm9 + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm9 + mulsd %xmm3, %xmm10 + addsd tablevalue_122(%rip), %xmm6 + addsd tablevalue_124(%rip), %xmm9 + mulsd %xmm10, %xmm6 + movsd tablevalue_120(%rip), %xmm1 + movaps %xmm10, %xmm12 + movsd tablevalue_121(%rip), %xmm2 + movaps %xmm10, %xmm13 + movsd tablevalue_127(%rip), %xmm7 + movsd tablevalue_129(%rip), %xmm11 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm2 + mulsd %xmm3, %xmm7 + addsd tablevalue_119(%rip), %xmm1 + mulsd %xmm3, %xmm11 + addsd one(%rip), %xmm2 + mulsd %xmm10, %xmm12 + addsd tablevalue_126(%rip), %xmm7 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm1 + addsd tablevalue_128(%rip), %xmm11 + mulsd %xmm12, %xmm13 + mulsd %xmm12, %xmm7 + addsd %xmm10, %xmm2 + mulsd %xmm11, %xmm12 + addsd %xmm7, %xmm1 + addsd %xmm12, %xmm2 + movsd tablevalue_131(%rip), %xmm5 + mulsd %xmm5, %xmm3 + movsd tablevalue_132(%rip), %xmm8 + mulsd %xmm13, %xmm8 + addsd tablevalue_130(%rip), %xmm3 + mulsd %xmm3, %xmm13 + addsd %xmm8, %xmm1 + addsd %xmm13, %xmm2 +L(label_2_18): + movsd %xmm4, 16(%rsp) + movl $0, 16(%rsp) + movsd 16(%rsp), %xmm0 + movsd %xmm0, (%rsp) + mulsd 16(%rsp), %xmm0 + xorps tablevalue_134(%rip), %xmm0 + movsd %xmm2, 24(%rsp) + movsd %xmm1, 32(%rsp) + movsd %xmm4, 8(%rsp) + subsd tablevalue_118(%rip), %xmm0 + call __ieee754_exp@PLT + movsd 8(%rsp), %xmm4 + movaps %xmm0, %xmm5 + movsd 32(%rsp), %xmm1 + movsd 24(%rsp), %xmm2 + divsd %xmm2, %xmm1 + movsd (%rsp), %xmm3 + movaps %xmm3, %xmm0 + addsd %xmm4, %xmm3 + subsd %xmm4, %xmm0 + mulsd %xmm3, %xmm0 + movsd %xmm5, 16(%rsp) + addsd %xmm1, %xmm0 + movsd %xmm4, 8(%rsp) + call __ieee754_exp@PLT + movsd 8(%rsp), %xmm4 + movsd 16(%rsp), %xmm5 + mulsd %xmm0, %xmm5 + testl %r9d, %r9d + jle L(label_2_29) + divsd %xmm4, %xmm5 +L(label_2_22): + movaps %xmm5, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_23): + testl %r9d, %r9d + jle L(label_2_25) + movsd tiny(%rip), %xmm0 + mulsd %xmm0, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_25): + movsd tablevalue_117(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_27): + movsd one(%rip), %xmm1 + divsd %xmm4, %xmm1 + shrl $30, %r9d + andl $-2, %r9d + cvtsi2sdq %r9, %xmm0 + addsd %xmm1, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_28): + divsd %xmm10, %xmm11 + addsd erx(%rip), %xmm11 + movaps %xmm11, %xmm0 + addsd one(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_29): + divsd %xmm4, %xmm5 + movaps %xmm5, %xmm1 + movsd two(%rip), %xmm5 + subsd %xmm1, %xmm5 + jmp L(label_2_22) +L(label_2_30): + cmpl $1075314688, %eax + jl L(label_2_17) + movsd tablevalue_117(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +END(__erfc) + + .section .rodata, "a" + .align ALIGNARG(4) + + .align ALIGNARG(4) +tablevalue_73: + .long 0xffffffff,0x7fffffff,0x00000000,0x00000000 + ASM_TYPE_DIRECTIVE(tablevalue_73,@object) + ASM_SIZE_DIRECTIVE(tablevalue_73) + + .align ALIGNARG(4) +tablevalue_75: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + ASM_TYPE_DIRECTIVE(tablevalue_75,@object) + ASM_SIZE_DIRECTIVE(tablevalue_75) + + .align ALIGNARG(4) +tablevalue_133: + .long 0xffffffff,0x7fffffff,0x00000000,0x00000000 + ASM_TYPE_DIRECTIVE(tablevalue_133,@object) + ASM_SIZE_DIRECTIVE(tablevalue_133) + + .align ALIGNARG(4) +tablevalue_134: + .long 0x00000000,0x80000000,0x00000000,0x00000000 + ASM_TYPE_DIRECTIVE(tablevalue_134,@object) + ASM_SIZE_DIRECTIVE(tablevalue_134) + + .align ALIGNARG(3) +one: + .long 0x00000000,0x3ff00000 + ASM_TYPE_DIRECTIVE(one,@object) + ASM_SIZE_DIRECTIVE(one) + + .align ALIGNARG(3) +efx8: + .long 0x8214db69,0x3ff06eba + ASM_TYPE_DIRECTIVE(efx8,@object) + ASM_SIZE_DIRECTIVE(efx8) + + .align ALIGNARG(3) +efx: + .long 0x8214db69,0x3fc06eba + ASM_TYPE_DIRECTIVE(efx,@object) + ASM_SIZE_DIRECTIVE(efx) + + .align ALIGNARG(3) +erx: + .long 0x60000000,0x3feb0ac1 + ASM_TYPE_DIRECTIVE(erx,@object) + ASM_SIZE_DIRECTIVE(erx) + + .align ALIGNARG(3) +tablevalue_15: + .long 0x8214db68,0x3fc06eba + ASM_TYPE_DIRECTIVE(tablevalue_15,@object) + ASM_SIZE_DIRECTIVE(tablevalue_15) + + .align ALIGNARG(3) +tablevalue_16: + .long 0x691cb913,0xbfd4cd7d + ASM_TYPE_DIRECTIVE(tablevalue_16,@object) + ASM_SIZE_DIRECTIVE(tablevalue_16) + + .align ALIGNARG(3) +tablevalue_17: + .long 0xdbd7194f,0xbf9d2a51 + ASM_TYPE_DIRECTIVE(tablevalue_17,@object) + ASM_SIZE_DIRECTIVE(tablevalue_17) + + .align ALIGNARG(3) +tablevalue_18: + .long 0x236668e4,0xbf77a291 + ASM_TYPE_DIRECTIVE(tablevalue_18,@object) + ASM_SIZE_DIRECTIVE(tablevalue_18) + + .align ALIGNARG(3) +tablevalue_19: + .long 0xcddadc09,0x3fd97779 + ASM_TYPE_DIRECTIVE(tablevalue_19,@object) + ASM_SIZE_DIRECTIVE(tablevalue_19) + + .align ALIGNARG(3) +tablevalue_20: + .long 0x5536ceba,0x3fb0a54c + ASM_TYPE_DIRECTIVE(tablevalue_20,@object) + ASM_SIZE_DIRECTIVE(tablevalue_20) + + .align ALIGNARG(3) +tablevalue_21: + .long 0xc4d36b0f,0x3f74d022 + ASM_TYPE_DIRECTIVE(tablevalue_21,@object) + ASM_SIZE_DIRECTIVE(tablevalue_21) + + .align ALIGNARG(3) +tablevalue_22: + .long 0x221c1a10,0x3f215dc9 + ASM_TYPE_DIRECTIVE(tablevalue_22,@object) + ASM_SIZE_DIRECTIVE(tablevalue_22) + + .align ALIGNARG(3) +tablevalue_23: + .long 0x42a26120,0xbed09c43 + ASM_TYPE_DIRECTIVE(tablevalue_23,@object) + ASM_SIZE_DIRECTIVE(tablevalue_23) + + .align ALIGNARG(3) +tablevalue_24: + .long 0x120016ac,0xbef8ead6 + ASM_TYPE_DIRECTIVE(tablevalue_24,@object) + ASM_SIZE_DIRECTIVE(tablevalue_24) + + .align ALIGNARG(3) +tablevalue_25: + .long 0xbef77538,0xbf6359b8 + ASM_TYPE_DIRECTIVE(tablevalue_25,@object) + ASM_SIZE_DIRECTIVE(tablevalue_25) + + .align ALIGNARG(3) +tablevalue_26: + .long 0xad92b34d,0x3fda8d00 + ASM_TYPE_DIRECTIVE(tablevalue_26,@object) + ASM_SIZE_DIRECTIVE(tablevalue_26) + + .align ALIGNARG(3) +tablevalue_27: + .long 0x18eee323,0x3fbb3e66 + ASM_TYPE_DIRECTIVE(tablevalue_27,@object) + ASM_SIZE_DIRECTIVE(tablevalue_27) + + .align ALIGNARG(3) +tablevalue_28: + .long 0xfbb8c3f1,0xbfd7d240 + ASM_TYPE_DIRECTIVE(tablevalue_28,@object) + ASM_SIZE_DIRECTIVE(tablevalue_28) + + .align ALIGNARG(3) +tablevalue_29: + .long 0x805120e4,0x3fd45fca + ASM_TYPE_DIRECTIVE(tablevalue_29,@object) + ASM_SIZE_DIRECTIVE(tablevalue_29) + + .align ALIGNARG(3) +tablevalue_30: + .long 0x92eb6f33,0x3fe14af0 + ASM_TYPE_DIRECTIVE(tablevalue_30,@object) + ASM_SIZE_DIRECTIVE(tablevalue_30) + + .align ALIGNARG(3) +tablevalue_31: + .long 0xd99fe9a7,0x3fb2635c + ASM_TYPE_DIRECTIVE(tablevalue_31,@object) + ASM_SIZE_DIRECTIVE(tablevalue_31) + + .align ALIGNARG(3) +tablevalue_32: + .long 0x3d3e28ec,0xbfbc6398 + ASM_TYPE_DIRECTIVE(tablevalue_32,@object) + ASM_SIZE_DIRECTIVE(tablevalue_32) + + .align ALIGNARG(3) +tablevalue_33: + .long 0x599795eb,0x3fa22a36 + ASM_TYPE_DIRECTIVE(tablevalue_33,@object) + ASM_SIZE_DIRECTIVE(tablevalue_33) + + .align ALIGNARG(3) +tablevalue_34: + .long 0xe763351f,0x3fc02660 + ASM_TYPE_DIRECTIVE(tablevalue_34,@object) + ASM_SIZE_DIRECTIVE(tablevalue_34) + + .align ALIGNARG(3) +tablevalue_35: + .long 0x6b51dd1c,0x3f8bedc2 + ASM_TYPE_DIRECTIVE(tablevalue_35,@object) + ASM_SIZE_DIRECTIVE(tablevalue_35) + + .align ALIGNARG(3) +tablevalue_36: + .long 0x0a96073f,0xbf61bf38 + ASM_TYPE_DIRECTIVE(tablevalue_36,@object) + ASM_SIZE_DIRECTIVE(tablevalue_36) + + .align ALIGNARG(3) +tablevalue_37: + .long 0x5735151d,0x3f888b54 + ASM_TYPE_DIRECTIVE(tablevalue_37,@object) + ASM_SIZE_DIRECTIVE(tablevalue_37) + + .align ALIGNARG(3) +tablevalue_38: + .long 0x00000000,0x3fc00000 + ASM_TYPE_DIRECTIVE(tablevalue_38,@object) + ASM_SIZE_DIRECTIVE(tablevalue_38) + + .align ALIGNARG(3) +tablevalue_39: + .long 0x00000000,0x40200000 + ASM_TYPE_DIRECTIVE(tablevalue_39,@object) + ASM_SIZE_DIRECTIVE(tablevalue_39) + + .align ALIGNARG(3) +tablevalue_40: + .long 0x60000000,0xbfeb0ac1 + ASM_TYPE_DIRECTIVE(tablevalue_40,@object) + ASM_SIZE_DIRECTIVE(tablevalue_40) + + .align ALIGNARG(3) +tablevalue_41: + .long 0x00000000,0xbff00000 + ASM_TYPE_DIRECTIVE(tablevalue_41,@object) + ASM_SIZE_DIRECTIVE(tablevalue_41) + + .align ALIGNARG(3) +tablevalue_42: + .long 0x600d6435,0xbf843412 + ASM_TYPE_DIRECTIVE(tablevalue_42,@object) + ASM_SIZE_DIRECTIVE(tablevalue_42) + + .align ALIGNARG(3) +tablevalue_43: + .long 0xe4ba7360,0xbfe63416 + ASM_TYPE_DIRECTIVE(tablevalue_43,@object) + ASM_SIZE_DIRECTIVE(tablevalue_43) + + .align ALIGNARG(3) +tablevalue_44: + .long 0xbd707687,0x4033a6b9 + ASM_TYPE_DIRECTIVE(tablevalue_44,@object) + ASM_SIZE_DIRECTIVE(tablevalue_44) + + .align ALIGNARG(3) +tablevalue_45: + .long 0x41b0e726,0xc0251e04 + ASM_TYPE_DIRECTIVE(tablevalue_45,@object) + ASM_SIZE_DIRECTIVE(tablevalue_45) + + .align ALIGNARG(3) +tablevalue_46: + .long 0xe4cba38d,0xc04f300a + ASM_TYPE_DIRECTIVE(tablevalue_46,@object) + ASM_SIZE_DIRECTIVE(tablevalue_46) + + .align ALIGNARG(3) +tablevalue_47: + .long 0x526ae721,0x4061350c + ASM_TYPE_DIRECTIVE(tablevalue_47,@object) + ASM_SIZE_DIRECTIVE(tablevalue_47) + + .align ALIGNARG(3) +tablevalue_48: + .long 0xd58a1a71,0x407b290d + ASM_TYPE_DIRECTIVE(tablevalue_48,@object) + ASM_SIZE_DIRECTIVE(tablevalue_48) + + .align ALIGNARG(3) +tablevalue_49: + .long 0x84282266,0xc0644cb1 + ASM_TYPE_DIRECTIVE(tablevalue_49,@object) + ASM_SIZE_DIRECTIVE(tablevalue_49) + + .align ALIGNARG(3) +tablevalue_50: + .long 0xebccabb2,0xc067135c + ASM_TYPE_DIRECTIVE(tablevalue_50,@object) + ASM_SIZE_DIRECTIVE(tablevalue_50) + + .align ALIGNARG(3) +tablevalue_51: + .long 0x21ec2868,0x40842b19 + ASM_TYPE_DIRECTIVE(tablevalue_51,@object) + ASM_SIZE_DIRECTIVE(tablevalue_51) + + .align ALIGNARG(3) +tablevalue_52: + .long 0x57700314,0x407ad021 + ASM_TYPE_DIRECTIVE(tablevalue_52,@object) + ASM_SIZE_DIRECTIVE(tablevalue_52) + + .align ALIGNARG(3) +tablevalue_53: + .long 0x57e4d2f2,0xc0545265 + ASM_TYPE_DIRECTIVE(tablevalue_53,@object) + ASM_SIZE_DIRECTIVE(tablevalue_53) + + .align ALIGNARG(3) +tablevalue_54: + .long 0xc69ac25c,0xc023a0ef + ASM_TYPE_DIRECTIVE(tablevalue_54,@object) + ASM_SIZE_DIRECTIVE(tablevalue_54) + + .align ALIGNARG(3) +tablevalue_55: + .long 0xee48ae2c,0x405b28a3 + ASM_TYPE_DIRECTIVE(tablevalue_55,@object) + ASM_SIZE_DIRECTIVE(tablevalue_55) + + .align ALIGNARG(3) +tablevalue_56: + .long 0x8e484a93,0x401a47ef + ASM_TYPE_DIRECTIVE(tablevalue_56,@object) + ASM_SIZE_DIRECTIVE(tablevalue_56) + + .align ALIGNARG(3) +tablevalue_57: + .long 0xee749a62,0xbfaeeff2 + ASM_TYPE_DIRECTIVE(tablevalue_57,@object) + ASM_SIZE_DIRECTIVE(tablevalue_57) + + .align ALIGNARG(3) +tablevalue_58: + .long 0x39e86f4a,0xbf843412 + ASM_TYPE_DIRECTIVE(tablevalue_58,@object) + ASM_SIZE_DIRECTIVE(tablevalue_58) + + .align ALIGNARG(3) +tablevalue_59: + .long 0x70c285de,0xbfe993ba + ASM_TYPE_DIRECTIVE(tablevalue_59,@object) + ASM_SIZE_DIRECTIVE(tablevalue_59) + + .align ALIGNARG(3) +tablevalue_60: + .long 0x261d5190,0x403e568b + ASM_TYPE_DIRECTIVE(tablevalue_60,@object) + ASM_SIZE_DIRECTIVE(tablevalue_60) + + .align ALIGNARG(3) +tablevalue_61: + .long 0x555f995a,0xc031c209 + ASM_TYPE_DIRECTIVE(tablevalue_61,@object) + ASM_SIZE_DIRECTIVE(tablevalue_61) + + .align ALIGNARG(3) +tablevalue_62: + .long 0x43c5ed98,0xc064145d + ASM_TYPE_DIRECTIVE(tablevalue_62,@object) + ASM_SIZE_DIRECTIVE(tablevalue_62) + + .align ALIGNARG(3) +tablevalue_63: + .long 0x221b9f0a,0x40745cae + ASM_TYPE_DIRECTIVE(tablevalue_63,@object) + ASM_SIZE_DIRECTIVE(tablevalue_63) + + .align ALIGNARG(3) +tablevalue_64: + .long 0x189d5118,0x409802eb + ASM_TYPE_DIRECTIVE(tablevalue_64,@object) + ASM_SIZE_DIRECTIVE(tablevalue_64) + + .align ALIGNARG(3) +tablevalue_65: + .long 0x1375f228,0xc083ec88 + ASM_TYPE_DIRECTIVE(tablevalue_65,@object) + ASM_SIZE_DIRECTIVE(tablevalue_65) + + .align ALIGNARG(3) +tablevalue_66: + .long 0x6a2e5992,0xc0900461 + ASM_TYPE_DIRECTIVE(tablevalue_66,@object) + ASM_SIZE_DIRECTIVE(tablevalue_66) + + .align ALIGNARG(3) +tablevalue_67: + .long 0x688c246a,0x40a8ffb7 + ASM_TYPE_DIRECTIVE(tablevalue_67,@object) + ASM_SIZE_DIRECTIVE(tablevalue_67) + + .align ALIGNARG(3) +tablevalue_68: + .long 0xcedf3be6,0x40a3f219 + ASM_TYPE_DIRECTIVE(tablevalue_68,@object) + ASM_SIZE_DIRECTIVE(tablevalue_68) + + .align ALIGNARG(3) +tablevalue_69: + .long 0xe79fe763,0x407da874 + ASM_TYPE_DIRECTIVE(tablevalue_69,@object) + ASM_SIZE_DIRECTIVE(tablevalue_69) + + .align ALIGNARG(3) +tablevalue_70: + .long 0x42712d62,0xc03670e2 + ASM_TYPE_DIRECTIVE(tablevalue_70,@object) + ASM_SIZE_DIRECTIVE(tablevalue_70) + + .align ALIGNARG(3) +tablevalue_71: + .long 0x9bdc383f,0xc07e384e + ASM_TYPE_DIRECTIVE(tablevalue_71,@object) + ASM_SIZE_DIRECTIVE(tablevalue_71) + + .align ALIGNARG(3) +tablevalue_72: + .long 0x00000000,0x3fe20000 + ASM_TYPE_DIRECTIVE(tablevalue_72,@object) + ASM_SIZE_DIRECTIVE(tablevalue_72) + + .align ALIGNARG(3) +tablevalue_74: + .long 0x00000000,0x3ff00000 + ASM_TYPE_DIRECTIVE(tablevalue_74,@object) + ASM_SIZE_DIRECTIVE(tablevalue_74) + + .align ALIGNARG(3) +half: + .long 0x00000000,0x3fe00000 + ASM_TYPE_DIRECTIVE(half,@object) + ASM_SIZE_DIRECTIVE(half) + + .align ALIGNARG(3) +tiny: + .long 0xc2f8f359,0x01a56e1f + ASM_TYPE_DIRECTIVE(tiny,@object) + ASM_SIZE_DIRECTIVE(tiny) + + .align ALIGNARG(3) +two: + .long 0x00000000,0x40000000 + ASM_TYPE_DIRECTIVE(two,@object) + ASM_SIZE_DIRECTIVE(two) + + .align ALIGNARG(3) +tablevalue_77: + .long 0x8214db68,0x3fc06eba + ASM_TYPE_DIRECTIVE(tablevalue_77,@object) + ASM_SIZE_DIRECTIVE(tablevalue_77) + + .align ALIGNARG(3) +tablevalue_78: + .long 0x691cb913,0xbfd4cd7d + ASM_TYPE_DIRECTIVE(tablevalue_78,@object) + ASM_SIZE_DIRECTIVE(tablevalue_78) + + .align ALIGNARG(3) +tablevalue_79: + .long 0xdbd7194f,0xbf9d2a51 + ASM_TYPE_DIRECTIVE(tablevalue_79,@object) + ASM_SIZE_DIRECTIVE(tablevalue_79) + + .align ALIGNARG(3) +tablevalue_80: + .long 0x236668e4,0xbf77a291 + ASM_TYPE_DIRECTIVE(tablevalue_80,@object) + ASM_SIZE_DIRECTIVE(tablevalue_80) + + .align ALIGNARG(3) +tablevalue_81: + .long 0xcddadc09,0x3fd97779 + ASM_TYPE_DIRECTIVE(tablevalue_81,@object) + ASM_SIZE_DIRECTIVE(tablevalue_81) + + .align ALIGNARG(3) +tablevalue_82: + .long 0x5536ceba,0x3fb0a54c + ASM_TYPE_DIRECTIVE(tablevalue_82,@object) + ASM_SIZE_DIRECTIVE(tablevalue_82) + + .align ALIGNARG(3) +tablevalue_83: + .long 0xc4d36b0f,0x3f74d022 + ASM_TYPE_DIRECTIVE(tablevalue_83,@object) + ASM_SIZE_DIRECTIVE(tablevalue_83) + + .align ALIGNARG(3) +tablevalue_84: + .long 0x221c1a10,0x3f215dc9 + ASM_TYPE_DIRECTIVE(tablevalue_84,@object) + ASM_SIZE_DIRECTIVE(tablevalue_84) + + .align ALIGNARG(3) +tablevalue_85: + .long 0x42a26120,0xbed09c43 + ASM_TYPE_DIRECTIVE(tablevalue_85,@object) + ASM_SIZE_DIRECTIVE(tablevalue_85) + + .align ALIGNARG(3) +tablevalue_86: + .long 0x120016ac,0xbef8ead6 + ASM_TYPE_DIRECTIVE(tablevalue_86,@object) + ASM_SIZE_DIRECTIVE(tablevalue_86) + + .align ALIGNARG(3) +tablevalue_87: + .long 0xbef77538,0xbf6359b8 + ASM_TYPE_DIRECTIVE(tablevalue_87,@object) + ASM_SIZE_DIRECTIVE(tablevalue_87) + + .align ALIGNARG(3) +tablevalue_88: + .long 0xad92b34d,0x3fda8d00 + ASM_TYPE_DIRECTIVE(tablevalue_88,@object) + ASM_SIZE_DIRECTIVE(tablevalue_88) + + .align ALIGNARG(3) +tablevalue_89: + .long 0x18eee323,0x3fbb3e66 + ASM_TYPE_DIRECTIVE(tablevalue_89,@object) + ASM_SIZE_DIRECTIVE(tablevalue_89) + + .align ALIGNARG(3) +tablevalue_90: + .long 0xfbb8c3f1,0xbfd7d240 + ASM_TYPE_DIRECTIVE(tablevalue_90,@object) + ASM_SIZE_DIRECTIVE(tablevalue_90) + + .align ALIGNARG(3) +tablevalue_91: + .long 0x805120e4,0x3fd45fca + ASM_TYPE_DIRECTIVE(tablevalue_91,@object) + ASM_SIZE_DIRECTIVE(tablevalue_91) + + .align ALIGNARG(3) +tablevalue_92: + .long 0x92eb6f33,0x3fe14af0 + ASM_TYPE_DIRECTIVE(tablevalue_92,@object) + ASM_SIZE_DIRECTIVE(tablevalue_92) + + .align ALIGNARG(3) +tablevalue_93: + .long 0xd99fe9a7,0x3fb2635c + ASM_TYPE_DIRECTIVE(tablevalue_93,@object) + ASM_SIZE_DIRECTIVE(tablevalue_93) + + .align ALIGNARG(3) +tablevalue_94: + .long 0x3d3e28ec,0xbfbc6398 + ASM_TYPE_DIRECTIVE(tablevalue_94,@object) + ASM_SIZE_DIRECTIVE(tablevalue_94) + + .align ALIGNARG(3) +tablevalue_95: + .long 0x599795eb,0x3fa22a36 + ASM_TYPE_DIRECTIVE(tablevalue_95,@object) + ASM_SIZE_DIRECTIVE(tablevalue_95) + + .align ALIGNARG(3) +tablevalue_96: + .long 0xe763351f,0x3fc02660 + ASM_TYPE_DIRECTIVE(tablevalue_96,@object) + ASM_SIZE_DIRECTIVE(tablevalue_96) + + .align ALIGNARG(3) +tablevalue_97: + .long 0x6b51dd1c,0x3f8bedc2 + ASM_TYPE_DIRECTIVE(tablevalue_97,@object) + ASM_SIZE_DIRECTIVE(tablevalue_97) + + .align ALIGNARG(3) +tablevalue_98: + .long 0x0a96073f,0xbf61bf38 + ASM_TYPE_DIRECTIVE(tablevalue_98,@object) + ASM_SIZE_DIRECTIVE(tablevalue_98) + + .align ALIGNARG(3) +tablevalue_99: + .long 0x5735151d,0x3f888b54 + ASM_TYPE_DIRECTIVE(tablevalue_99,@object) + ASM_SIZE_DIRECTIVE(tablevalue_99) + + .align ALIGNARG(3) +tablevalue_100: + .long 0x80000000,0x3fc3d4fa + ASM_TYPE_DIRECTIVE(tablevalue_100,@object) + ASM_SIZE_DIRECTIVE(tablevalue_100) + + .align ALIGNARG(3) +tablevalue_101: + .long 0x600d6435,0xbf843412 + ASM_TYPE_DIRECTIVE(tablevalue_101,@object) + ASM_SIZE_DIRECTIVE(tablevalue_101) + + .align ALIGNARG(3) +tablevalue_102: + .long 0xe4ba7360,0xbfe63416 + ASM_TYPE_DIRECTIVE(tablevalue_102,@object) + ASM_SIZE_DIRECTIVE(tablevalue_102) + + .align ALIGNARG(3) +tablevalue_103: + .long 0xbd707687,0x4033a6b9 + ASM_TYPE_DIRECTIVE(tablevalue_103,@object) + ASM_SIZE_DIRECTIVE(tablevalue_103) + + .align ALIGNARG(3) +tablevalue_104: + .long 0x41b0e726,0xc0251e04 + ASM_TYPE_DIRECTIVE(tablevalue_104,@object) + ASM_SIZE_DIRECTIVE(tablevalue_104) + + .align ALIGNARG(3) +tablevalue_105: + .long 0xe4cba38d,0xc04f300a + ASM_TYPE_DIRECTIVE(tablevalue_105,@object) + ASM_SIZE_DIRECTIVE(tablevalue_105) + + .align ALIGNARG(3) +tablevalue_106: + .long 0x526ae721,0x4061350c + ASM_TYPE_DIRECTIVE(tablevalue_106,@object) + ASM_SIZE_DIRECTIVE(tablevalue_106) + + .align ALIGNARG(3) +tablevalue_107: + .long 0xd58a1a71,0x407b290d + ASM_TYPE_DIRECTIVE(tablevalue_107,@object) + ASM_SIZE_DIRECTIVE(tablevalue_107) + + .align ALIGNARG(3) +tablevalue_108: + .long 0x84282266,0xc0644cb1 + ASM_TYPE_DIRECTIVE(tablevalue_108,@object) + ASM_SIZE_DIRECTIVE(tablevalue_108) + + .align ALIGNARG(3) +tablevalue_109: + .long 0xebccabb2,0xc067135c + ASM_TYPE_DIRECTIVE(tablevalue_109,@object) + ASM_SIZE_DIRECTIVE(tablevalue_109) + + .align ALIGNARG(3) +tablevalue_110: + .long 0x21ec2868,0x40842b19 + ASM_TYPE_DIRECTIVE(tablevalue_110,@object) + ASM_SIZE_DIRECTIVE(tablevalue_110) + + .align ALIGNARG(3) +tablevalue_111: + .long 0x57700314,0x407ad021 + ASM_TYPE_DIRECTIVE(tablevalue_111,@object) + ASM_SIZE_DIRECTIVE(tablevalue_111) + + .align ALIGNARG(3) +tablevalue_112: + .long 0x57e4d2f2,0xc0545265 + ASM_TYPE_DIRECTIVE(tablevalue_112,@object) + ASM_SIZE_DIRECTIVE(tablevalue_112) + + .align ALIGNARG(3) +tablevalue_113: + .long 0xc69ac25c,0xc023a0ef + ASM_TYPE_DIRECTIVE(tablevalue_113,@object) + ASM_SIZE_DIRECTIVE(tablevalue_113) + + .align ALIGNARG(3) +tablevalue_114: + .long 0xee48ae2c,0x405b28a3 + ASM_TYPE_DIRECTIVE(tablevalue_114,@object) + ASM_SIZE_DIRECTIVE(tablevalue_114) + + .align ALIGNARG(3) +tablevalue_115: + .long 0x8e484a93,0x401a47ef + ASM_TYPE_DIRECTIVE(tablevalue_115,@object) + ASM_SIZE_DIRECTIVE(tablevalue_115) + + .align ALIGNARG(3) +tablevalue_116: + .long 0xee749a62,0xbfaeeff2 + ASM_TYPE_DIRECTIVE(tablevalue_116,@object) + ASM_SIZE_DIRECTIVE(tablevalue_116) + + .align ALIGNARG(3) +tablevalue_117: + .long 0x00000000,0x40000000 + ASM_TYPE_DIRECTIVE(tablevalue_117,@object) + ASM_SIZE_DIRECTIVE(tablevalue_117) + + .align ALIGNARG(3) +tablevalue_118: + .long 0x00000000,0x3fe20000 + ASM_TYPE_DIRECTIVE(tablevalue_118,@object) + ASM_SIZE_DIRECTIVE(tablevalue_118) + + .align ALIGNARG(3) +tablevalue_119: + .long 0x39e86f4a,0xbf843412 + ASM_TYPE_DIRECTIVE(tablevalue_119,@object) + ASM_SIZE_DIRECTIVE(tablevalue_119) + + .align ALIGNARG(3) +tablevalue_120: + .long 0x70c285de,0xbfe993ba + ASM_TYPE_DIRECTIVE(tablevalue_120,@object) + ASM_SIZE_DIRECTIVE(tablevalue_120) + + .align ALIGNARG(3) +tablevalue_121: + .long 0x261d5190,0x403e568b + ASM_TYPE_DIRECTIVE(tablevalue_121,@object) + ASM_SIZE_DIRECTIVE(tablevalue_121) + + .align ALIGNARG(3) +tablevalue_122: + .long 0x555f995a,0xc031c209 + ASM_TYPE_DIRECTIVE(tablevalue_122,@object) + ASM_SIZE_DIRECTIVE(tablevalue_122) + + .align ALIGNARG(3) +tablevalue_123: + .long 0x43c5ed98,0xc064145d + ASM_TYPE_DIRECTIVE(tablevalue_123,@object) + ASM_SIZE_DIRECTIVE(tablevalue_123) + + .align ALIGNARG(3) +tablevalue_124: + .long 0x221b9f0a,0x40745cae + ASM_TYPE_DIRECTIVE(tablevalue_124,@object) + ASM_SIZE_DIRECTIVE(tablevalue_124) + + .align ALIGNARG(3) +tablevalue_125: + .long 0x189d5118,0x409802eb + ASM_TYPE_DIRECTIVE(tablevalue_125,@object) + ASM_SIZE_DIRECTIVE(tablevalue_125) + + .align ALIGNARG(3) +tablevalue_126: + .long 0x1375f228,0xc083ec88 + ASM_TYPE_DIRECTIVE(tablevalue_126,@object) + ASM_SIZE_DIRECTIVE(tablevalue_126) + + .align ALIGNARG(3) +tablevalue_127: + .long 0x6a2e5992,0xc0900461 + ASM_TYPE_DIRECTIVE(tablevalue_127,@object) + ASM_SIZE_DIRECTIVE(tablevalue_127) + + .align ALIGNARG(3) +tablevalue_128: + .long 0x688c246a,0x40a8ffb7 + ASM_TYPE_DIRECTIVE(tablevalue_128,@object) + ASM_SIZE_DIRECTIVE(tablevalue_128) + + .align ALIGNARG(3) +tablevalue_129: + .long 0xcedf3be6,0x40a3f219 + ASM_TYPE_DIRECTIVE(tablevalue_129,@object) + ASM_SIZE_DIRECTIVE(tablevalue_129) + + .align ALIGNARG(3) +tablevalue_130: + .long 0xe79fe763,0x407da874 + ASM_TYPE_DIRECTIVE(tablevalue_130,@object) + ASM_SIZE_DIRECTIVE(tablevalue_130) + + .align ALIGNARG(3) +tablevalue_131: + .long 0x42712d62,0xc03670e2 + ASM_TYPE_DIRECTIVE(tablevalue_131,@object) + ASM_SIZE_DIRECTIVE(tablevalue_131) + + .align ALIGNARG(3) +tablevalue_132: + .long 0x9bdc383f,0xc07e384e + ASM_TYPE_DIRECTIVE(tablevalue_132,@object) + ASM_SIZE_DIRECTIVE(tablevalue_132) + +weak_alias(__erfc, erfc) +weak_alias(__erf, erf) diff --git a/sysdeps/x86_64/fpu/s_erfc.S b/sysdeps/x86_64/fpu/s_erfc.S new file mode 100644 index 0000000..20ff701 --- /dev/null +++ b/sysdeps/x86_64/fpu/s_erfc.S @@ -0,0 +1 @@ +/* Not needed. See "s_erf.S" */ diff --git a/sysdeps/x86_64/fpu/s_erfcf.S b/sysdeps/x86_64/fpu/s_erfcf.S new file mode 100644 index 0000000..42a33b0 --- /dev/null +++ b/sysdeps/x86_64/fpu/s_erfcf.S @@ -0,0 +1 @@ +/* Not needed. See "s_erff.S" */ diff --git a/sysdeps/x86_64/fpu/s_erff.S b/sysdeps/x86_64/fpu/s_erff.S new file mode 100644 index 0000000..fbcd7d6 --- /dev/null +++ b/sysdeps/x86_64/fpu/s_erff.S @@ -0,0 +1,968 @@ +/* Optimized erff and erfcf functions. + Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Intel Corporation. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +ENTRY(__erff) + /* parameter 1: %xmm0 */ + lea -48(%rsp), %rsp + movaps %xmm0, %xmm4 + movd %xmm4, %r9d + movl %r9d, %eax + andl $2147483647, %eax + cmpl $2139095040, %eax + jge L(label_1_23) + cmpl $1062731776, %eax + jge L(label_1_9) + cmpl $830472192, %eax + jge L(label_1_8) + cmpl $67108864, %eax + jge L(label_1_6) + movss tablevalue_22(%rip), %xmm0 + movss efx8(%rip), %xmm1 + mulss %xmm4, %xmm0 + mulss %xmm1, %xmm4 + addss %xmm4, %xmm0 + mulss tablevalue_21(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_6): + movss efx(%rip), %xmm0 + mulss %xmm4, %xmm0 + addss %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_8): + movaps %xmm4, %xmm2 + mulss %xmm4, %xmm2 + movss qq5(%rip), %xmm1 + mulss %xmm2, %xmm1 + movss pp4(%rip), %xmm3 + mulss %xmm2, %xmm3 + addss qq4(%rip), %xmm1 + addss pp3(%rip), %xmm3 + mulss %xmm2, %xmm1 + mulss %xmm2, %xmm3 + addss qq3(%rip), %xmm1 + addss pp2(%rip), %xmm3 + mulss %xmm2, %xmm1 + mulss %xmm2, %xmm3 + addss qq2(%rip), %xmm1 + addss pp1(%rip), %xmm3 + mulss %xmm2, %xmm1 + mulss %xmm2, %xmm3 + addss qq1(%rip), %xmm1 + addss pp0(%rip), %xmm3 + mulss %xmm1, %xmm2 + addss one(%rip), %xmm2 + divss %xmm2, %xmm3 + mulss %xmm4, %xmm3 + addss %xmm3, %xmm4 + movaps %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_9): + cmpl $1067450368, %eax + jge L(label_1_13) + movl %r9d, %eax + andl $2147483647, %eax + movl %eax, (%rsp) + testl %r9d, %r9d + movss (%rsp), %xmm2 + movss pa6(%rip), %xmm0 + movss qa6(%rip), %xmm1 + subss one(%rip), %xmm2 + mulss %xmm2, %xmm0 + mulss %xmm2, %xmm1 + addss pa5(%rip), %xmm0 + addss qa5(%rip), %xmm1 + mulss %xmm2, %xmm0 + mulss %xmm2, %xmm1 + addss pa4(%rip), %xmm0 + addss qa4(%rip), %xmm1 + mulss %xmm2, %xmm0 + mulss %xmm2, %xmm1 + addss pa3(%rip), %xmm0 + addss qa3(%rip), %xmm1 + mulss %xmm2, %xmm0 + mulss %xmm2, %xmm1 + addss pa2(%rip), %xmm0 + addss qa2(%rip), %xmm1 + mulss %xmm2, %xmm0 + mulss %xmm2, %xmm1 + addss pa1(%rip), %xmm0 + addss qa1(%rip), %xmm1 + mulss %xmm2, %xmm0 + mulss %xmm1, %xmm2 + addss pa0(%rip), %xmm0 + addss one(%rip), %xmm2 + jl L(label_1_24) + divss %xmm2, %xmm0 + addss erx(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_13): + cmpl $1086324736, %eax + jl L(label_1_15) + testl %r9d, %r9d + movss tablevalue_26(%rip), %xmm0 + movss tablevalue_24(%rip), %xmm1 + jge L(label_26) + movaps %xmm1, %xmm0 +L(label_26): + lea 48(%rsp), %rsp + ret + +L(label_1_15): + movl %r9d, %edx + andl $2147483647, %edx + movl %edx, 8(%rsp) + cmpl $1077336942, %eax + movss 8(%rsp), %xmm0 + movss %xmm0, (%rsp) + mulss 8(%rsp), %xmm0 + movss one(%rip), %xmm3 + divss %xmm0, %xmm3 + jge L(label_1_17) + movss sa8(%rip), %xmm1 + mulss %xmm3, %xmm1 + movss ra7(%rip), %xmm0 + mulss %xmm3, %xmm0 + addss sa7(%rip), %xmm1 + addss ra6(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sa6(%rip), %xmm1 + addss ra5(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sa5(%rip), %xmm1 + addss ra4(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sa4(%rip), %xmm1 + addss ra3(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sa3(%rip), %xmm1 + addss ra2(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sa2(%rip), %xmm1 + addss ra1(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sa1(%rip), %xmm1 + addss ra0(%rip), %xmm0 + mulss %xmm1, %xmm3 + movss %xmm0, 16(%rsp) + addss one(%rip), %xmm3 + jmp L(label_1_18) + +L(label_1_17): + movss sb7(%rip), %xmm1 + mulss %xmm3, %xmm1 + movss rb6(%rip), %xmm0 + mulss %xmm3, %xmm0 + addss sb6(%rip), %xmm1 + addss rb5(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sb5(%rip), %xmm1 + addss rb4(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sb4(%rip), %xmm1 + addss rb3(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sb3(%rip), %xmm1 + addss rb2(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sb2(%rip), %xmm1 + addss rb1(%rip), %xmm0 + mulss %xmm3, %xmm1 + mulss %xmm3, %xmm0 + addss sb1(%rip), %xmm1 + addss rb0(%rip), %xmm0 + mulss %xmm1, %xmm3 + movss %xmm0, 16(%rsp) + addss one(%rip), %xmm3 +L(label_1_18): + andl $-4096, %edx + movl %edx, 32(%rsp) + movss 32(%rsp), %xmm0 + movss %xmm0, 8(%rsp) + mulss 32(%rsp), %xmm0 + xorps tablevalue_27(%rip), %xmm0 + movss %xmm3, 24(%rsp) + subss tablevalue_25(%rip), %xmm0 + call __ieee754_expf@PLT + movss 24(%rsp), %xmm3 + movaps %xmm0, %xmm5 + movss 16(%rsp), %xmm4 + divss %xmm3, %xmm4 + movss 8(%rsp), %xmm2 + movss (%rsp), %xmm1 + movaps %xmm2, %xmm0 + movss %xmm5, 24(%rsp) + addss %xmm1, %xmm2 + subss (%rsp), %xmm0 + mulss %xmm2, %xmm0 + addss %xmm4, %xmm0 + call __ieee754_expf@PLT + movss 24(%rsp), %xmm5 + mulss %xmm0, %xmm5 + testl %r9d, %r9d + jl L(label_1_25) + divss (%rsp), %xmm5 + movss one(%rip), %xmm0 + subss %xmm5, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_23): + movss one(%rip), %xmm1 + divss %xmm4, %xmm1 + shrl $30, %r9d + andl $-2, %r9d + negl %r9d + incl %r9d + cvtsi2ss %r9d, %xmm0 + addss %xmm1, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_24): + divss %xmm2, %xmm0 + movaps %xmm0, %xmm1 + movss tablevalue_23(%rip), %xmm0 + subss %xmm1, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_1_25): + divss (%rsp), %xmm5 + movss one(%rip), %xmm0 + subss %xmm5, %xmm0 + xorps tablevalue_27(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +END(__erff) + + +ENTRY(__erfcf) + /* parameter 1: %xmm0 */ + lea -48(%rsp), %rsp + movaps %xmm0, %xmm4 + movd %xmm4, %r8d + movl %r8d, %eax + andl $2147483647, %eax + cmpl $2139095040, %eax + jge L(label_2_27) + cmpl $1062731776, %eax + jge L(label_2_9) + cmpl $595591168, %eax + jl L(label_2_8) + movaps %xmm4, %xmm2 + cmpl $1048576000, %r8d + mulss %xmm4, %xmm2 + movss qq5(%rip), %xmm1 + mulss %xmm2, %xmm1 + movss pp4(%rip), %xmm3 + mulss %xmm2, %xmm3 + addss qq4(%rip), %xmm1 + addss pp3(%rip), %xmm3 + mulss %xmm2, %xmm1 + mulss %xmm2, %xmm3 + addss qq3(%rip), %xmm1 + addss pp2(%rip), %xmm3 + mulss %xmm2, %xmm1 + mulss %xmm2, %xmm3 + addss qq2(%rip), %xmm1 + addss pp1(%rip), %xmm3 + mulss %xmm2, %xmm1 + mulss %xmm2, %xmm3 + addss qq1(%rip), %xmm1 + addss pp0(%rip), %xmm3 + mulss %xmm1, %xmm2 + movss one(%rip), %xmm0 + addss one(%rip), %xmm2 + divss %xmm2, %xmm3 + mulss %xmm4, %xmm3 + jge L(label_2_6) + addss %xmm3, %xmm4 + subss %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_6): + movss half(%rip), %xmm0 + subss half(%rip), %xmm4 + addss %xmm4, %xmm3 + subss %xmm3, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_8): + movss one(%rip), %xmm0 + subss %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_9): + cmpl $1067450368, %eax + jge L(label_2_13) + movl %r8d, %eax + andl $2147483647, %eax + movl %eax, (%rsp) + testl %r8d, %r8d + movss (%rsp), %xmm1 + movss pa6(%rip), %xmm2 + movss qa6(%rip), %xmm0 + subss one(%rip), %xmm1 + mulss %xmm1, %xmm2 + mulss %xmm1, %xmm0 + addss pa5(%rip), %xmm2 + addss qa5(%rip), %xmm0 + mulss %xmm1, %xmm2 + mulss %xmm1, %xmm0 + addss pa4(%rip), %xmm2 + addss qa4(%rip), %xmm0 + mulss %xmm1, %xmm2 + mulss %xmm1, %xmm0 + addss pa3(%rip), %xmm2 + addss qa3(%rip), %xmm0 + mulss %xmm1, %xmm2 + mulss %xmm1, %xmm0 + addss pa2(%rip), %xmm2 + addss qa2(%rip), %xmm0 + mulss %xmm1, %xmm2 + mulss %xmm1, %xmm0 + addss pa1(%rip), %xmm2 + addss qa1(%rip), %xmm0 + mulss %xmm1, %xmm2 + mulss %xmm0, %xmm1 + addss pa0(%rip), %xmm2 + addss one(%rip), %xmm1 + jl L(label_2_28) + divss %xmm1, %xmm2 + movss tablevalue_29(%rip), %xmm0 + subss %xmm2, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_13): + cmpl $1105199104, %eax + jge L(label_2_23) + movl %r8d, %edx + andl $2147483647, %edx + movl %edx, (%rsp) + cmpl $1077336941, %eax + movss (%rsp), %xmm0 + movss %xmm0, 24(%rsp) + mulss (%rsp), %xmm0 + movss one(%rip), %xmm5 + divss %xmm0, %xmm5 + jge L(label_2_16) + movss sa8(%rip), %xmm0 + mulss %xmm5, %xmm0 + movss ra7(%rip), %xmm3 + mulss %xmm5, %xmm3 + addss sa7(%rip), %xmm0 + addss ra6(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sa6(%rip), %xmm0 + addss ra5(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sa5(%rip), %xmm0 + addss ra4(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sa4(%rip), %xmm0 + addss ra3(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sa3(%rip), %xmm0 + addss ra2(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sa2(%rip), %xmm0 + addss ra1(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sa1(%rip), %xmm0 + addss ra0(%rip), %xmm3 + mulss %xmm0, %xmm5 + addss one(%rip), %xmm5 + jmp L(label_2_18) + +L(label_2_16): + testl %r8d, %r8d + jl L(label_2_30) +L(label_2_17): + movss sb7(%rip), %xmm0 + mulss %xmm5, %xmm0 + movss rb6(%rip), %xmm3 + mulss %xmm5, %xmm3 + addss sb6(%rip), %xmm0 + addss rb5(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sb5(%rip), %xmm0 + addss rb4(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sb4(%rip), %xmm0 + addss rb3(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sb3(%rip), %xmm0 + addss rb2(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sb2(%rip), %xmm0 + addss rb1(%rip), %xmm3 + mulss %xmm5, %xmm0 + mulss %xmm5, %xmm3 + addss sb1(%rip), %xmm0 + addss rb0(%rip), %xmm3 + mulss %xmm0, %xmm5 + addss one(%rip), %xmm5 +L(label_2_18): + andl $-4096, %edx + movl %edx, 32(%rsp) + movss 32(%rsp), %xmm0 + movss %xmm0, (%rsp) + mulss 32(%rsp), %xmm0 + xorps tablevalue_32(%rip), %xmm0 + movss %xmm3, 8(%rsp) + movss %xmm5, 16(%rsp) + subss tablevalue_31(%rip), %xmm0 + call __ieee754_expf@PLT + movss 16(%rsp), %xmm5 + movaps %xmm0, %xmm4 + movss 8(%rsp), %xmm3 + divss %xmm5, %xmm3 + movss (%rsp), %xmm2 + movss 24(%rsp), %xmm1 + movaps %xmm2, %xmm0 + movss %xmm4, 8(%rsp) + addss %xmm1, %xmm2 + subss 24(%rsp), %xmm0 + mulss %xmm2, %xmm0 + addss %xmm3, %xmm0 + call __ieee754_expf@PLT + movss 8(%rsp), %xmm4 + mulss %xmm0, %xmm4 + testl %r8d, %r8d + jle L(label_2_29) + divss 24(%rsp), %xmm4 +L(label_2_22): + movaps %xmm4, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_23): + testl %r8d, %r8d + jle L(label_2_25) + movss tiny(%rip), %xmm0 + mulss %xmm0, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_25): + movss tablevalue_30(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_27): + movss one(%rip), %xmm1 + divss %xmm4, %xmm1 + shrl $30, %r8d + andl $-2, %r8d + cvtsi2ssq %r8, %xmm0 + addss %xmm1, %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_28): + divss %xmm1, %xmm2 + addss erx(%rip), %xmm2 + movaps %xmm2, %xmm0 + addss one(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +L(label_2_29): + divss 24(%rsp), %xmm4 + movaps %xmm4, %xmm1 + movss two(%rip), %xmm4 + subss %xmm1, %xmm4 + jmp L(label_2_22) + +L(label_2_30): + cmpl $1086324736, %eax + jl L(label_2_17) + movss tablevalue_30(%rip), %xmm0 + lea 48(%rsp), %rsp + ret + +END(__erfcf) + + .section .rodata, "a" + .align ALIGNARG(4) + + .align ALIGNARG(4) +tablevalue_27: + .long 0x80000000,0x00000000,0x00000000,0x00000000 + ASM_TYPE_DIRECTIVE(tablevalue_27,@object) + ASM_SIZE_DIRECTIVE(tablevalue_27) + + .align ALIGNARG(4) +tablevalue_32: + .long 0x80000000,0x00000000,0x00000000,0x00000000 + ASM_TYPE_DIRECTIVE(tablevalue_32,@object) + ASM_SIZE_DIRECTIVE(tablevalue_32) + + .align ALIGNARG(2) +one: + .long 0x3f800000 + ASM_TYPE_DIRECTIVE(one,@object) + ASM_SIZE_DIRECTIVE(one) + + .align ALIGNARG(2) +efx8: + .long 0x3f8375d4 + ASM_TYPE_DIRECTIVE(efx8,@object) + ASM_SIZE_DIRECTIVE(efx8) + + .align ALIGNARG(2) +efx: + .long 0x3e0375d4 + ASM_TYPE_DIRECTIVE(efx,@object) + ASM_SIZE_DIRECTIVE(efx) + + .align ALIGNARG(2) +pp0: + .long 0x3e0375d4 + ASM_TYPE_DIRECTIVE(pp0,@object) + ASM_SIZE_DIRECTIVE(pp0) + + .align ALIGNARG(2) +pp1: + .long 0xbea66beb + ASM_TYPE_DIRECTIVE(pp1,@object) + ASM_SIZE_DIRECTIVE(pp1) + + .align ALIGNARG(2) +pp2: + .long 0xbce9528f + ASM_TYPE_DIRECTIVE(pp2,@object) + ASM_SIZE_DIRECTIVE(pp2) + + .align ALIGNARG(2) +pp3: + .long 0xbbbd1489 + ASM_TYPE_DIRECTIVE(pp3,@object) + ASM_SIZE_DIRECTIVE(pp3) + + .align ALIGNARG(2) +pp4: + .long 0xb7c756b1 + ASM_TYPE_DIRECTIVE(pp4,@object) + ASM_SIZE_DIRECTIVE(pp4) + + .align ALIGNARG(2) +qq1: + .long 0x3ecbbbce + ASM_TYPE_DIRECTIVE(qq1,@object) + ASM_SIZE_DIRECTIVE(qq1) + + .align ALIGNARG(2) +qq2: + .long 0x3d852a63 + ASM_TYPE_DIRECTIVE(qq2,@object) + ASM_SIZE_DIRECTIVE(qq2) + + .align ALIGNARG(2) +qq3: + .long 0x3ba68116 + ASM_TYPE_DIRECTIVE(qq3,@object) + ASM_SIZE_DIRECTIVE(qq3) + + .align ALIGNARG(2) +qq4: + .long 0x390aee49 + ASM_TYPE_DIRECTIVE(qq4,@object) + ASM_SIZE_DIRECTIVE(qq4) + + .align ALIGNARG(2) +qq5: + .long 0xb684e21a + ASM_TYPE_DIRECTIVE(qq5,@object) + ASM_SIZE_DIRECTIVE(qq5) + + .align ALIGNARG(2) +pa0: + .long 0xbb1acdc6 + ASM_TYPE_DIRECTIVE(pa0,@object) + ASM_SIZE_DIRECTIVE(pa0) + + .align ALIGNARG(2) +pa1: + .long 0x3ed46805 + ASM_TYPE_DIRECTIVE(pa1,@object) + ASM_SIZE_DIRECTIVE(pa1) + + .align ALIGNARG(2) +pa2: + .long 0xbebe9208 + ASM_TYPE_DIRECTIVE(pa2,@object) + ASM_SIZE_DIRECTIVE(pa2) + + .align ALIGNARG(2) +pa3: + .long 0x3ea2fe54 + ASM_TYPE_DIRECTIVE(pa3,@object) + ASM_SIZE_DIRECTIVE(pa3) + + .align ALIGNARG(2) +pa4: + .long 0xbde31cc2 + ASM_TYPE_DIRECTIVE(pa4,@object) + ASM_SIZE_DIRECTIVE(pa4) + + .align ALIGNARG(2) +pa5: + .long 0x3d1151b3 + ASM_TYPE_DIRECTIVE(pa5,@object) + ASM_SIZE_DIRECTIVE(pa5) + + .align ALIGNARG(2) +pa6: + .long 0xbb0df9c0 + ASM_TYPE_DIRECTIVE(pa6,@object) + ASM_SIZE_DIRECTIVE(pa6) + + .align ALIGNARG(2) +qa1: + .long 0x3dd9f331 + ASM_TYPE_DIRECTIVE(qa1,@object) + ASM_SIZE_DIRECTIVE(qa1) + + .align ALIGNARG(2) +qa2: + .long 0x3f0a5785 + ASM_TYPE_DIRECTIVE(qa2,@object) + ASM_SIZE_DIRECTIVE(qa2) + + .align ALIGNARG(2) +qa3: + .long 0x3d931ae7 + ASM_TYPE_DIRECTIVE(qa3,@object) + ASM_SIZE_DIRECTIVE(qa3) + + .align ALIGNARG(2) +qa4: + .long 0x3e013307 + ASM_TYPE_DIRECTIVE(qa4,@object) + ASM_SIZE_DIRECTIVE(qa4) + + .align ALIGNARG(2) +qa5: + .long 0x3c5f6e13 + ASM_TYPE_DIRECTIVE(qa5,@object) + ASM_SIZE_DIRECTIVE(qa5) + + .align ALIGNARG(2) +qa6: + .long 0x3c445aa3 + ASM_TYPE_DIRECTIVE(qa6,@object) + ASM_SIZE_DIRECTIVE(qa6) + + .align ALIGNARG(2) +erx: + .long 0x3f58560b + ASM_TYPE_DIRECTIVE(erx,@object) + ASM_SIZE_DIRECTIVE(erx) + + .align ALIGNARG(2) +rb0: + .long 0xbc21a092 + ASM_TYPE_DIRECTIVE(rb0,@object) + ASM_SIZE_DIRECTIVE(rb0) + + .align ALIGNARG(2) +rb1: + .long 0xbf4c9dd4 + ASM_TYPE_DIRECTIVE(rb1,@object) + ASM_SIZE_DIRECTIVE(rb1) + + .align ALIGNARG(2) +rb2: + .long 0xc18e104b + ASM_TYPE_DIRECTIVE(rb2,@object) + ASM_SIZE_DIRECTIVE(rb2) + + .align ALIGNARG(2) +rb3: + .long 0xc320a2ea + ASM_TYPE_DIRECTIVE(rb3,@object) + ASM_SIZE_DIRECTIVE(rb3) + + .align ALIGNARG(2) +rb4: + .long 0xc41f6441 + ASM_TYPE_DIRECTIVE(rb4,@object) + ASM_SIZE_DIRECTIVE(rb4) + + .align ALIGNARG(2) +rb5: + .long 0xc480230b + ASM_TYPE_DIRECTIVE(rb5,@object) + ASM_SIZE_DIRECTIVE(rb5) + + .align ALIGNARG(2) +rb6: + .long 0xc3f1c275 + ASM_TYPE_DIRECTIVE(rb6,@object) + ASM_SIZE_DIRECTIVE(rb6) + + .align ALIGNARG(2) +sb1: + .long 0x41f2b459 + ASM_TYPE_DIRECTIVE(sb1,@object) + ASM_SIZE_DIRECTIVE(sb1) + + .align ALIGNARG(2) +sb2: + .long 0x43a2e571 + ASM_TYPE_DIRECTIVE(sb2,@object) + ASM_SIZE_DIRECTIVE(sb2) + + .align ALIGNARG(2) +sb3: + .long 0x44c01759 + ASM_TYPE_DIRECTIVE(sb3,@object) + ASM_SIZE_DIRECTIVE(sb3) + + .align ALIGNARG(2) +sb4: + .long 0x4547fdbb + ASM_TYPE_DIRECTIVE(sb4,@object) + ASM_SIZE_DIRECTIVE(sb4) + + .align ALIGNARG(2) +sb5: + .long 0x451f90ce + ASM_TYPE_DIRECTIVE(sb5,@object) + ASM_SIZE_DIRECTIVE(sb5) + + .align ALIGNARG(2) +sb6: + .long 0x43ed43a7 + ASM_TYPE_DIRECTIVE(sb6,@object) + ASM_SIZE_DIRECTIVE(sb6) + + .align ALIGNARG(2) +sb7: + .long 0xc1b38712 + ASM_TYPE_DIRECTIVE(sb7,@object) + ASM_SIZE_DIRECTIVE(sb7) + + .align ALIGNARG(2) +ra0: + .long 0xbc21a093 + ASM_TYPE_DIRECTIVE(ra0,@object) + ASM_SIZE_DIRECTIVE(ra0) + + .align ALIGNARG(2) +ra1: + .long 0xbf31a0b7 + ASM_TYPE_DIRECTIVE(ra1,@object) + ASM_SIZE_DIRECTIVE(ra1) + + .align ALIGNARG(2) +ra2: + .long 0xc128f022 + ASM_TYPE_DIRECTIVE(ra2,@object) + ASM_SIZE_DIRECTIVE(ra2) + + .align ALIGNARG(2) +ra3: + .long 0xc2798057 + ASM_TYPE_DIRECTIVE(ra3,@object) + ASM_SIZE_DIRECTIVE(ra3) + + .align ALIGNARG(2) +ra4: + .long 0xc322658c + ASM_TYPE_DIRECTIVE(ra4,@object) + ASM_SIZE_DIRECTIVE(ra4) + + .align ALIGNARG(2) +ra5: + .long 0xc3389ae7 + ASM_TYPE_DIRECTIVE(ra5,@object) + ASM_SIZE_DIRECTIVE(ra5) + + .align ALIGNARG(2) +ra6: + .long 0xc2a2932b + ASM_TYPE_DIRECTIVE(ra6,@object) + ASM_SIZE_DIRECTIVE(ra6) + + .align ALIGNARG(2) +ra7: + .long 0xc11d077e + ASM_TYPE_DIRECTIVE(ra7,@object) + ASM_SIZE_DIRECTIVE(ra7) + + .align ALIGNARG(2) +sa1: + .long 0x419d35ce + ASM_TYPE_DIRECTIVE(sa1,@object) + ASM_SIZE_DIRECTIVE(sa1) + + .align ALIGNARG(2) +sa2: + .long 0x4309a863 + ASM_TYPE_DIRECTIVE(sa2,@object) + ASM_SIZE_DIRECTIVE(sa2) + + .align ALIGNARG(2) +sa3: + .long 0x43d9486f + ASM_TYPE_DIRECTIVE(sa3,@object) + ASM_SIZE_DIRECTIVE(sa3) + + .align ALIGNARG(2) +sa4: + .long 0x442158c9 + ASM_TYPE_DIRECTIVE(sa4,@object) + ASM_SIZE_DIRECTIVE(sa4) + + .align ALIGNARG(2) +sa5: + .long 0x43d6810b + ASM_TYPE_DIRECTIVE(sa5,@object) + ASM_SIZE_DIRECTIVE(sa5) + + .align ALIGNARG(2) +sa6: + .long 0x42d9451f + ASM_TYPE_DIRECTIVE(sa6,@object) + ASM_SIZE_DIRECTIVE(sa6) + + .align ALIGNARG(2) +sa7: + .long 0x40d23f7c + ASM_TYPE_DIRECTIVE(sa7,@object) + ASM_SIZE_DIRECTIVE(sa7) + + .align ALIGNARG(2) +sa8: + .long 0xbd777f97 + ASM_TYPE_DIRECTIVE(sa8,@object) + ASM_SIZE_DIRECTIVE(sa8) + + .align ALIGNARG(2) +tablevalue_21: + .long 0x3e000000 + ASM_TYPE_DIRECTIVE(tablevalue_21,@object) + ASM_SIZE_DIRECTIVE(tablevalue_21) + + .align ALIGNARG(2) +tablevalue_22: + .long 0x41000000 + ASM_TYPE_DIRECTIVE(tablevalue_22,@object) + ASM_SIZE_DIRECTIVE(tablevalue_22) + + .align ALIGNARG(2) +tablevalue_23: + .long 0xbf58560b + ASM_TYPE_DIRECTIVE(tablevalue_23,@object) + ASM_SIZE_DIRECTIVE(tablevalue_23) + + .align ALIGNARG(2) +tablevalue_24: + .long 0xbf800000 + ASM_TYPE_DIRECTIVE(tablevalue_24,@object) + ASM_SIZE_DIRECTIVE(tablevalue_24) + + .align ALIGNARG(2) +tablevalue_25: + .long 0x3f100000 + ASM_TYPE_DIRECTIVE(tablevalue_25,@object) + ASM_SIZE_DIRECTIVE(tablevalue_25) + + .align ALIGNARG(2) +tablevalue_26: + .long 0x3f800000 + ASM_TYPE_DIRECTIVE(tablevalue_26,@object) + ASM_SIZE_DIRECTIVE(tablevalue_26) + + .align ALIGNARG(2) +half: + .long 0x3f000000 + ASM_TYPE_DIRECTIVE(half,@object) + ASM_SIZE_DIRECTIVE(half) + + .align ALIGNARG(2) +tiny: + .long 0x0da24260 + ASM_TYPE_DIRECTIVE(tiny,@object) + ASM_SIZE_DIRECTIVE(tiny) + + .align ALIGNARG(2) +two: + .long 0x40000000 + ASM_TYPE_DIRECTIVE(two,@object) + ASM_SIZE_DIRECTIVE(two) + + .align ALIGNARG(2) +tablevalue_29: + .long 0x3e1ea7d4 + ASM_TYPE_DIRECTIVE(tablevalue_29,@object) + ASM_SIZE_DIRECTIVE(tablevalue_29) + + .align ALIGNARG(2) +tablevalue_30: + .long 0x40000000 + ASM_TYPE_DIRECTIVE(tablevalue_30,@object) + ASM_SIZE_DIRECTIVE(tablevalue_30) + + .align ALIGNARG(2) +tablevalue_31: + .long 0x3f100000 + ASM_TYPE_DIRECTIVE(tablevalue_31,@object) + ASM_SIZE_DIRECTIVE(tablevalue_31) + +weak_alias(__erfcf, erfcf) +weak_alias(__erff, erff)