comparison mmx_defs.h @ 2516:9ef4fa15b780

More elegant solution
author nick
date Sun, 28 Oct 2001 17:15:54 +0000
parents
children 4c074b58b4b6
comparison
equal deleted inserted replaced
2515:622cd80caaba 2516:9ef4fa15b780
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 */
6
7 #ifndef MMXDEFS_INCLUDED
8 #define MMXDEFS_INCLUDED
9
10 #include "config.h"
11
12 #undef HAVE_MMX1
13 #if defined(HAVE_MMX) && !defined(HAVE_MMX2) && !defined(HAVE_3DNOW) && !defined(HAVE_SSE)
14 #define HAVE_MMX1
15 #endif
16
17 #undef HAVE_K6_2PLUS
18 #if !defined( HAVE_MMX2 ) && defined( HAVE_3DNOW )
19 #define HAVE_K6_2PLUS
20 #endif
21
22 #ifdef HAVE_SSE2
23 #define MMREG_SIZE 16
24 #else
25 #define MMREG_SIZE 8
26 #endif
27
28 #ifdef HAVE_3DNOW
29 #define PREFETCH "prefetch"
30 #define PREFETCHW "prefetchw"
31 #elif defined ( HAVE_MMX2 )
32 #define PREFETCH "prefetchnta"
33 #define PREFETCHW "prefetcht0"
34 #else
35 #define PREFETCH "/nop"
36 #define PREFETCHW "/nop"
37 #endif
38
39 #ifdef HAVE_K6_2PLUS
40 /* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */
41 #define EMMS "femms"
42 #else
43 #define EMMS "emms"
44 #endif
45
46 #ifdef HAVE_MMX2
47 #define MOVNTQ "movntq"
48 #define SFENCE "sfence"
49 #else
50 #define MOVNTQ "movq"
51 #define SFENCE "/nop"
52 #endif
53
54
55 #endif