29 #ifndef _V_IFDEFJAIL_H_
30 # define _V_IFDEFJAIL_H_
33 # define STIN static __inline__
35 # define STIN static __inline
41 # define rint(x) (floor((x)+0.5f))
45 # define M_PI (3.1415926536f)
48 #if defined(_WIN32) && !defined(__SYMBIAN32__)
50 # define rint(x) (floor((x)+0.5f))
51 # define NO_FLOAT_MATH_LIB
52 # define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b))
55 #if defined(__SYMBIAN32__) && defined(__WINS__)
56 void *_alloca(
size_t size);
57 # define alloca _alloca
61 # define FAST_HYPOT hypot
75 # define min(x,y) ((x)>(y)?(y):(x))
79 # define max(x,y) ((x)<(y)?(y):(x))
84 #if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__)
85 # define VORBIS_FPU_CONTROL
98 __asm__ __volatile__(
"fnstcw %0\n\t"
100 "andw $62463,%%dx\n\t"
102 "fldcw %1\n\t":
"=m"(ret):
"m"(temp):
"dx");
107 __asm__ __volatile__(
"fldcw %0"::
"m"(fpu));
115 __asm__(
"fistl %0":
"=m"(i) :
"t"(f));
123 #if defined(_MSC_VER) && !defined(_WIN64) && !defined(_WIN32_WCE)
124 # define VORBIS_FPU_CONTROL
148 #if (defined(_MSC_VER) && defined(_WIN64)) || (defined(__GNUC__) && defined (__x86_64__))
149 # define VORBIS_FPU_CONTROL
153 #include <emmintrin.h>
155 return _mm_cvtsd_si32(_mm_load_sd(&f));
169 #ifndef VORBIS_FPU_CONTROL
177 return (
int)
floor(f+.5);
181 # define vorbis_fpu_setround(vorbis_fpu_control) {}
182 # define vorbis_fpu_restore(vorbis_fpu_control) {}
static int vorbis_ftoi(double f)
#define vorbis_fpu_setround(vorbis_fpu_control)
#define vorbis_fpu_restore(vorbis_fpu_control)