From d5b844181146893c527e08a427deaa9b04a93be5 Mon Sep 17 00:00:00 2001 From: Jack Moffitt Date: Mon, 6 Nov 2000 20:36:07 +0000 Subject: [PATCH] win32 asm ftoi jack. svn path=/trunk/vorbis/; revision=1001 --- lib/os.h | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/os.h b/lib/os.h index 953dfc0..d0e7f9c 100644 --- a/lib/os.h +++ b/lib/os.h @@ -14,7 +14,7 @@ ******************************************************************** function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os.h,v 1.13 2000/11/06 11:55:44 msmith Exp $ + last mod: $Id: os.h,v 1.14 2000/11/06 20:36:07 jack Exp $ ********************************************************************/ @@ -97,20 +97,31 @@ static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise, #else -static int vorbis_ftoi(double f){ - return (int)(f+.5); -} - typedef int vorbis_fpu_control; #ifdef _WIN32 + +static __inline int vorbis_ftoi(double f){ + int i; + __asm{ + fld f + fistp i + } + return i; +} + static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ } static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ } #else + +static int vorbis_ftoi(double f){ + return (int)(f+.5); +} + /* We don't have special code for this compiler/arch, so do it the slow way */ #define vorbis_fpu_setround(vorbis_fpu_control) {} #define vorbis_fpu_restore(vorbis_fpu_control) {} -- 2.7.4