OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/base/cpu.h" | 5 #include "src/base/cpu.h" |
6 | 6 |
7 #if V8_LIBC_MSVCRT | 7 #if V8_LIBC_MSVCRT |
8 #include <intrin.h> // __cpuid() | 8 #include <intrin.h> // __cpuid() |
9 #endif | 9 #endif |
10 #if V8_OS_LINUX | 10 #if V8_OS_LINUX |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 | 408 |
409 // Interpret extended CPU feature information. | 409 // Interpret extended CPU feature information. |
410 if (num_ext_ids > 0x80000000) { | 410 if (num_ext_ids > 0x80000000) { |
411 __cpuid(cpu_info, 0x80000001); | 411 __cpuid(cpu_info, 0x80000001); |
412 has_lzcnt_ = (cpu_info[2] & 0x00000020) != 0; | 412 has_lzcnt_ = (cpu_info[2] & 0x00000020) != 0; |
413 // SAHF must be probed in long mode. | 413 // SAHF must be probed in long mode. |
414 has_sahf_ = (cpu_info[2] & 0x00000001) != 0; | 414 has_sahf_ = (cpu_info[2] & 0x00000001) != 0; |
415 } | 415 } |
416 | 416 |
417 // Check if CPU has non stoppable time stamp counter. | 417 // Check if CPU has non stoppable time stamp counter. |
418 const int parameter_containing_non_stop_time_stamp_counter = 0x80000007; | 418 const unsigned parameter_containing_non_stop_time_stamp_counter = 0x80000007; |
419 if (num_ext_ids >= parameter_containing_non_stop_time_stamp_counter) { | 419 if (num_ext_ids >= parameter_containing_non_stop_time_stamp_counter) { |
420 __cpuid(cpu_info, parameter_containing_non_stop_time_stamp_counter); | 420 __cpuid(cpu_info, parameter_containing_non_stop_time_stamp_counter); |
421 has_non_stop_time_stamp_counter_ = (cpu_info[3] & (1 << 8)) != 0; | 421 has_non_stop_time_stamp_counter_ = (cpu_info[3] & (1 << 8)) != 0; |
422 } | 422 } |
423 | 423 |
424 #elif V8_HOST_ARCH_ARM | 424 #elif V8_HOST_ARCH_ARM |
425 | 425 |
426 #if V8_OS_LINUX | 426 #if V8_OS_LINUX |
427 | 427 |
428 CPUInfo cpu_info; | 428 CPUInfo cpu_info; |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 part_ = PPC_POWER5; | 702 part_ = PPC_POWER5; |
703 break; | 703 break; |
704 } | 704 } |
705 #endif // V8_OS_AIX | 705 #endif // V8_OS_AIX |
706 #endif // !USE_SIMULATOR | 706 #endif // !USE_SIMULATOR |
707 #endif // V8_HOST_ARCH_PPC | 707 #endif // V8_HOST_ARCH_PPC |
708 } | 708 } |
709 | 709 |
710 } // namespace base | 710 } // namespace base |
711 } // namespace v8 | 711 } // namespace v8 |
OLD | NEW |