| Index: runtime/vm/cpuid.h
|
| ===================================================================
|
| --- runtime/vm/cpuid.h (revision 0)
|
| +++ runtime/vm/cpuid.h (revision 0)
|
| @@ -0,0 +1,48 @@
|
| +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +#ifndef VM_CPUID_H_
|
| +#define VM_CPUID_H_
|
| +
|
| +#include "vm/globals.h"
|
| +#if !defined(TARGET_OS_MACOS)
|
| +#include "vm/allocation.h"
|
| +#include "vm/cpuinfo.h"
|
| +
|
| +namespace dart {
|
| +
|
| +class CpuId : public AllStatic {
|
| + public:
|
| +#if defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64)
|
| + static void InitOnce();
|
| + static void Cleanup();
|
| +
|
| + // Caller must free the result of field.
|
| + static const char* field(CpuInfoIndices idx);
|
| +#else
|
| + static void InitOnce() {}
|
| + static void Cleanup() {}
|
| + static const char* field(CpuInfoIndices idx) { return NULL; }
|
| +#endif
|
| +
|
| + static bool sse2() { return sse2_; }
|
| + static bool sse41() { return sse41_; }
|
| +
|
| + // Caller must free the result of id_string and brand_string.
|
| + static const char* id_string();
|
| + static const char* brand_string();
|
| +
|
| + private:
|
| + static bool sse2_;
|
| + static bool sse41_;
|
| + static const char* id_string_;
|
| + static const char* brand_string_;
|
| +
|
| + static void GetCpuId(int32_t level, uint32_t info[4]);
|
| +};
|
| +
|
| +} // namespace dart
|
| +
|
| +#endif // !defined(TARGET_OS_MACOS)
|
| +#endif // VM_CPUID_H_
|
|
|