Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: src/base/cpu.cc

Issue 1806893002: Reland PPC portion of "Detect cache line size on Linux for PPC hosts." (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/base/cpu.h ('k') | src/ppc/assembler-ppc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 : stepping_(0), 305 : stepping_(0),
306 model_(0), 306 model_(0),
307 ext_model_(0), 307 ext_model_(0),
308 family_(0), 308 family_(0),
309 ext_family_(0), 309 ext_family_(0),
310 type_(0), 310 type_(0),
311 implementer_(0), 311 implementer_(0),
312 architecture_(0), 312 architecture_(0),
313 variant_(-1), 313 variant_(-1),
314 part_(0), 314 part_(0),
315 icache_line_size_(UNKNOWN_CACHE_LINE_SIZE),
316 dcache_line_size_(UNKNOWN_CACHE_LINE_SIZE),
315 has_fpu_(false), 317 has_fpu_(false),
316 has_cmov_(false), 318 has_cmov_(false),
317 has_sahf_(false), 319 has_sahf_(false),
318 has_mmx_(false), 320 has_mmx_(false),
319 has_sse_(false), 321 has_sse_(false),
320 has_sse2_(false), 322 has_sse2_(false),
321 has_sse3_(false), 323 has_sse3_(false),
322 has_ssse3_(false), 324 has_ssse3_(false),
323 has_sse41_(false), 325 has_sse41_(false),
324 has_sse42_(false), 326 has_sse42_(false),
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 #if V8_TARGET_ARCH_PPC64 639 #if V8_TARGET_ARCH_PPC64
638 Elf64_auxv_t entry; 640 Elf64_auxv_t entry;
639 #else 641 #else
640 Elf32_auxv_t entry; 642 Elf32_auxv_t entry;
641 #endif 643 #endif
642 for (;;) { 644 for (;;) {
643 size_t n = fread(&entry, sizeof(entry), 1, fp); 645 size_t n = fread(&entry, sizeof(entry), 1, fp);
644 if (n == 0 || entry.a_type == AT_NULL) { 646 if (n == 0 || entry.a_type == AT_NULL) {
645 break; 647 break;
646 } 648 }
647 if (entry.a_type == AT_PLATFORM) { 649 switch (entry.a_type) {
648 auxv_cpu_type = reinterpret_cast<char*>(entry.a_un.a_val); 650 case AT_PLATFORM:
649 break; 651 auxv_cpu_type = reinterpret_cast<char*>(entry.a_un.a_val);
652 break;
653 case AT_ICACHEBSIZE:
654 icache_line_size_ = entry.a_un.a_val;
655 break;
656 case AT_DCACHEBSIZE:
657 dcache_line_size_ = entry.a_un.a_val;
658 break;
650 } 659 }
651 } 660 }
652 fclose(fp); 661 fclose(fp);
653 } 662 }
654 663
655 part_ = -1; 664 part_ = -1;
656 if (auxv_cpu_type) { 665 if (auxv_cpu_type) {
657 if (strcmp(auxv_cpu_type, "power8") == 0) { 666 if (strcmp(auxv_cpu_type, "power8") == 0) {
658 part_ = PPC_POWER8; 667 part_ = PPC_POWER8;
659 } else if (strcmp(auxv_cpu_type, "power7") == 0) { 668 } else if (strcmp(auxv_cpu_type, "power7") == 0) {
(...skipping 26 matching lines...) Expand all
686 part_ = PPC_POWER5; 695 part_ = PPC_POWER5;
687 break; 696 break;
688 } 697 }
689 #endif // V8_OS_AIX 698 #endif // V8_OS_AIX
690 #endif // !USE_SIMULATOR 699 #endif // !USE_SIMULATOR
691 #endif // V8_HOST_ARCH_PPC 700 #endif // V8_HOST_ARCH_PPC
692 } 701 }
693 702
694 } // namespace base 703 } // namespace base
695 } // namespace v8 704 } // namespace v8
OLDNEW
« no previous file with comments | « src/base/cpu.h ('k') | src/ppc/assembler-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698