diff options
author | 2009-03-17 13:25:26 +0000 | |
---|---|---|
committer | 2009-03-17 13:25:26 +0000 | |
commit | 718af055171db4b1b1351048ce712a678a15c640 (patch) | |
tree | 686bd02c621f415442384a4101ce946c85d0913d | |
parent | 497d77b08c481a0b6e7898bd27cdb88bf08eebdf (diff) |
more MSVC fixes (asm comments...)
-rw-r--r-- | Eigen/src/Core/products/GeneralMatrixMatrix.h | 9 | ||||
-rw-r--r-- | Eigen/src/Core/products/GeneralMatrixVector.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/util/Macros.h | 6 |
3 files changed, 7 insertions, 10 deletions
diff --git a/Eigen/src/Core/products/GeneralMatrixMatrix.h b/Eigen/src/Core/products/GeneralMatrixMatrix.h index 9dedb7f14..7262e0635 100644 --- a/Eigen/src/Core/products/GeneralMatrixMatrix.h +++ b/Eigen/src/Core/products/GeneralMatrixMatrix.h @@ -425,16 +425,11 @@ static void ei_cache_friendly_product( for(int i=0; i<l2BlockRows; i+=2*PacketSize) { PacketType R0, R1, L0, L1, T0, T1; - asm("#begin sgemm"); -// asm(".byte 0x66;"); // We perform "cross products" of vectors to avoid // reductions (horizontal ops) afterwards T0 = ei_pload(&res[(j+l2j)*resStride+l2i+i]); T1 = ei_pload(&res[(j+l2j)*resStride+l2i+i+PacketSize]); - // uncomment to remove res cache miss -// T0 = ei_pload(&res[k]); -// T1 = ei_pload(&res[k+PacketSize]); R0 = ei_pload(&lb[0*PacketSize]); L0 = ei_pload(&lb[1*PacketSize]); @@ -478,10 +473,6 @@ static void ei_cache_friendly_product( ei_pstore(&res[(j+l2j)*resStride+l2i+i], T0); ei_pstore(&res[(j+l2j)*resStride+l2i+i+PacketSize], T1); - // uncomment to remove res cache miss -// ei_pstore(&res[0], T0); -// ei_pstore(&res[4/*k+PacketSize*/], T1); - asm("#end sgemm"); } } } diff --git a/Eigen/src/Core/products/GeneralMatrixVector.h b/Eigen/src/Core/products/GeneralMatrixVector.h index 2df6a652d..d78830dd3 100644 --- a/Eigen/src/Core/products/GeneralMatrixVector.h +++ b/Eigen/src/Core/products/GeneralMatrixVector.h @@ -38,7 +38,7 @@ static EIGEN_DONT_INLINE void ei_cache_friendly_product_colmajor_times_vector( const Scalar* lhs, int lhsStride, const RhsType& rhs, Scalar* res) -{asm("#ei_cache_friendly_product_colmajor_times_vector"); +{ #ifdef _EIGEN_ACCUMULATE_PACKETS #error _EIGEN_ACCUMULATE_PACKETS has already been defined #endif diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index de4dd06b9..69fa1db18 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -159,6 +159,12 @@ using Eigen::ei_cos; #define EIGEN_DEPRECATED #endif +#if (defined __GNUC__) +#define EIGEN_ASM_COMMENT(X) asm("#"X) +#else +#define EIGEN_ASM_COMMENT(X) +#endif + /* EIGEN_ALIGN_128 forces data to be 16-byte aligned, EVEN if vectorization (EIGEN_VECTORIZE) is disabled, * so that vectorization doesn't affect binary compatibility. * |