Flutter Engine
The Flutter Engine
cpuid.h
Go to the documentation of this file.
1// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#ifndef RUNTIME_VM_CPUID_H_
6#define RUNTIME_VM_CPUID_H_
7
8#include "vm/globals.h"
9#if !defined(DART_HOST_OS_MACOS)
10#include "vm/allocation.h"
11#include "vm/cpuinfo.h"
12
13namespace dart {
14
15class CpuId : public AllStatic {
16 public:
17#if defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64)
18 static void Init();
19 static void Cleanup();
20
21 // Caller must free the result of field.
22 static const char* field(CpuInfoIndices idx);
23#else
24 static void Init() {}
25 static void Cleanup() {}
26 static const char* field(CpuInfoIndices idx) { return nullptr; }
27#endif
28
29 private:
30 // Caller must free the result of id_string and brand_string.
31 static const char* id_string();
32 static const char* brand_string();
33
34 static bool sse2() { return sse2_; }
35 static bool sse41() { return sse41_; }
36 static bool popcnt() { return popcnt_; }
37 static bool abm() { return abm_; }
38
39 static bool sse2_;
40 static bool sse41_;
41 static bool popcnt_;
42 static bool abm_;
43 static const char* id_string_;
44 static const char* brand_string_;
45};
46
47} // namespace dart
48
49#endif // !defined(DART_HOST_OS_MACOS)
50#endif // RUNTIME_VM_CPUID_H_
static void Cleanup()
Definition: cpuid.h:25
static void Init()
Definition: cpuid.h:24
static const char * field(CpuInfoIndices idx)
Definition: cpuid.h:26
Definition: dart_vm.cc:33
CpuInfoIndices
Definition: cpuinfo.h:15