[CRT]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 21 Nov 2010 09:36:26 +0000 (09:36 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 21 Nov 2010 09:36:26 +0000 (09:36 +0000)
- Use ___readcr4 instead of __readcr4, because MSVC doesn't like this intrinsic to be redefined.
- Add _ftol2

svn path=/branches/cmake-bringup/; revision=49679

include/crt/msc/intrin.h
lib/sdk/crt/CMakeLists.txt
lib/sdk/crt/math/i386/ftol2_asm.s [new file with mode: 0644]
lib/sdk/crt/misc/i386/readcr4.S

index d9b1e4a..bd903e3 100644 (file)
@@ -283,9 +283,12 @@ void __writedr(unsigned reg, unsigned __int64 value);
 unsigned long __readcr0(void);
 unsigned long __readcr2(void);
 unsigned long __readcr3(void);
-unsigned long __readcr4(void);
+//unsigned long __readcr4(void);
 //#pragma intrinsic(__readcr4)
-#pragma function(__readcr4) // HACK: MSVC is broken
+// HACK: MSVC is broken
+unsigned long  ___readcr4(void);
+#define __readcr4 ___readcr4
+
 unsigned int __readdr(unsigned int reg);
 void __writedr(unsigned reg, unsigned int value);
 #endif
index f7c13a2..c22b2c7 100644 (file)
@@ -486,12 +486,14 @@ list(APPEND LIBCNTPR_SOURCE
     math/i386/fabs_asm.s
     math/i386/floor_asm.s
     math/i386/ftol_asm.s
+    math/i386/ftol2_asm.s
     math/i386/log_asm.s
     math/i386/pow_asm.s
     math/i386/sin_asm.s
     math/i386/sqrt_asm.s
     math/i386/tan_asm.s
-    math/i386/ci.c)
+    math/i386/ci.c
+    misc/i386/readcr4.S)
 elseif(ARCH MATCHES amd64)
 list(APPEND LIBCNTPR_SOURCE
     math/cos.c
diff --git a/lib/sdk/crt/math/i386/ftol2_asm.s b/lib/sdk/crt/math/i386/ftol2_asm.s
new file mode 100644 (file)
index 0000000..12f5501
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * COPYRIGHT:         See COPYING in the top level directory
+ * PROJECT:           ReactOS kernel
+ * PURPOSE:           Run-Time Library
+ * FILE:              lib/rtl/i386/ftol2.S
+ * PROGRAMER:         
+ *
+ */
+
+#include <asm.inc>
+
+EXTERN __ftol:PROC
+PUBLIC __ftol2
+PUBLIC __ftol2_sse
+/* FUNCTIONS ***************************************************************/
+.code
+
+/*
+ * This routine is called by MSVC-generated code to convert from floating point
+ * to integer representation. The floating point number to be converted is
+ * on the top of the floating point stack.
+ */
+__ftol2:
+__ftol2_sse:
+    jmp __ftol
+
+END
index 6b6ea38..14975de 100644 (file)
@@ -3,8 +3,8 @@
 
 .code
 
-PUBLIC ___readcr4
-___readcr4:
+PUBLIC ____readcr4
+____readcr4:
     mov eax, cr4
     ret