~ubuntu-branches/ubuntu/vivid/freerdp/vivid

« back to all changes in this revision

Viewing changes to winpr/libwinpr/sysinfo/test/TestCPUFeatures.c

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2014-11-11 12:20:50 UTC
  • mfrom: (1.1.9) (9.1.17 sid)
  • Revision ID: package-import@ubuntu.com-20141111122050-wyr8hrnwco9fcmum
Tags: 1.1.0~git20140921.1.440916e+dfsg1-2ubuntu1
* Merge with Debian unstable, remaining changes
  - Disable ffmpeg support
* Disable gstreamer support, this relies on gstreamer 0.10 and we don't want
  to add any more deps on that.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#include <winpr/crt.h>
 
3
#include <winpr/sysinfo.h>
 
4
#include <winpr/platform.h>
 
5
 
 
6
#define TEST_FEATURE(feature) printf("\t" #feature ":  %s\n", IsProcessorFeaturePresent(feature) ? "yes" : "no")
 
7
#define TEST_FEATURE_EX(feature) printf("\t" #feature ":  %s\n", IsProcessorFeaturePresentEx(feature) ? "yes" : "no")
 
8
int TestCPUFeatures(int argc, char* argv[])
 
9
{
 
10
        printf("Base CPU Flags:\n");
 
11
#ifdef _M_IX86_AMD64
 
12
        TEST_FEATURE(PF_MMX_INSTRUCTIONS_AVAILABLE);
 
13
        TEST_FEATURE(PF_XMMI_INSTRUCTIONS_AVAILABLE);
 
14
        TEST_FEATURE(PF_XMMI64_INSTRUCTIONS_AVAILABLE);
 
15
        TEST_FEATURE(PF_3DNOW_INSTRUCTIONS_AVAILABLE);
 
16
        TEST_FEATURE(PF_SSE3_INSTRUCTIONS_AVAILABLE);
 
17
        printf("\n");
 
18
        printf("Extended CPU Flags (not found in windows API):\n");
 
19
        TEST_FEATURE_EX(PF_EX_3DNOW_PREFETCH);
 
20
        TEST_FEATURE_EX(PF_EX_SSSE3);
 
21
        TEST_FEATURE_EX(PF_EX_SSE41);
 
22
        TEST_FEATURE_EX(PF_EX_SSE42);
 
23
        TEST_FEATURE_EX(PF_EX_AVX);
 
24
        TEST_FEATURE_EX(PF_EX_FMA);
 
25
        TEST_FEATURE_EX(PF_EX_AVX_AES);
 
26
        TEST_FEATURE_EX(PF_EX_AVX_PCLMULQDQ);
 
27
#elif defined(_M_ARM)
 
28
        TEST_FEATURE(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE);
 
29
        TEST_FEATURE(PF_ARM_THUMB);
 
30
        TEST_FEATURE(PF_ARM_VFP_32_REGISTERS_AVAILABLE);
 
31
        TEST_FEATURE(PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE);
 
32
        TEST_FEATURE(PF_ARM_VFP3);
 
33
        TEST_FEATURE(PF_ARM_THUMB);
 
34
        TEST_FEATURE(PF_ARM_JAZELLE);
 
35
        TEST_FEATURE(PF_ARM_DSP);
 
36
        TEST_FEATURE(PF_ARM_THUMB2);
 
37
        TEST_FEATURE(PF_ARM_T2EE);
 
38
        TEST_FEATURE(PF_ARM_INTEL_WMMX);
 
39
        printf("Extended CPU Flags (not found in windows API):\n");
 
40
        TEST_FEATURE_EX(PF_EX_ARM_VFP1);
 
41
        TEST_FEATURE_EX(PF_EX_ARM_VFP3D16);
 
42
        TEST_FEATURE_EX(PF_EX_ARM_VFP4);
 
43
        TEST_FEATURE_EX(PF_EX_ARM_IDIVA);
 
44
        TEST_FEATURE_EX(PF_EX_ARM_IDIVT);
 
45
#endif
 
46
        printf("\n");
 
47
        return 0;
 
48
}