From: Timo Kreuzer Date: Sun, 21 Nov 2010 09:36:26 +0000 (+0000) Subject: [CRT] X-Git-Tag: backups/GSoC_2011/GSoC_Themes@51550~466 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=0b8509a565f5f63301defa0f913e63a3d4957e7c [CRT] - Use ___readcr4 instead of __readcr4, because MSVC doesn't like this intrinsic to be redefined. - Add _ftol2 svn path=/branches/cmake-bringup/; revision=49679 --- diff --git a/include/crt/msc/intrin.h b/include/crt/msc/intrin.h index d9b1e4a1cbf..bd903e3f99a 100644 --- a/include/crt/msc/intrin.h +++ b/include/crt/msc/intrin.h @@ -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 diff --git a/lib/sdk/crt/CMakeLists.txt b/lib/sdk/crt/CMakeLists.txt index f7c13a2addc..c22b2c740bf 100644 --- a/lib/sdk/crt/CMakeLists.txt +++ b/lib/sdk/crt/CMakeLists.txt @@ -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 index 00000000000..12f55010312 --- /dev/null +++ b/lib/sdk/crt/math/i386/ftol2_asm.s @@ -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 + +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 diff --git a/lib/sdk/crt/misc/i386/readcr4.S b/lib/sdk/crt/misc/i386/readcr4.S index 6b6ea38c169..14975deeb62 100644 --- a/lib/sdk/crt/misc/i386/readcr4.S +++ b/lib/sdk/crt/misc/i386/readcr4.S @@ -3,8 +3,8 @@ .code -PUBLIC ___readcr4 -___readcr4: +PUBLIC ____readcr4 +____readcr4: mov eax, cr4 ret