aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-03-17 13:25:26 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-03-17 13:25:26 +0000
commit718af055171db4b1b1351048ce712a678a15c640 (patch)
tree686bd02c621f415442384a4101ce946c85d0913d
parent497d77b08c481a0b6e7898bd27cdb88bf08eebdf (diff)
more MSVC fixes (asm comments...)
-rw-r--r--Eigen/src/Core/products/GeneralMatrixMatrix.h9
-rw-r--r--Eigen/src/Core/products/GeneralMatrixVector.h2
-rw-r--r--Eigen/src/Core/util/Macros.h6
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.
*