Browse Source

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>
tags/12.0-branchpoint
Jose Fonseca 10 years ago
parent
commit
dcc3baf733

+ 4
- 2
src/gallium/auxiliary/util/u_math.h View File

@@ -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 )
{

+ 1
- 2
src/gallium/drivers/llvmpipe/lp_test.h View File

@@ -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))

+ 2
- 2
src/gallium/include/pipe/p_compiler.h View File

@@ -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…
Cancel
Save