[ros-diffs] [greatlrd] 27200: rewrite atan, cos, fabs, sin, sqrt, tan, it will give us better speed as well the old version was slow

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sat Jun 16 13:19:30 CEST 2007


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/atan_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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/cos_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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/fabs_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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/log_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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/sin_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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/sqrt_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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/tan_asm.s?rev=27200&r1=27199&r2=27200&view=diff
==============================================================================
--- 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 at 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 at 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




More information about the Ros-diffs mailing list