summaryrefslogtreecommitdiffstats
path: root/mmx_defs.h
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-28 17:15:54 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-28 17:15:54 +0000
commit578e647be3e33f9cd4b58d975aadaf2b96775c06 (patch)
treef970b787274185e9c5f69af137cda74160c802ea /mmx_defs.h
parent2b88e5ff5c622bcefd4afd828c786bbfcbded9dc (diff)
downloadmpv-578e647be3e33f9cd4b58d975aadaf2b96775c06.tar.bz2
mpv-578e647be3e33f9cd4b58d975aadaf2b96775c06.tar.xz
More elegant solution
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2517 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mmx_defs.h')
-rw-r--r--mmx_defs.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/mmx_defs.h b/mmx_defs.h
new file mode 100644
index 0000000000..4cf295a8b1
--- /dev/null
+++ b/mmx_defs.h
@@ -0,0 +1,55 @@
+/*
+ This file contains most common definitions to make MMX stuff
+ easy portable between different kinds of mmx clones
+ Written By Nick Kurshev <nickols_k@mail.ru>
+*/
+
+#ifndef MMXDEFS_INCLUDED
+#define MMXDEFS_INCLUDED
+
+#include "config.h"
+
+#undef HAVE_MMX1
+#if defined(HAVE_MMX) && !defined(HAVE_MMX2) && !defined(HAVE_3DNOW) && !defined(HAVE_SSE)
+#define HAVE_MMX1
+#endif
+
+#undef HAVE_K6_2PLUS
+#if !defined( HAVE_MMX2 ) && defined( HAVE_3DNOW )
+#define HAVE_K6_2PLUS
+#endif
+
+#ifdef HAVE_SSE2
+#define MMREG_SIZE 16
+#else
+#define MMREG_SIZE 8
+#endif
+
+#ifdef HAVE_3DNOW
+#define PREFETCH "prefetch"
+#define PREFETCHW "prefetchw"
+#elif defined ( HAVE_MMX2 )
+#define PREFETCH "prefetchnta"
+#define PREFETCHW "prefetcht0"
+#else
+#define PREFETCH "/nop"
+#define PREFETCHW "/nop"
+#endif
+
+#ifdef HAVE_K6_2PLUS
+/* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */
+#define EMMS "femms"
+#else
+#define EMMS "emms"
+#endif
+
+#ifdef HAVE_MMX2
+#define MOVNTQ "movntq"
+#define SFENCE "sfence"
+#else
+#define MOVNTQ "movq"
+#define SFENCE "/nop"
+#endif
+
+
+#endif \ No newline at end of file