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
+
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
Author: greatlrd
Date: Sat Jun 16 03:58:10 2007
New Revision: 27197
URL: http://svn.reactos.org/svn/reactos?rev=27197&view=rev
Log:
prepare vbe driver for two thing
1. a framebuf for VBE 1.2 this will be pretty hard to implement,
I got some idea, this mean our vbe drv will work on vbe 1.2
without doing a bankswitch
2. prepare for some dx api for vbe by adding support for special mode 0x81FF
meaing we getting full access to the video driver memory in vbe. Thx aleasky
you remmid and long talk in some month how we can do it.
Modified:
trunk/reactos/drivers/video/miniport/vbe/vbemp.c
Modified: trunk/reactos/drivers/video/miniport/vbe/vbemp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/miniport/vbe…
==============================================================================
--- trunk/reactos/drivers/video/miniport/vbe/vbemp.c (original)
+++ trunk/reactos/drivers/video/miniport/vbe/vbemp.c Sat Jun 16 03:58:10 2007
@@ -251,6 +251,9 @@
VBEDeviceExtension->VbeInfo.Version & 0xFF,
VBEDeviceExtension->VbeInfo.TotalMemory * 64);
+
+
+
#ifdef VBE12_SUPPORT
if (VBEDeviceExtension->VbeInfo.Version < 0x102)
#else
@@ -295,14 +298,16 @@
break;
}
+
+
/*
* Allocate space for video modes information.
*/
VBEDeviceExtension->ModeInfo =
- VideoPortAllocatePool(HwDeviceExtension, VpPagedPool, ModeCount * sizeof(VBE_MODEINFO), TAG_VBE);
+ VideoPortAllocatePool(HwDeviceExtension, VpPagedPool, (ModeCount + 1) * sizeof(VBE_MODEINFO), TAG_VBE);
VBEDeviceExtension->ModeNumbers =
- VideoPortAllocatePool(HwDeviceExtension, VpPagedPool, ModeCount * sizeof(USHORT), TAG_VBE);
+ VideoPortAllocatePool(HwDeviceExtension, VpPagedPool, (ModeCount+ 1) * sizeof(USHORT), TAG_VBE);
/*
* Get the actual mode infos.
@@ -355,13 +360,64 @@
}
#ifdef VBE12_SUPPORT
else
- {
- VBEDeviceExtension->ModeNumbers[SuitableModeCount] = ModeTemp;
- SuitableModeCount++;
+ {
+ /* FIXME when PCI bus scanner are inplace we need add ModeTemp | 0x4000
+ * for we will map the memory our self and do not use bankswitch */
+
+ if (VBEDeviceExtension->VbeInfo.Version < 0x200)
+ {
+ VBEDeviceExtension->ModeNumbers[SuitableModeCount] = ModeTemp;
+ SuitableModeCount++;
+ }
}
#endif
}
}
+
+
+#ifdef VBE12_SUPPORT
+ if (VBEDeviceExtension->VbeInfo.Version < 0x200)
+ {
+ /* FIXME add PCI bus scanner to detect the video ram phy address */
+ }
+ else
+#endif
+ if (VBEDeviceExtension->VbeInfo.Version >= 0x200)
+ {
+
+ /* Call VBE BIOS to read the mode info.for the special mode */
+ VideoPortZeroMemory(&BiosRegisters, sizeof(BiosRegisters));
+ BiosRegisters.Eax = VBE_GET_MODE_INFORMATION;
+ BiosRegisters.Ecx = 0x81FF;
+ BiosRegisters.Edi = VBEDeviceExtension->TrampolineMemoryOffset + 0x200;
+ BiosRegisters.SegEs = VBEDeviceExtension->TrampolineMemorySegment;
+ VBEDeviceExtension->Int10Interface.Int10CallBios(
+ VBEDeviceExtension->Int10Interface.Context,
+ &BiosRegisters);
+
+ VBEDeviceExtension->ModeNumbers[SuitableModeCount] = 0;
+
+ if (BiosRegisters.Eax == VBE_SUCCESS)
+ {
+ /* transfer the special mode data to protected memory */
+ VBEDeviceExtension->Int10Interface.Int10ReadMemory(
+ VBEDeviceExtension->Int10Interface.Context,
+ VBEDeviceExtension->TrampolineMemorySegment,
+ VBEDeviceExtension->TrampolineMemoryOffset + 0x200,
+ VBEDeviceExtension->ModeInfo + SuitableModeCount,
+ sizeof(VBE_MODEINFO));
+
+ VBEDeviceExtension->ModeNumbers[SuitableModeCount] = 0x81FF;
+ /* Do not add special mode to the list */
+ //SuitableModeCount++;
+
+ /* to gain full phy memory
+ * VBEDeviceExtension->ModeNumbers[SuitableModeCount].PhysBasePtr
+ * VBEDeviceExtension->VbeInfo.TotalMemory * 64 = x Memory on the card in Kbyte
+ */
+ }
+ }
+
if (SuitableModeCount == 0)
{
@@ -390,6 +446,9 @@
VBEDeviceExtension->ModeInfo[CurrentMode].YResolution,
VBEDeviceExtension->ModeInfo[CurrentMode].BitsPerPixel);
}
+
+
+
/*
* Enumerate our children.
@@ -814,11 +873,14 @@
#ifdef VBE12_SUPPORT
else
{
+ // when pci bus scanner are in place we remove this one
FrameBuffer.QuadPart = 0xA0000;
MapInformation->VideoRamBase = RequestedAddress->RequestedVirtualAddress;
MapInformation->VideoRamLength = 0x10000;
}
-#endif
+#endif
+
+
VideoPortMapMemory(DeviceExtension, FrameBuffer,
&MapInformation->VideoRamLength, &inIoSpace,