util: Cope with LONG_BIT not being defined on Windows.
Neither MSVC nor MinGW defines LONG_BIT. For MSVC this was not a problem as it doesn't define __x86_64__ macro (it's GCC specific.) However on Windows long type is guaranteed to be 32bits. Also add an #error, as GCC will just warn, not throw any error, when no value is returned. Trivial.
This commit is contained in:
@@ -96,8 +96,10 @@ _mesa_lroundevenf(float x)
|
|||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
#if LONG_BIT == 64
|
#if LONG_BIT == 64
|
||||||
return _mm_cvtss_si64(_mm_load_ss(&x));
|
return _mm_cvtss_si64(_mm_load_ss(&x));
|
||||||
#elif LONG_BIT == 32
|
#elif LONG_BIT == 32 || defined(_WIN32)
|
||||||
return _mm_cvtss_si32(_mm_load_ss(&x));
|
return _mm_cvtss_si32(_mm_load_ss(&x));
|
||||||
|
#else
|
||||||
|
#error "Unsupported or undefined LONG_BIT"
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
return lrintf(x);
|
return lrintf(x);
|
||||||
@@ -114,8 +116,10 @@ _mesa_lroundeven(double x)
|
|||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
#if LONG_BIT == 64
|
#if LONG_BIT == 64
|
||||||
return _mm_cvtsd_si64(_mm_load_sd(&x));
|
return _mm_cvtsd_si64(_mm_load_sd(&x));
|
||||||
#elif LONG_BIT == 32
|
#elif LONG_BIT == 32 || defined(_WIN32)
|
||||||
return _mm_cvtsd_si32(_mm_load_sd(&x));
|
return _mm_cvtsd_si32(_mm_load_sd(&x));
|
||||||
|
#else
|
||||||
|
#error "Unsupported or undefined LONG_BIT"
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
return lrint(x);
|
return lrint(x);
|
||||||
|
Reference in New Issue
Block a user