xref: /haiku/src/add-ons/media/plugins/ffmpeg/CpuCapabilities.h (revision 5ffbe7d778424c9c59f00b37a3baff5c4c648790)
16bfbea62SDavid McPaul /*
26bfbea62SDavid McPaul  * Copyright (C) 2009 David McPaul
36bfbea62SDavid McPaul  *
46bfbea62SDavid McPaul  * All rights reserved. Distributed under the terms of the MIT License.
56bfbea62SDavid McPaul  */
66bfbea62SDavid McPaul #ifndef __CPU_CAPABILITIES__
76bfbea62SDavid McPaul #define __CPU_CAPABILITIES__
86bfbea62SDavid McPaul 
9fae87f40SStephan Aßmus 
10fae87f40SStephan Aßmus #include <SupportDefs.h>
11fae87f40SStephan Aßmus 
12fae87f40SStephan Aßmus 
136bfbea62SDavid McPaul #define CAPABILITY_MMX 1
146bfbea62SDavid McPaul #define CAPABILITY_SSE1 2
156bfbea62SDavid McPaul #define CAPABILITY_SSE2 3
166bfbea62SDavid McPaul #define CAPABILITY_SSE3 4
176bfbea62SDavid McPaul #define CAPABILITY_SSSE3 5
186bfbea62SDavid McPaul #define CAPABILITY_SSE41 6
196bfbea62SDavid McPaul #define CAPABILITY_SSE42 7
206bfbea62SDavid McPaul 
216bfbea62SDavid McPaul 
226bfbea62SDavid McPaul class CPUCapabilities {
236bfbea62SDavid McPaul public:
246bfbea62SDavid McPaul 								CPUCapabilities();
256bfbea62SDavid McPaul 								~CPUCapabilities();
266bfbea62SDavid McPaul 
276bfbea62SDavid McPaul 			bool 				HasMMX();
286bfbea62SDavid McPaul 			bool 				HasSSE1();
296bfbea62SDavid McPaul 			bool 				HasSSE2();
306bfbea62SDavid McPaul 			bool 				HasSSE3();
316bfbea62SDavid McPaul 			bool 				HasSSSE3();
326bfbea62SDavid McPaul 			bool 				HasSSE41();
336bfbea62SDavid McPaul 			bool 				HasSSE42();
346bfbea62SDavid McPaul 
356bfbea62SDavid McPaul 			void 				PrintCapabilities();
366bfbea62SDavid McPaul 
376bfbea62SDavid McPaul private:
38*5ffbe7d7SAugustin Cavalier #if defined(__i386__) || defined(__x86_64__)
391a37a812SJerome Duval 			void 				_SetIntelCapabilities();
40*5ffbe7d7SAugustin Cavalier #endif // __i386__ || __x86_64__
416bfbea62SDavid McPaul 
421a37a812SJerome Duval 			uint32				fCapabilities;
436bfbea62SDavid McPaul };
446bfbea62SDavid McPaul 
456bfbea62SDavid McPaul #endif	//__CPU_CAPABILITIES__
46