annotate mmx_defs.h @ 13568:1cb0e1833515

Currently vbeGetProtModeInfo call the 0x4f0a function of int 10h the get a simple 32 bits protected mode interface to some VESA functions. This protected mode interface is interesting because it's quicker than the raw int 10h interface. Unfortunatly, begining with VBE 3.0, the 0x4f0a function is optional, and some video cards don't implement it (3dfx, intel 845/855/865...). This protected mode interface is then only used in vbeSetWindow and vbeSetDisplayStart : ?- vbeSetWindow already implement an alternative methode if protected mode interface is not available. ?- vbeSetDisplayStart also contain an alternative implementation, but this one is disabled with a #if 0. I don't exactly know why because it works well ! So currently, cards which don't have the 0x4f0a function are not supported. This patch correct this. ?- vbeGetProtModeInfo failure is not fatal. ?- vbeSetDisplayStart has it's alternative implementation reenabled. ? ?it's used only with cards which don't have the 0x4f0a function ? ?so this won't make any difference for cards which were already ? ?working. This patch also make the failure of vbeGetModeInfo not fatal. The VBE 3.0 standard state that GetModeInfo can fail with some mode which are listed as supported if the mode can't be used in the current situation (not enough video memory for example). So a failure of vbeGetModeInfo don't mean that other modes won't work and should really not be fatal. patch by Aurelien Jacobs <aurel@gnuage.org>
author faust3
date Wed, 06 Oct 2004 08:42:13 +0000
parents e9bd97d5c5cc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2516
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
1 /*
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
2 This file contains most common definitions to make MMX stuff
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
3 easy portable between different kinds of mmx clones
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
4 Written By Nick Kurshev <nickols_k@mail.ru>
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
5 */
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
6
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
7 #ifndef MMXDEFS_INCLUDED
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
8 #define MMXDEFS_INCLUDED
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
9
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
10 #include "config.h"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
11
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
12 #undef HAVE_MMX1
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
13 #if defined(HAVE_MMX) && !defined(HAVE_MMX2) && !defined(HAVE_3DNOW) && !defined(HAVE_SSE)
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
14 #define HAVE_MMX1
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
15 #endif
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
16
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
17 #undef HAVE_K6_2PLUS
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
18 #if !defined( HAVE_MMX2 ) && defined( HAVE_3DNOW )
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
19 #define HAVE_K6_2PLUS
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
20 #endif
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
21
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
22 #ifdef HAVE_SSE2
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
23 #define MMREG_SIZE 16
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
24 #else
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
25 #define MMREG_SIZE 8
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
26 #endif
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
27
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
28 #ifdef HAVE_3DNOW
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
29 #define PREFETCH "prefetch"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
30 #define PREFETCHW "prefetchw"
2551
4c074b58b4b6 PAVGB support
nick
parents: 2516
diff changeset
31 #define PAVGB "pavgusb"
2516
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
32 #elif defined ( HAVE_MMX2 )
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
33 #define PREFETCH "prefetchnta"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
34 #define PREFETCHW "prefetcht0"
2551
4c074b58b4b6 PAVGB support
nick
parents: 2516
diff changeset
35 #define PAVGB "pavgb"
2516
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
36 #else
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
37 #define PREFETCH "/nop"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
38 #define PREFETCHW "/nop"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
39 #endif
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
40
2551
4c074b58b4b6 PAVGB support
nick
parents: 2516
diff changeset
41 #ifdef HAVE_3DNOW
2516
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
42 /* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
43 #define EMMS "femms"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
44 #else
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
45 #define EMMS "emms"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
46 #endif
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
47
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
48 #ifdef HAVE_MMX2
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
49 #define MOVNTQ "movntq"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
50 #define SFENCE "sfence"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
51 #else
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
52 #define MOVNTQ "movq"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
53 #define SFENCE "/nop"
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
54 #endif
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
55
9ef4fa15b780 More elegant solution
nick
parents:
diff changeset
56
6335
e9bd97d5c5cc warning & newline fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents: 2551
diff changeset
57 #endif