1/* 2 * Copyright (C) 2009 David McPaul 3 * 4 * All rights reserved. Distributed under the terms of the MIT License. 5 */ 6 7#ifndef __CPU_CAPABILITIES__ 8#define __CPU_CAPABILITIES__ 9 10#define CAPABILITY_MMX 1 11#define CAPABILITY_SSE1 2 12#define CAPABILITY_SSE2 3 13#define CAPABILITY_SSE3 4 14#define CAPABILITY_SSSE3 5 15#define CAPABILITY_SSE41 6 16#define CAPABILITY_SSE42 7 17 18 19class CPUCapabilities { 20 public: 21 CPUCapabilities(); 22 ~CPUCapabilities(); 23 24 bool HasMMX(); 25 bool HasSSE1(); 26 bool HasSSE2(); 27 bool HasSSE3(); 28 bool HasSSSE3(); 29 bool HasSSE41(); 30 bool HasSSE42(); 31 32 void PrintCapabilities(); 33 34 private: 35 uint32 capabilities; 36 37#ifdef __i386__ 38 void setIntelCapabilities(); 39#endif 40}; 41 42#endif //__CPU_CAPABILITIES__ 43