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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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