Real rstp:// streaming support, ported from xine
[mplayer/greg.git] / mmx_defs.h
blob997c8285d05d71636b8487b8096a987b498c43a6
1 /*
2 This file contains most common definitions to make MMX stuff
3 easy portable between different kinds of mmx clones
4 Written By Nick Kurshev <nickols_k@mail.ru>
5 */
7 #ifndef MMXDEFS_INCLUDED
8 #define MMXDEFS_INCLUDED
10 #include "config.h"
12 #undef HAVE_MMX1
13 #if defined(HAVE_MMX) && !defined(HAVE_MMX2) && !defined(HAVE_3DNOW) && !defined(HAVE_SSE)
14 #define HAVE_MMX1
15 #endif
17 #undef HAVE_K6_2PLUS
18 #if !defined( HAVE_MMX2 ) && defined( HAVE_3DNOW )
19 #define HAVE_K6_2PLUS
20 #endif
22 #ifdef HAVE_SSE2
23 #define MMREG_SIZE 16
24 #else
25 #define MMREG_SIZE 8
26 #endif
28 #ifdef HAVE_3DNOW
29 #define PREFETCH "prefetch"
30 #define PREFETCHW "prefetchw"
31 #define PAVGB "pavgusb"
32 #elif defined ( HAVE_MMX2 )
33 #define PREFETCH "prefetchnta"
34 #define PREFETCHW "prefetcht0"
35 #define PAVGB "pavgb"
36 #else
37 #define PREFETCH "/nop"
38 #define PREFETCHW "/nop"
39 #endif
41 #ifdef HAVE_3DNOW
42 /* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */
43 #define EMMS "femms"
44 #else
45 #define EMMS "emms"
46 #endif
48 #ifdef HAVE_MMX2
49 #define MOVNTQ "movntq"
50 #define SFENCE "sfence"
51 #else
52 #define MOVNTQ "movq"
53 #define SFENCE "/nop"
54 #endif
57 #endif