- Move fdiv pentium bug function stubs to another file.
authorAleksey Bragin <aleksey@reactos.org>
Tue, 26 Aug 2008 17:21:02 +0000 (17:21 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Tue, 26 Aug 2008 17:21:02 +0000 (17:21 +0000)
- Exclude platform-independent CI math function stubs when compiling x86 target. Should finally fix bug 1255.
See issue #1255 for more details.

svn path=/trunk/; revision=35677

reactos/lib/sdk/crt/crt.rbuild
reactos/lib/sdk/crt/math/fdivbug.c [new file with mode: 0644]

index 56c2e94..771ca4b 100644 (file)
@@ -86,6 +86,7 @@
                <file>cabs.c</file>
                <file>cosh.c</file>
                <file>div.c</file>
+               <file>fdivbug.c</file>
                <file>frexp.c</file>
                <file>huge_val.c</file>
                <file>hypot.c</file>
@@ -97,7 +98,6 @@
                <file>rand.c</file>
                <file>s_modf.c</file>
                <file>sinh.c</file>
-               <file>stubs.c</file>
                <file>tanh.c</file>
                <file>pow_asm.c</file>
 
                        </directory>
                </if>
                <ifnot property="ARCH" value="i386">
+                       <file>stubs.c</file>
                </ifnot>
        </directory>
 
diff --git a/reactos/lib/sdk/crt/math/fdivbug.c b/reactos/lib/sdk/crt/math/fdivbug.c
new file mode 100644 (file)
index 0000000..d790eef
--- /dev/null
@@ -0,0 +1,89 @@
+#include <precomp.h>
+#include <math.h>
+
+/* The following functions are likely workarounds for the pentium fdiv bug */
+void __stdcall _adj_fdiv_m32( unsigned int arg )
+{
+    FIXME("_adj_fdiv_m32 stub\n");
+}
+void __stdcall _adj_fdiv_m32i( int arg )
+{
+    FIXME("_adj_fdiv_m32i stub\n");
+}
+
+void __stdcall _adj_fdiv_m64( unsigned __int64 arg )
+{
+    FIXME("_adj_fdiv_m64 stub\n");
+}
+
+void _adj_fdiv_r(void)
+{
+    FIXME("_adj_fdiv_r stub\n");
+}
+
+void __stdcall _adj_fdivr_m32( unsigned int arg )
+{
+    FIXME("_adj_fdivr_m32i stub\n");
+}
+
+void __stdcall _adj_fdivr_m32i( int arg )
+{
+    FIXME("_adj_fdivr_m32i stub\n");
+}
+
+void __stdcall _adj_fdivr_m64( unsigned __int64 arg )
+{
+    FIXME("_adj_fdivr_m64 stub\n");
+}
+
+void _adj_fpatan(void)
+{
+    FIXME("_adj_fpatan stub\n");
+}
+
+void __stdcall _adj_fdiv_m16i( short arg )
+{
+    FIXME("_adj_fdiv_m16i stub\n");
+}
+
+void __stdcall _adj_fdivr_m16i( short arg )
+{
+    FIXME("_adj_fdivr_m16i stub\n");
+}
+
+void _adj_fprem(void)
+{
+    FIXME("_adj_fprem stub\n");
+}
+
+void _adj_fprem1(void)
+{
+    FIXME("_adj_fprem1 stub\n");
+}
+
+void _adj_fptan(void)
+{
+    FIXME("_adj_fptan stub\n");
+}
+
+void _safe_fdiv(void)
+{
+    FIXME("_safe_fdiv stub\n");
+}
+
+void _safe_fdivr(void)
+{
+    FIXME("_safe_fdivr stub\n");
+}
+
+void _safe_fprem(void)
+{
+    FIXME("_safe_fprem stub\n");
+}
+
+void _safe_fprem1(void)
+{
+    FIXME("_safe_fprem1 stub\n");
+}
+
+