[ros-diffs] [fireball] 27202: - Finally, removing frame pointer was a bad idea (think of exceptions / etc).

fireball at svn.reactos.org fireball at svn.reactos.org
Sat Jun 16 14:28:56 CEST 2007


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/fabs_asm.s?rev=27202&r1=27201&r2=27202&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 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 at greatlord.com)
-*/
+ * 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.
+ */
+ 
 .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/log_asm.s?rev=27202&r1=27201&r2=27202&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 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 at greatlord.com)
+ * 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.
  */
+ 
 .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/sqrt_asm.s?rev=27202&r1=27201&r2=27202&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 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 at greatlord.com)
+ * 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.
  */
-
  
 .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/trig_asm.s?rev=27202&r1=27201&r2=27202&view=diff
==============================================================================
--- 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
+




More information about the Ros-diffs mailing list