Author: greatlrd Date: Sat Jun 16 15:19:30 2007 New Revision: 27200
URL: http://svn.reactos.org/svn/reactos?rev=27200&view=rev Log: rewrite atan, cos, fabs, sin, sqrt, tan, it will give us better speed as well the old version was slow
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/atan_asm.s trunk/reactos/lib/sdk/libcntpr/math/i386/cos_asm.s trunk/reactos/lib/sdk/libcntpr/math/i386/fabs_asm.s trunk/reactos/lib/sdk/libcntpr/math/i386/log_asm.s trunk/reactos/lib/sdk/libcntpr/math/i386/sin_asm.s trunk/reactos/lib/sdk/libcntpr/math/i386/sqrt_asm.s trunk/reactos/lib/sdk/libcntpr/math/i386/tan_asm.s
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/atan_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/atan_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/atan_asm.s Sat Jun 16 15:19:30 2007 @@ -3,48 +3,15 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/atan.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project 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. - */ + * PROGRAMER: Magnus Olsen (greatlord@greatlord.com) +*/
.globl _atan
.intel_syntax noprefix
-/* FUNCTIONS ***************************************************************/ - _atan: - push ebp - mov ebp,esp - fld qword ptr [ebp+8] // Load real from stack - fld1 // Load constant 1 - fpatan // Take the arctangent - pop ebp + fld qword ptr [esp+4] + fld1 + fpatan ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/cos_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/cos_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/cos_asm.s Sat Jun 16 15:19:30 2007 @@ -3,47 +3,14 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/cos.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * PROGRAMER: Magnus Olsen (greatlord@greatlord.com) +*/
- * 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. - */ - .globl _cos
.intel_syntax noprefix
-/* FUNCTIONS ***************************************************************/ - _cos: - push ebp - mov ebp,esp // Point to the stack frame - fld qword ptr [ebp+8] // Load real from stack - fcos // Take the cosine - pop ebp + fld qword ptr [esp+4] + fcos ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/fabs_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/fabs_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/fabs_asm.s Sat Jun 16 15:19:30 2007 @@ -3,47 +3,13 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/fabs.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * PROGRAMER: Magnus Olsen (greatlord@greatlord.com) +*/
- * 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. - */ - .globl _fabs - .intel_syntax noprefix +_fabs:
-/* FUNCTIONS ***************************************************************/ - -_fabs: - push ebp - mov ebp,esp - fld qword ptr [ebp+8] // Load real from stack - fabs // Take the absolute value - pop ebp + fld qword ptr [esp+4] + fabs ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/log_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/log_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/log_asm.s Sat Jun 16 15:19:30 2007 @@ -3,49 +3,14 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/log.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project 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. + * PROGRAMER: Magnus Olsen (greatlord@greatlord.com) */ - .globl _log - .intel_syntax noprefix
-/* FUNCTIONS ***************************************************************/ - _log: - push ebp - mov ebp,esp - fld qword ptr [ebp+8] // Load real from stack - fldln2 // Load log base e of 2 - fxch st(1) // Exchange st, st(1) - fyl2x // Compute the natural log(x) - pop ebp + fld qword ptr [esp+4] + fldln2 + fxch st(1) + fyl2x ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/sin_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/sin_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/sin_asm.s Sat Jun 16 15:19:30 2007 @@ -3,47 +3,12 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/sin.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project 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. + * PROGRAMER: Magnus Olsen (greatlord@greatlord.com) */
.globl _sin - .intel_syntax noprefix - -/* FUNCTIONS ***************************************************************/ - _sin: - push ebp // Save register bp - mov ebp,esp // Point to the stack frame - fld qword ptr [ebp+8] // Load real from stack - fsin // Take the sine - pop ebp // Restore register bp + fld qword ptr [esp+4] + fsin ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/sqrt_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/sqrt_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/sqrt_asm.s Sat Jun 16 15:19:30 2007 @@ -3,47 +3,15 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/sqrt.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * PROGRAMER: Magnus Olsen (greatlord@greatlord.com) + */
- * 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. - */
.globl _sqrt
.intel_syntax noprefix
-/* FUNCTIONS ***************************************************************/ - _sqrt: - push ebp - mov ebp,esp - fld qword ptr [ebp+8] // Load real from stack - fsqrt // Take the square root - pop ebp + fld qword ptr [esp+4] + fsqrt ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/tan_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386/... ============================================================================== --- trunk/reactos/lib/sdk/libcntpr/math/i386/tan_asm.s (original) +++ trunk/reactos/lib/sdk/libcntpr/math/i386/tan_asm.s Sat Jun 16 15:19:30 2007 @@ -3,50 +3,14 @@ * PROJECT: ReactOS kernel * PURPOSE: Run-Time Library * FILE: lib/rtl/i386/tan.S - * PROGRAMER: Alex Ionescu (alex@relsoft.net) - * - * Copyright (C) 2002 Michael Ringgaard. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the project 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. + * PROGRAMER: Magnus Olsen (magnus@greatlord.com) */ - .globl _tan - .intel_syntax noprefix - -/* FUNCTIONS ***************************************************************/ - _tan: - push ebp - mov ebp,esp - sub esp,4 // Allocate temporary space - fld qword ptr [ebp+8] // Load real from stack - fptan // Take the tangent - fstp dword ptr [ebp-4] // Throw away the constant 1 - mov esp,ebp // Deallocate temporary space - pop ebp + sub esp,4 + fld qword ptr [ebp+8] + fptan + fstp dword ptr [ebp+4] + add esp,4; ret