1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321 |
- /*
- * Math library
- *
- * Copyright (C) 2016 Intel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Intel Corporation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * Author Name <jingwei.zhang@intel.com>
- * History:
- * 03-14-2016 Initial version. numerics svn rev. 12864
- */
- .file "dpml_ux_sqrt.c"
- .text
- ..TXTST0:
- # -- Begin __dpml_ux_sqrt_evaluation__
- .text
- .align 16,0x90
- .hidden __dpml_ux_sqrt_evaluation__
- .globl __dpml_ux_sqrt_evaluation__
- __dpml_ux_sqrt_evaluation__:
- # parameter 1: %eax
- # parameter 2: 12 + %ebp
- # parameter 3: %edx
- ..B1.1:
- ..L1:
- movl 4(%esp), %eax
- movl 16(%esp), %edx
- .hidden __dpml_ux_sqrt_evaluation__.
- .globl __dpml_ux_sqrt_evaluation__.
- __dpml_ux_sqrt_evaluation__.:
- pushl %ebp
- movl %esp, %ebp
- andl $-16, %esp
- pushl %esi
- pushl %edi
- pushl %ebx
- subl $148, %esp
- movl %edx, %esi
- movl %eax, 44(%esp)
- movl %gs:20, %ecx
- xorl %esp, %ecx
- movl %ecx, 136(%esp)
- addl $4, %esp
- call ..L2
- ..L2:
- popl %ebx
- lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%ebx), %ebx
- lea 80(%esp), %eax
- pushl %eax
- call fegetenv@PLT
- ..B1.2:
- movl 44(%esp), %edx
- movl %ebx, 80(%esp)
- movl %esi, 40(%esp)
- movl 8(%edx), %edi
- movl %edi, %ecx
- movl 12(%edx), %eax
- movl %eax, %ebx
- shll $21, %ebx
- shrl $11, %ecx
- orl %ecx, %ebx
- movl 4(%edx), %ecx
- movl 20(%edx), %esi
- movl %ecx, %edx
- andl $1, %edx
- movl %esi, 36(%esp)
- movl %eax, %esi
- shrl $11, %esi
- addl %edx, %ecx
- addl $1070596096, %esi
- movl %esi, 68(%esp)
- lea 8(%edx), %esi
- movl %esi, 32(%esp)
- negl %esi
- sarl $1, %ecx
- movl %ecx, 72(%esp)
- movl %esi, %ecx
- negl %ecx
- movl %ebx, 64(%esp)
- addl $31, %ecx
- movl %edi, %ebx
- shrl %cl, %ebx
- movl %esi, %ecx
- movl %eax, 76(%esp)
- shrl $1, %ebx
- shll %cl, %eax
- shll %cl, %edi
- orl %ebx, %eax
- movl 80(%esp), %ebx
- movl 40(%esp), %esi
- ..B1.3:
- movl 32(%esp), %ecx
- shrl %cl, 36(%esp)
- ..B1.5:
- fldl 64(%esp)
- movl %eax, %ecx
- orl 36(%esp), %edi
- shll $21, %ecx
- shrl $11, %edi
- shrl $11, %eax
- orl %edi, %ecx
- movl %ecx, 48(%esp)
- movl %eax, 52(%esp)
- fildll 48(%esp)
- fstpl 56(%esp)
- fldl 56(%esp)
- ..B1.6:
- movl 32(%esp), %ecx
- movl 76(%esp), %eax
- shrl %cl, %eax
- ..B1.8:
- fmull 136+__sqrt_x_table@GOTOFF(%ebx)
- fld %st(1)
- fmul %st(2), %st
- movl 76(%esp), %ecx
- shrl $24, %ecx
- shll $7, %edx
- xorl %edx, %ecx
- shll $4, %ecx
- movl __sqrt_t_table@GOT(%ebx), %edx
- movl %eax, 48(%esp)
- fildl 48(%esp)
- fstpl 56(%esp)
- fldl 56(%esp)
- fmull 128+__sqrt_x_table@GOTOFF(%ebx)
- fstpl 56(%esp)
- fldl 56(%esp)
- fxch %st(2)
- fstpl 56(%esp)
- fldl 56(%esp)
- fld %st(0)
- movl %ebx, 80(%esp)
- fadd %st(3), %st
- fxch %st(2)
- fmuls (%edx,%ecx)
- flds 4(%edx,%ecx)
- fmulp %st, %st(5)
- fxch %st(4)
- faddl 8(%edx,%ecx)
- faddp %st, %st(4)
- fxch %st(3)
- fstpl 56(%esp)
- fldl 56(%esp)
- fmull 96+__sqrt_x_table@GOTOFF(%ebx)
- fstpl 56(%esp)
- fldl 56(%esp)
- fxch %st(1)
- fstpl 56(%esp)
- fldl 56(%esp)
- fld %st(0)
- fmul %st(2), %st
- fstps 48(%esp)
- flds 48(%esp)
- fxch %st(2)
- fstps 48(%esp)
- flds 48(%esp)
- fmul %st, %st(3)
- fxch %st(2)
- fsubr %st, %st(3)
- fxch %st(2)
- fmul %st, %st(4)
- fxch %st(4)
- faddp %st, %st(3)
- fxch %st(2)
- fmul %st(3), %st
- fld %st(3)
- fmulp %st, %st(2)
- fldl 152+__sqrt_x_table@GOTOFF(%ebx)
- fmulp %st, %st(3)
- fld %st(3)
- fmul %st(4), %st
- fmulp %st, %st(3)
- fxch %st(1)
- fsubrl 104+__sqrt_x_table@GOTOFF(%ebx)
- fsubp %st, %st(1)
- fstpl 56(%esp)
- fldl 56(%esp)
- fldl 112+__sqrt_x_table@GOTOFF(%ebx)
- fmul %st(3), %st
- fxch %st(2)
- fsubrl 144+__sqrt_x_table@GOTOFF(%ebx)
- fmulp %st, %st(3)
- fmulp %st, %st(2)
- fxch %st(1)
- fstpl 56(%esp)
- fldl 56(%esp)
- flds .L_2il0floatpacket.20@GOTOFF(%ebx)
- fld %st(0)
- fsubr %st(3), %st
- fxch %st(1)
- fcomp %st(3)
- fnstsw %ax
- fxch %st(1)
- fmull 120+__sqrt_x_table@GOTOFF(%ebx)
- sahf
- fxch %st(2)
- jp ..L4
- jbe ..L3
- ..L4:
- fst %st(1)
- ..L3:
- fstp %st(0)
- fnstcw 32(%esp)
- movzwl 32(%esp), %eax
- orl $3072, %eax
- movl %eax, 40(%esp)
- fldcw 40(%esp)
- fistpll 64(%esp)
- fldcw 32(%esp)
- movl 64(%esp), %edx
- fnstcw 32(%esp)
- movzwl 32(%esp), %eax
- orl $3072, %eax
- movl %eax, 40(%esp)
- fldcw 40(%esp)
- fistpll 64(%esp)
- fldcw 32(%esp)
- shll $7, %edx
- movl 64(%esp), %ecx
- movl %ecx, %ebx
- movl 68(%esp), %edi
- movl %edi, %eax
- shll $20, %eax
- shrl $12, %ebx
- shrl $11, %ecx
- orl %ebx, %eax
- sarl $12, %edi
- andl $1, %ecx
- addl %edi, %edx
- addl %ecx, %eax
- adcl $0, %edx
- xorl %ebx, %ebx
- movl %edx, %ecx
- andl $1073741824, %ecx
- orl %ebx, %ecx
- movl 80(%esp), %ebx
- je ..B1.10
- ..B1.9:
- movl $2147483647, 32(%esp)
- jmp ..B1.11
- ..B1.10:
- movl $-1, 32(%esp)
- ..B1.11:
- movl %edx, %edi
- xorl %ecx, %ecx
- subl %ecx, %edi
- jl ..B1.13
- ..B1.12:
- movl 32(%esp), %edx
- movl $-1, %eax
- ..B1.13:
- movl 72(%esp), %ecx
- xorl %edi, %edi
- negl %ecx
- incl %ecx
- movl %edi, 48(%esp)
- movl %ecx, 52(%esp)
- movl %eax, 56(%esp)
- movl %edx, 60(%esp)
- movl %edi, 64(%esp)
- movl %edi, 68(%esp)
- addl $12, %esp
- lea 100(%esp), %eax
- lea 36(%esp), %edx
- pushl %eax
- pushl 36(%esp)
- pushl %edx
- call __dpml_multiply__
- ..B1.14:
- addl $12, %esp
- pushl %esi
- lea 104(%esp), %eax
- pushl %eax
- lea 44(%esp), %edx
- pushl %edx
- call __dpml_multiply__
- ..B1.15:
- addl $20, %esp
- lea 160+__sqrt_x_table@GOTOFF(%ebx), %eax
- pushl %esi
- pushl $0
- pushl $9
- pushl %esi
- pushl %eax
- call __dpml_addsub__
- ..B1.16:
- movl 12(%ebp), %edx
- andl $1, %edx
- orl %edi, %edx
- je ..B1.18
- ..B1.17:
- lea 112(%esp), %eax
- jmp ..B1.19
- ..B1.18:
- lea 48(%esp), %eax
- ..B1.19:
- addl $12, %esp
- pushl %esi
- pushl %eax
- pushl %esi
- call __dpml_multiply__
- ..B1.20:
- addl $4, %esp
- decl 4(%esi)
- lea 80(%esp), %eax
- pushl %eax
- call fesetenv@PLT
- ..B1.21:
- movl 12(%ebp), %edx
- xorl %eax, %eax
- andl $2, %edx
- orl %eax, %edx
- jne ..B1.26
- ..B1.23:
- movl 136(%esp), %edx
- xorl %esp, %edx
- cmpl %gs:20, %edx
- jne ..B1.25
- ..B1.24:
- xorl %edx, %edx
- addl $148, %esp
- popl %ebx
- popl %edi
- popl %esi
- movl %ebp, %esp
- popl %ebp
- ret
- ..B1.25:
- call __stack_chk_fail@PLT
- ..B1.26:
- addl $12, %esp
- pushl %eax
- pushl %eax
- pushl %esi
- call __dpml_ffs_and_shift__
- ..B1.27:
- movl 16(%esi), %edx
- xorl %ecx, %ecx
- movl 20(%esi), %eax
- movl %edx, 40(%esp)
- movl %eax, 36(%esp)
- lea 8(%edx), %edi
- andl $16368, %edi
- orl %ecx, %edi
- je ..B1.29
- ..B1.28:
- xorl %eax, %eax
- jmp ..B1.23
- ..B1.29:
- lea 48(%esp), %edi
- pushl %edi
- lea 116(%esp), %eax
- pushl %eax
- pushl %esi
- pushl %esi
- movl %edx, %edi
- andl $-32768, %edi
- movl %edi, -72(%eax)
- addl $16384, %edi
- movl -76(%eax), %edx
- adcl $0, %edx
- movl %edx, -80(%eax)
- movl %edi, 16(%esi)
- movl %edx, 20(%esi)
- call __dpml_extended_multiply__
- ..B1.30:
- addl $36, %esp
- lea 92(%esp), %eax
- pushl %eax
- pushl $0
- pushl $1
- pushl %eax
- pushl 40(%esp)
- call __dpml_addsub__
- ..B1.31:
- addl $20, %esp
- lea 92(%esp), %edx
- pushl %edx
- pushl $0
- pushl $1
- lea 40(%esp), %eax
- pushl %eax
- pushl %edx
- call __dpml_addsub__
- ..B1.32:
- movl 112(%esp), %eax
- testl %eax, %eax
- movl 32(%esp), %edx
- je ..L5
- movl 40(%esp), %edi
- ..L5:
- je ..L6
- movl 36(%esp), %edx
- ..L6:
- xorl %ecx, %ecx
- movl %edi, 16(%esi)
- movl 12(%ebp), %edi
- andl $4, %edi
- movl %edx, 20(%esi)
- orl %ecx, %edi
- je ..B1.28
- ..B1.33:
- movl 4(%esi), %edx
- testl %eax, %eax
- movl $0, %eax
- sete %al
- addl $-113, %edx
- subl %edx, 116(%esp)
- addl $20, %esp
- orl $8, %eax
- lea 92(%esp), %ecx
- pushl %ecx
- pushl $0
- pushl %eax
- pushl %esi
- pushl %ecx
- call __dpml_addsub__
- ..B1.34:
- movl $8192, %eax
- movl 128(%esp), %edx
- subl %eax, %edx
- orl 132(%esp), %edx
- jne ..B1.28
- ..B1.35:
- movl $1, %eax
- jmp ..B1.23
- .align 16,0x90
- .type __dpml_ux_sqrt_evaluation__,@function
- .size __dpml_ux_sqrt_evaluation__,.-__dpml_ux_sqrt_evaluation__
- .data
- # -- End __dpml_ux_sqrt_evaluation__
- .text
- # -- Begin __sqrtq
- .text
- .align 16,0x90
- .globl __sqrtq
- __sqrtq:
- # parameter 1: 24 + %ebp
- ..B2.1:
- ..L7:
- pushl %ebp
- movl %esp, %ebp
- andl $-16, %esp
- pushl %esi
- pushl %edi
- pushl %ebx
- subl $132, %esp
- xorl %esi, %esi
- movl %gs:20, %edx
- movl 8(%ebp), %edi
- xorl %esp, %edx
- movl %edx, 128(%esp)
- call ..L8
- ..L8:
- popl %ebx
- lea _GLOBAL_OFFSET_TABLE_+[. - ..L8](%ebx), %ebx
- movl $1, 40(%esp)
- movl %esi, 44(%esp)
- movl %esi, 32(%esp)
- lea __sqrt_x_table@GOTOFF(%ebx), %ecx
- movl %esi, 36(%esp)
- addl $24, %esp
- lea 8(%esp), %eax
- lea 60(%esp), %edx
- pushl %eax
- lea 92(%esp), %eax
- pushl %eax
- pushl %ecx
- pushl %edx
- pushl %esi
- lea 24(%ebp), %ecx
- pushl %ecx
- call __dpml_unpack_x_or_y__
- ..B2.2:
- subl %esi, %edx
- jl ..B2.8
- ..B2.3:
- movl $7, 4(%esp)
- lea 60(%esp), %edx
- movl $0, 8(%esp)
- lea 84(%esp), %eax
- call __dpml_ux_sqrt_evaluation__.
- ..B2.4:
- orl %edx, %eax
- jne ..B2.6
- ..B2.5:
- movl $1, %edx
- jmp ..B2.7
- ..B2.6:
- movl %esi, %edx
- ..B2.7:
- movl %edx, 40(%esp)
- movl %esi, 44(%esp)
- addl $28, %esp
- lea 4(%esp), %edx
- pushl %edx
- pushl %esi
- pushl %esi
- pushl %esi
- pushl %esi
- lea 104(%esp), %ecx
- pushl %ecx
- lea 56(%esp), %esi
- pushl %esi
- call __dpml_pack__
- ..B2.8:
- movl 112(%esp), %edx
- movl %edx, (%edi)
- movl 116(%esp), %ecx
- movl 120(%esp), %esi
- movl 124(%esp), %edx
- movl %ecx, 4(%edi)
- movl %esi, 8(%edi)
- movl %edx, 12(%edi)
- movl 128(%esp), %edx
- xorl %esp, %edx
- cmpl %gs:20, %edx
- jne ..B2.10
- ..B2.9:
- movl %edi, %eax
- addl $132, %esp
- popl %ebx
- popl %edi
- popl %esi
- movl %ebp, %esp
- popl %ebp
- ret $4
- ..B2.10:
- call __stack_chk_fail@PLT
- .align 16,0x90
- .type __sqrtq,@function
- .size __sqrtq,.-__sqrtq
- .data
- # -- End __sqrtq
- .text
- # -- Begin __rsqrtq
- .text
- .align 16,0x90
- .globl __rsqrtq
- __rsqrtq:
- # parameter 1: 24 + %ebp
- ..B3.1:
- ..L9:
- pushl %ebp
- movl %esp, %ebp
- andl $-16, %esp
- pushl %esi
- pushl %edi
- pushl %ebx
- subl $132, %esp
- xorl %esi, %esi
- movl %gs:20, %edx
- movl 8(%ebp), %edi
- xorl %esp, %edx
- movl %edx, 128(%esp)
- call ..L10
- ..L10:
- popl %ebx
- lea _GLOBAL_OFFSET_TABLE_+[. - ..L10](%ebx), %ebx
- movl $1, 40(%esp)
- movl %esi, 44(%esp)
- movl %esi, 32(%esp)
- lea 8+__sqrt_x_table@GOTOFF(%ebx), %ecx
- movl %esi, 36(%esp)
- addl $24, %esp
- lea 8(%esp), %eax
- lea 60(%esp), %edx
- pushl %eax
- lea 92(%esp), %eax
- pushl %eax
- pushl %ecx
- pushl %edx
- pushl %esi
- lea 24(%ebp), %ecx
- pushl %ecx
- call __dpml_unpack_x_or_y__
- ..B3.2:
- subl %esi, %edx
- jl ..B3.8
- ..B3.3:
- movl %esi, 4(%esp)
- lea 60(%esp), %edx
- movl %esi, 8(%esp)
- lea 84(%esp), %eax
- call __dpml_ux_sqrt_evaluation__.
- ..B3.4:
- orl %edx, %eax
- jne ..B3.6
- ..B3.5:
- movl $1, %edx
- jmp ..B3.7
- ..B3.6:
- movl %esi, %edx
- ..B3.7:
- movl %edx, 40(%esp)
- movl %esi, 44(%esp)
- addl $28, %esp
- lea 4(%esp), %edx
- pushl %edx
- pushl %esi
- pushl %esi
- pushl %esi
- pushl %esi
- lea 104(%esp), %ecx
- pushl %ecx
- lea 56(%esp), %esi
- pushl %esi
- call __dpml_pack__
- ..B3.8:
- movl 112(%esp), %edx
- movl %edx, (%edi)
- movl 116(%esp), %ecx
- movl 120(%esp), %esi
- movl 124(%esp), %edx
- movl %ecx, 4(%edi)
- movl %esi, 8(%edi)
- movl %edx, 12(%edi)
- movl 128(%esp), %edx
- xorl %esp, %edx
- cmpl %gs:20, %edx
- jne ..B3.10
- ..B3.9:
- movl %edi, %eax
- addl $132, %esp
- popl %ebx
- popl %edi
- popl %esi
- movl %ebp, %esp
- popl %ebp
- ret $4
- ..B3.10:
- call __stack_chk_fail@PLT
- .align 16,0x90
- .type __rsqrtq,@function
- .size __rsqrtq,.-__rsqrtq
- .data
- # -- End __rsqrtq
- .text
- # -- Begin __dpml_ux_hypot__
- .text
- .align 16,0x90
- .globl __dpml_ux_hypot__
- __dpml_ux_hypot__:
- # parameter 1: 144 + %esp
- # parameter 2: 148 + %esp
- # parameter 3: 152 + %esp
- ..B4.1:
- ..L11:
- pushl %esi
- pushl %edi
- pushl %ebx
- pushl %ebp
- subl $124, %esp
- movl %gs:20, %eax
- xorl %esp, %eax
- movl 144(%esp), %edx
- movl %eax, 112(%esp)
- addl $12, %esp
- lea 28(%esp), %esi
- pushl %esi
- pushl %edx
- pushl %edx
- call __dpml_multiply__
- ..B4.2:
- addl $12, %esp
- movl 136(%esp), %eax
- lea 52(%esp), %ebx
- pushl %ebx
- pushl %eax
- pushl %eax
- call __dpml_multiply__
- ..B4.3:
- addl $20, %esp
- xorl %ebp, %ebp
- lea 68(%esp), %edi
- pushl %edi
- pushl %ebp
- pushl %ebp
- pushl %ebx
- pushl %esi
- call __dpml_addsub__
- ..B4.4:
- addl $12, %esp
- pushl %ebp
- pushl %ebp
- pushl %edi
- call __dpml_ffs_and_shift__
- ..B4.5:
- movl %edi, %eax
- movl $7, 4(%esp)
- movl 152(%esp), %edx
- movl $0, 8(%esp)
- call __dpml_ux_sqrt_evaluation__..0
- ..B4.6:
- movl %eax, %ecx
- orl %edx, %ecx
- je ..B4.27
- ..B4.7:
- movl 44(%esp), %eax
- subl 68(%esp), %eax
- cltd
- movl %edx, %edi
- subl %ebp, %edi
- jge ..B4.9
- ..B4.8:
- movl %eax, %esi
- movl %ebp, %eax
- subl %esi, %eax
- movl %edx, %edi
- movl %ebp, %edx
- movl %ebx, %esi
- sbbl %edi, %edx
- ..B4.9:
- movl $128, %ebx
- movl %eax, %edi
- subl %ebx, %edi
- movl %edx, %ebx
- sbbl %ebp, %ebx
- jl ..B4.11
- ..B4.34:
- orl %ebx, %edi
- je ..B4.11
- ..B4.10:
- movl %ebp, %eax
- movl %eax, %edx
- jmp ..B4.27
- ..B4.11:
- movl $1, %ecx
- movl %ebp, %edi
- ..B4.12:
- movl 8(%esi,%ecx,8), %ebp
- movl 12(%esi,%ecx,8), %ebx
- movl %ebp, 36(%esp)
- orl %ebx, %ebp
- movl %ebx, 32(%esp)
- jne ..B4.31
- ..B4.13:
- movl $64, %ebx
- movl %eax, %ebp
- subl %ebx, %ebp
- movl $0, %ebx
- movl %edx, %ebp
- sbbl %ebx, %ebp
- jl ..B4.15
- ..B4.14:
- addl $-64, %eax
- adcl $-1, %edx
- addl $-1, %ecx
- adcl $-1, %edi
- movl %edi, %ebp
- subl %ebx, %ebp
- jge ..B4.12
- ..B4.15:
- movl 36(%esp), %esi
- xorl %ebp, %ebp
- ..B4.16:
- cmpl $31, %eax
- jbe ..B4.18
- ..B4.17:
- movl %eax, %ecx
- movl %ebp, %edx
- movl 32(%esp), %ebx
- shrl %cl, %ebx
- jmp ..B4.19
- ..B4.18:
- movl %eax, %ecx
- movl %esi, %ebx
- movl 32(%esp), %edx
- shrdl %cl, %edx, %ebx
- shrl %cl, %edx
- ..B4.19:
- cmpl $31, %eax
- jbe ..B4.21
- ..B4.20:
- movl %eax, %ecx
- movl %ebx, %edx
- shll %cl, %edx
- movl %ebp, %edi
- jmp ..B4.22
- ..B4.21:
- movl %eax, %ecx
- movl %ebx, %edi
- shldl %cl, %ebx, %edx
- shll %cl, %edi
- ..B4.22:
- movl 32(%esp), %eax
- subl %edi, %esi
- subl %edx, %eax
- orl %eax, %esi
- jne ..B4.24
- ..B4.23:
- movl $1, %eax
- jmp ..B4.25
- ..B4.24:
- movl %ebp, %eax
- ..B4.25:
- movl %ebp, %edx
- ..B4.27:
- movl 112(%esp), %ecx
- xorl %esp, %ecx
- cmpl %gs:20, %ecx
- jne ..B4.29
- ..B4.28:
- addl $124, %esp
- popl %ebp
- popl %ebx
- popl %edi
- popl %esi
- ret
- ..B4.29:
- call ..L12
- ..L12:
- popl %ebx
- lea _GLOBAL_OFFSET_TABLE_+[. - ..L12](%ebx), %ebx
- call __stack_chk_fail@PLT
- ..B4.31:
- xorl %ebp, %ebp
- movl %ebp, %eax
- xorl %edx, %edx
- jmp ..B4.27
- .align 16,0x90
- .type __dpml_ux_hypot__,@function
- .size __dpml_ux_hypot__,.-__dpml_ux_hypot__
- .data
- # -- End __dpml_ux_hypot__
- .text
- # -- Begin __dpml_ux_sqrt_evaluation__..0
- .text
- .align 16,0x90
- __dpml_ux_sqrt_evaluation__..0:
- # parameter 1: %eax
- # parameter 2: 12 + %ebp
- # parameter 3: %edx
- ..B5.1:
- ..L13:
- pushl %ebp
- movl %esp, %ebp
- andl $-16, %esp
- pushl %esi
- pushl %edi
- pushl %ebx
- subl $148, %esp
- movl %edx, 76(%esp)
- movl %eax, 72(%esp)
- movl %gs:20, %ecx
- xorl %esp, %ecx
- movl %ecx, 136(%esp)
- addl $4, %esp
- call ..L14
- ..L14:
- popl %ebx
- lea _GLOBAL_OFFSET_TABLE_+[. - ..L14](%ebx), %ebx
- lea 80(%esp), %eax
- pushl %eax
- call fegetenv@PLT
- ..B5.2:
- movl 72(%esp), %esi
- movl %ebx, 36(%esp)
- movl 8(%esi), %edi
- movl %edi, %edx
- movl 12(%esi), %eax
- movl %eax, %ecx
- shll $21, %ecx
- shrl $11, %edx
- orl %edx, %ecx
- movl 4(%esi), %edx
- movl 20(%esi), %ebx
- movl %edx, %esi
- andl $1, %esi
- movl %ebx, 40(%esp)
- movl %eax, %ebx
- shrl $11, %ebx
- addl %esi, %edx
- addl $1070596096, %ebx
- movl %ebx, 68(%esp)
- lea 8(%esi), %ebx
- movl %ebx, 32(%esp)
- negl %ebx
- movl %ecx, 64(%esp)
- movl %ebx, %ecx
- negl %ecx
- sarl $1, %edx
- addl $31, %ecx
- movl %edx, 44(%esp)
- movl %edi, %edx
- shrl %cl, %edx
- movl %ebx, %ecx
- movl %eax, 80(%esp)
- shrl $1, %edx
- shll %cl, %eax
- shll %cl, %edi
- orl %edx, %eax
- movl 40(%esp), %edx
- movl 36(%esp), %ebx
- ..B5.3:
- movl 32(%esp), %ecx
- shrl %cl, %edx
- ..B5.5:
- fldl 64(%esp)
- orl %edx, %edi
- movl %eax, %edx
- shll $21, %edx
- shrl $11, %edi
- shrl $11, %eax
- orl %edi, %edx
- movl %edx, 48(%esp)
- movl %eax, 52(%esp)
- fildll 48(%esp)
- fstpl 56(%esp)
- fldl 56(%esp)
- ..B5.6:
- movl 80(%esp), %eax
- shrl %cl, %eax
- ..B5.8:
- fmull 136+__sqrt_x_table@GOTOFF(%ebx)
- fld %st(1)
- fmul %st(2), %st
- movl 80(%esp), %ecx
- shrl $24, %ecx
- shll $7, %esi
- xorl %esi, %ecx
- shll $4, %ecx
- movl __sqrt_t_table@GOT(%ebx), %edx
- movl %eax, 48(%esp)
- fildl 48(%esp)
- fstpl 56(%esp)
- fldl 56(%esp)
- fmull 128+__sqrt_x_table@GOTOFF(%ebx)
- fstpl 56(%esp)
- fldl 56(%esp)
- fxch %st(2)
- fstpl 56(%esp)
- fldl 56(%esp)
- fld %st(0)
- fadd %st(3), %st
- fxch %st(2)
- fmuls (%edx,%ecx)
- flds 4(%edx,%ecx)
- fmulp %st, %st(5)
- fxch %st(4)
- faddl 8(%edx,%ecx)
- faddp %st, %st(4)
- fxch %st(3)
- fstpl 56(%esp)
- fldl 56(%esp)
- fmull 96+__sqrt_x_table@GOTOFF(%ebx)
- fstpl 56(%esp)
- fldl 56(%esp)
- fxch %st(1)
- fstpl 56(%esp)
- fldl 56(%esp)
- fld %st(0)
- fmul %st(2), %st
- fstps 48(%esp)
- flds 48(%esp)
- fxch %st(2)
- fstps 48(%esp)
- flds 48(%esp)
- fmul %st, %st(3)
- fxch %st(2)
- fsubr %st, %st(3)
- fxch %st(2)
- fmul %st, %st(4)
- fxch %st(4)
- faddp %st, %st(3)
- fxch %st(2)
- fmul %st(3), %st
- fld %st(3)
- fmulp %st, %st(2)
- fldl 152+__sqrt_x_table@GOTOFF(%ebx)
- fmulp %st, %st(3)
- fld %st(3)
- fmul %st(4), %st
- fmulp %st, %st(3)
- fxch %st(1)
- fsubrl 104+__sqrt_x_table@GOTOFF(%ebx)
- fsubp %st, %st(1)
- fstpl 56(%esp)
- fldl 56(%esp)
- fldl 112+__sqrt_x_table@GOTOFF(%ebx)
- fmul %st(3), %st
- fxch %st(2)
- fsubrl 144+__sqrt_x_table@GOTOFF(%ebx)
- fmulp %st, %st(3)
- fmulp %st, %st(2)
- fxch %st(1)
- fstpl 56(%esp)
- fldl 56(%esp)
- flds .L_2il0floatpacket.20@GOTOFF(%ebx)
- fld %st(0)
- fsubr %st(3), %st
- fxch %st(1)
- fcomp %st(3)
- fnstsw %ax
- fxch %st(1)
- fmull 120+__sqrt_x_table@GOTOFF(%ebx)
- sahf
- fxch %st(2)
- jp ..L16
- jbe ..L15
- ..L16:
- fst %st(1)
- ..L15:
- fstp %st(0)
- fnstcw 32(%esp)
- movzwl 32(%esp), %eax
- orl $3072, %eax
- movl %eax, 40(%esp)
- fldcw 40(%esp)
- fistpll 64(%esp)
- fldcw 32(%esp)
- movl 64(%esp), %edx
- fnstcw 32(%esp)
- movzwl 32(%esp), %eax
- orl $3072, %eax
- movl %eax, 40(%esp)
- fldcw 40(%esp)
- fistpll 64(%esp)
- fldcw 32(%esp)
- shll $7, %edx
- movl 64(%esp), %ecx
- movl %ecx, %esi
- movl 68(%esp), %edi
- movl %edi, %eax
- shll $20, %eax
- shrl $12, %esi
- shrl $11, %ecx
- orl %esi, %eax
- sarl $12, %edi
- andl $1, %ecx
- addl %edi, %edx
- addl %ecx, %eax
- adcl $0, %edx
- xorl %esi, %esi
- movl %edx, %ecx
- andl $1073741824, %ecx
- orl %esi, %ecx
- je ..B5.10
- ..B5.9:
- movl $2147483647, %edi
- jmp ..B5.11
- ..B5.10:
- movl $-1, %edi
- ..B5.11:
- movl %edx, %esi
- xorl %ecx, %ecx
- subl %ecx, %esi
- jl ..B5.13
- ..B5.12:
- movl $-1, %eax
- movl %edi, %edx
- ..B5.13:
- movl 44(%esp), %esi
- xorl %ecx, %ecx
- negl %esi
- incl %esi
- movl %ecx, 48(%esp)
- movl %esi, 52(%esp)
- movl %eax, 56(%esp)
- movl %edx, 60(%esp)
- movl %ecx, 64(%esp)
- movl %ecx, 68(%esp)
- addl $12, %esp
- lea 100(%esp), %esi
- lea 36(%esp), %eax
- pushl %esi
- pushl 64(%esp)
- pushl %eax
- call __dpml_multiply__
- ..B5.14:
- addl $12, %esp
- pushl 64(%esp)
- pushl %esi
- lea 44(%esp), %eax
- pushl %eax
- call __dpml_multiply__
- ..B5.15:
- addl $20, %esp
- lea 160+__sqrt_x_table@GOTOFF(%ebx), %edx
- movl 56(%esp), %eax
- pushl %eax
- pushl $0
- pushl $9
- pushl %eax
- pushl %edx
- call __dpml_addsub__
- ..B5.16:
- addl $12, %esp
- movl 64(%esp), %eax
- pushl %eax
- pushl %esi
- pushl %eax
- call __dpml_multiply__
- ..B5.17:
- addl $4, %esp
- lea 80(%esp), %eax
- pushl %eax
- movl -8(%eax), %edx
- decl 4(%edx)
- call fesetenv@PLT
- ..B5.18:
- addl $12, %esp
- xorl %ecx, %ecx
- pushl %ecx
- pushl %ecx
- pushl 72(%esp)
- call __dpml_ffs_and_shift__
- ..B5.19:
- movl 76(%esp), %eax
- xorl %edi, %edi
- movl 16(%eax), %ecx
- movl 20(%eax), %edx
- movl %ecx, 44(%esp)
- movl %edx, 40(%esp)
- lea 8(%ecx), %eax
- andl $16368, %eax
- orl %edi, %eax
- jne ..B5.32
- ..B5.21:
- lea 48(%esp), %eax
- pushl %eax
- pushl %esi
- movl 28(%eax), %edi
- pushl %edi
- pushl %edi
- movl %ecx, %edx
- andl $-32768, %edx
- movl %edx, -4(%eax)
- addl $16384, %edx
- movl -8(%eax), %ecx
- adcl $0, %ecx
- movl %edx, -12(%eax)
- movl %ecx, -16(%eax)
- movl %edx, 16(%edi)
- movl %ecx, 20(%edi)
- call __dpml_extended_multiply__
- ..B5.22:
- addl $36, %esp
- pushl %esi
- pushl $0
- pushl $1
- pushl %esi
- pushl 68(%esp)
- call __dpml_addsub__
- ..B5.23:
- addl $20, %esp
- pushl %esi
- pushl $0
- pushl $1
- lea 40(%esp), %eax
- pushl %eax
- pushl %esi
- call __dpml_addsub__
- ..B5.24:
- movl 112(%esp), %eax
- testl %eax, %eax
- jne ..B5.26
- ..B5.25:
- movl %edi, %ecx
- movl 36(%esp), %eax
- movl 32(%esp), %edx
- movl 4(%ecx), %edi
- addl $-113, %edi
- movl %eax, 16(%ecx)
- movl %edx, 20(%ecx)
- subl %edi, 116(%esp)
- jmp ..B5.27
- ..B5.26:
- movl 44(%esp), %edx
- movl 40(%esp), %ecx
- movl %edx, 16(%edi)
- movl 4(%edi), %edx
- addl $-113, %edx
- subl %edx, 116(%esp)
- movl %ecx, 20(%edi)
- testl %eax, %eax
- jne ..B5.28
- ..B5.27:
- movl $1, %eax
- jmp ..B5.29
- ..B5.28:
- xorl %eax, %eax
- ..B5.29:
- addl $20, %esp
- orl $8, %eax
- pushl %esi
- pushl $0
- pushl %eax
- pushl 68(%esp)
- pushl %esi
- call __dpml_addsub__
- ..B5.30:
- movl $8192, %eax
- movl 128(%esp), %edx
- subl %eax, %edx
- orl 132(%esp), %edx
- jne ..B5.32
- ..B5.31:
- movl $1, %eax
- jmp ..B5.34
- ..B5.32:
- xorl %eax, %eax
- ..B5.34:
- movl 136(%esp), %edx
- xorl %esp, %edx
- cmpl %gs:20, %edx
- jne ..B5.36
- ..B5.35:
- xorl %edx, %edx
- addl $148, %esp
- popl %ebx
- popl %edi
- popl %esi
- movl %ebp, %esp
- popl %ebp
- ret
- ..B5.36:
- call __stack_chk_fail@PLT
- .align 16,0x90
- .type __dpml_ux_sqrt_evaluation__..0,@function
- .size __dpml_ux_sqrt_evaluation__..0,.-__dpml_ux_sqrt_evaluation__..0
- .data
- # -- End __dpml_ux_sqrt_evaluation__..0
- .section .rodata, "a"
- .align 4
- .align 4
- .L_2il0floatpacket.20:
- .long 0x5f000000
- .type .L_2il0floatpacket.20,@object
- .size .L_2il0floatpacket.20,4
- .align 4
- __sqrt_x_table:
- .long 1088750600
- .long 605086734
- .long 1088766984
- .long 519758862
- .long 112
- .long 0
- .long 113
- .long 0
- .long 114
- .long 0
- .long 0
- .long 0
- .long 0
- .long 268435456
- .long 858997845
- .long 34
- .long 1636176969
- .long 409044504
- .long 1099306057
- .long 404751376
- .long 545392672
- .long 404783624
- .long 142938632
- .long 302522498
- .long 1719614413
- .long 1073127582
- .long 0
- .long 1072693248
- .long 0
- .long 1097859072
- .long 0
- .long 1151336448
- .long 0
- .long 1047527424
- .long 0
- .long 991952896
- .long 0
- .long 1072431104
- .long 0
- .long 1071120384
- .long 0
- .long 2
- .long 0
- .long 3221225472
- .long 0
- .long 0
- .long 0
- .long 0
- .type __sqrt_x_table,@object
- .size __sqrt_x_table,192
- .data
- .hidden __dpml_extended_multiply__
- .hidden __dpml_multiply__
- .hidden __dpml_ffs_and_shift__
- .hidden __dpml_addsub__
- .hidden __dpml_pack__
- .hidden __dpml_unpack_x_or_y__
- .section .note.GNU-stack, ""
- # End
|