From c8e0bf6620499100402ddd823c1dc07d339808a0 Mon Sep 17 00:00:00 2001 From: tico-tico Date: Fri, 25 Jan 2019 16:40:16 +0300 Subject: Check for sse2 math before using it. --- lib/os.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/os.h b/lib/os.h index e0989263..e589a336 100644 --- a/lib/os.h +++ b/lib/os.h @@ -80,7 +80,7 @@ void *_alloca(size_t size); /* Special i386 GCC implementation */ -#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) +#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) && !defined(__SSE2_MATH__) # define VORBIS_FPU_CONTROL /* both GCC and MSVC are kinda stupid about rounding/casting to int. Because of encapsulation constraints (GCC can't see inside the asm @@ -147,7 +147,7 @@ static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ /* Optimized code path for x86_64 builds. Uses SSE2 intrinsics. This can be done safely because all x86_64 CPUs supports SSE2. */ -#if (defined(_MSC_VER) && defined(_WIN64)) || (defined(__GNUC__) && defined (__x86_64__)) +#if (defined(_MSC_VER) && defined(_WIN64)) || (defined(__GNUC__) && defined (__SSE2_MATH__)) # define VORBIS_FPU_CONTROL typedef ogg_int16_t vorbis_fpu_control; -- cgit v1.2.1