equal
deleted
inserted
replaced
32 class VM_Version : public Abstract_VM_Version { |
32 class VM_Version : public Abstract_VM_Version { |
33 public: |
33 public: |
34 protected: |
34 protected: |
35 static int _cpu; |
35 static int _cpu; |
36 static int _model; |
36 static int _model; |
|
37 static int _model2; |
|
38 static int _variant; |
|
39 static int _revision; |
37 static int _stepping; |
40 static int _stepping; |
38 static int _cpuFeatures; // features returned by the "cpuid" instruction |
41 static int _cpuFeatures; // features returned by the "cpuid" instruction |
39 // 0 if this instruction is not available |
42 // 0 if this instruction is not available |
40 static const char* _features_str; |
43 static const char* _features_str; |
41 |
44 |
47 |
50 |
48 // Asserts |
51 // Asserts |
49 static void assert_is_initialized() { |
52 static void assert_is_initialized() { |
50 } |
53 } |
51 |
54 |
|
55 enum { |
|
56 CPU_ARM = 'A', |
|
57 CPU_BROADCOM = 'B', |
|
58 CPU_CAVIUM = 'C', |
|
59 CPU_DEC = 'D', |
|
60 CPU_INFINEON = 'I', |
|
61 CPU_MOTOROLA = 'M', |
|
62 CPU_NVIDIA = 'N', |
|
63 CPU_AMCC = 'P', |
|
64 CPU_QUALCOM = 'Q', |
|
65 CPU_MARVELL = 'V', |
|
66 CPU_INTEL = 'i', |
|
67 } cpuFamily; |
|
68 |
|
69 enum { |
|
70 CPU_FP = (1<<0), |
|
71 CPU_ASIMD = (1<<1), |
|
72 CPU_EVTSTRM = (1<<2), |
|
73 CPU_AES = (1<<3), |
|
74 CPU_PMULL = (1<<4), |
|
75 CPU_SHA1 = (1<<5), |
|
76 CPU_SHA2 = (1<<6), |
|
77 CPU_CRC32 = (1<<7), |
|
78 CPU_A53MAC = (1 << 30), |
|
79 CPU_DMB_ATOMICS = (1 << 31), |
|
80 } cpuFeatureFlags; |
|
81 |
52 static const char* cpu_features() { return _features_str; } |
82 static const char* cpu_features() { return _features_str; } |
|
83 static int cpu_family() { return _cpu; } |
|
84 static int cpu_model() { return _model; } |
|
85 static int cpu_model2() { return _model2; } |
|
86 static int cpu_variant() { return _variant; } |
|
87 static int cpu_revision() { return _revision; } |
|
88 static int cpu_cpuFeatures() { return _cpuFeatures; } |
53 |
89 |
54 }; |
90 }; |
55 |
91 |
56 #endif // CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP |
92 #endif // CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP |