gallium: Include intrin.h instead of defining ourselves.
More portable, particularly when building with Clang, which implements all MSVC intrisincs in its own intrin.h, but doesn't actually support `#pragma instrinsic`. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
9a25c8af1b
commit
dcc3baf733
|
@ -50,6 +50,10 @@
|
|||
#include <strings.h> /* for ffs */
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -357,8 +361,6 @@ util_half_inf_sign(int16_t x)
|
|||
#define FFS_DEFINED 1
|
||||
|
||||
#if defined(_MSC_VER) && (_M_IX86 || _M_AMD64 || _M_IA64)
|
||||
unsigned char _BitScanForward(unsigned long* Index, unsigned long Mask);
|
||||
#pragma intrinsic(_BitScanForward)
|
||||
static inline
|
||||
unsigned long ffs( unsigned long u )
|
||||
{
|
||||
|
|
|
@ -71,8 +71,7 @@ test_all(unsigned verbose, FILE *fp);
|
|||
|
||||
#if defined(PIPE_CC_MSVC)
|
||||
|
||||
unsigned __int64 __rdtsc();
|
||||
#pragma intrinsic(__rdtsc)
|
||||
#include <intrin.h>
|
||||
#define rdtsc() __rdtsc()
|
||||
|
||||
#elif defined(PIPE_CC_GCC) && (defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64))
|
||||
|
|
|
@ -48,6 +48,8 @@
|
|||
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
#include <intrin.h>
|
||||
|
||||
/* Avoid 'expression is always true' warning */
|
||||
#pragma warning(disable: 4296)
|
||||
|
||||
|
@ -174,8 +176,6 @@ typedef unsigned char boolean;
|
|||
|
||||
#elif defined(_MSC_VER)
|
||||
|
||||
void _ReadWriteBarrier(void);
|
||||
#pragma intrinsic(_ReadWriteBarrier)
|
||||
#define PIPE_READ_WRITE_BARRIER() _ReadWriteBarrier()
|
||||
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue