From b80d9dd42e476efd9cead00bc2c48383a0e9df14 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Fri, 13 Aug 2010 13:55:28 -0400 Subject: [PATCH] fix determination of number of registers on sse: __i386__ was not defined by MSVC 2010. fixed as (2*sizeof(void*)). also move that to SSE/ and let the default for unknown arch's be just 8. --- Eigen/src/Core/arch/Default/Settings.h | 3 --- Eigen/src/Core/arch/SSE/PacketMath.h | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Eigen/src/Core/arch/Default/Settings.h b/Eigen/src/Core/arch/Default/Settings.h index 8118f9dc1..8127e5754 100644 --- a/Eigen/src/Core/arch/Default/Settings.h +++ b/Eigen/src/Core/arch/Default/Settings.h @@ -67,10 +67,7 @@ * Currently it must be 8 or 16. Other values will fail. */ #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS -#if (defined __i386__) #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8 -#else -#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16 #endif #endif diff --git a/Eigen/src/Core/arch/SSE/PacketMath.h b/Eigen/src/Core/arch/SSE/PacketMath.h index 8c441810c..a7206e77d 100644 --- a/Eigen/src/Core/arch/SSE/PacketMath.h +++ b/Eigen/src/Core/arch/SSE/PacketMath.h @@ -29,6 +29,10 @@ #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8 #endif +#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS +#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*)) +#endif + typedef __m128 Packet4f; typedef __m128i Packet4i; typedef __m128d Packet2d;