You guys are hilarious.
Hint: putting all the trig functions into one file is a bad idea too. There's a reason
they were made separate. Cookie for whoever finds out why.
--
Best regards,
Alex Ionescu
-----Original Message-----
From: ros-diffs-bounces(a)reactos.org [mailto:ros-diffs-bounces@reactos.org] On Behalf Of
fireball(a)svn.reactos.org
Sent: Saturday, June 16, 2007 5:29 AM
To: ros-diffs(a)reactos.org
Subject: [ros-diffs] [fireball] 27202: - Finally, removing frame pointer was a bad idea
(think of exceptions / etc).
Author: fireball
Date: Sat Jun 16 16:28:56 2007
New Revision: 27202
URL:
http://svn.reactos.org/svn/reactos?rev=27202&view=rev
Log:
- Finally, removing frame pointer was a bad idea (think of exceptions / etc).
Modified:
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/sqrt_asm.s
trunk/reactos/lib/sdk/libcntpr/math/i386/trig_asm.s
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 16:28:56 2007
@@ -3,13 +3,47 @@
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/fabs.S
- * PROGRAMER: Magnus Olsen (greatlord(a)greatlord.com)
-*/
+ * 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.
+ */
+
.globl _fabs
+
.intel_syntax noprefix
+
+/* FUNCTIONS ***************************************************************/
+
_fabs:
-
- fld qword ptr [esp+8]
- fabs
+ push ebp
+ mov ebp,esp
+ fld qword ptr [ebp+8] // Load real from stack
+ fabs // Take the absolute value
+ pop ebp
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 16:28:56 2007
@@ -3,14 +3,49 @@
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/log.S
- * PROGRAMER: Magnus Olsen (greatlord(a)greatlord.com)
+ * 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.
*/
+
.globl _log
+
.intel_syntax noprefix
+/* FUNCTIONS ***************************************************************/
+
_log:
- fld qword ptr [esp+8]
- fldln2
- fxch st(1)
- fyl2x
+ 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
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 16:28:56 2007
@@ -3,15 +3,47 @@
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/sqrt.S
- * PROGRAMER: Magnus Olsen (greatlord(a)greatlord.com)
+ * 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.
*/
-
.globl _sqrt
.intel_syntax noprefix
+/* FUNCTIONS ***************************************************************/
+
_sqrt:
- fld qword ptr [esp+8]
- fsqrt
+ push ebp
+ mov ebp,esp
+ fld qword ptr [ebp+8] // Load real from stack
+ fsqrt // Take the square root
+ pop ebp
ret
Modified: trunk/reactos/lib/sdk/libcntpr/math/i386/trig_asm.s
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/math/i386…
==============================================================================
--- trunk/reactos/lib/sdk/libcntpr/math/i386/trig_asm.s (original)
+++ trunk/reactos/lib/sdk/libcntpr/math/i386/trig_asm.s Sat Jun 16 16:28:56 2007
@@ -4,33 +4,49 @@
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/trig_asm.s
* PROGRAMER: Aleksey Bragin (aleksey reactos org)
-*/
-
+ *
+ */
.globl _atan
.globl _cos
.globl _sin
-.globl _tan
-
+
.intel_syntax noprefix
+/* FUNCTIONS ***************************************************************/
+
_atan:
- fld qword ptr [esp+8]
+ push ebp
+ mov ebp,esp
+ fld qword ptr [ebp+8]
fld1
fpatan
+ pop ebp
ret
_cos:
- fld qword ptr [esp+8]
+ push ebp
+ mov ebp,esp
+ fld qword ptr [ebp+8]
fcos
+ pop ebp
ret
_sin:
- fld qword ptr [esp+8]
+ push ebp
+ mov ebp,esp
+ fld qword ptr [ebp+8]
fsin
+ pop ebp
ret
_tan:
- fld qword ptr [esp+8]
+ push ebp
+ mov ebp,esp
+ sub esp,4
+ fld qword ptr [ebp+8]
fptan
- fstp dword ptr [esp-4]
+ fstp dword ptr [ebp-4]
+ mov esp,ebp
+ pop ebp
ret
+