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

Side by Side Diff: src/frames.cc

Issue 1287383003: Re-reland: Remove register index/code indirection (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix MIPS tests again Created 5 years, 2 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/deoptimizer.cc ('k') | src/hydrogen.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/frames.h" 5 #include "src/frames.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/ast.h" 9 #include "src/ast.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
11 #include "src/deoptimizer.h" 11 #include "src/deoptimizer.h"
12 #include "src/frames-inl.h" 12 #include "src/frames-inl.h"
13 #include "src/full-codegen/full-codegen.h" 13 #include "src/full-codegen/full-codegen.h"
14 #include "src/register-configuration.h"
14 #include "src/safepoint-table.h" 15 #include "src/safepoint-table.h"
15 #include "src/scopeinfo.h" 16 #include "src/scopeinfo.h"
16 #include "src/string-stream.h" 17 #include "src/string-stream.h"
17 #include "src/vm-state-inl.h" 18 #include "src/vm-state-inl.h"
18 19
19 namespace v8 { 20 namespace v8 {
20 namespace internal { 21 namespace internal {
21 22
22 ReturnAddressLocationResolver 23 ReturnAddressLocationResolver
23 StackFrame::return_address_location_resolver_ = NULL; 24 StackFrame::return_address_location_resolver_ = NULL;
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 if (safepoint_entry.argument_count() > 0) { 652 if (safepoint_entry.argument_count() > 0) {
652 v->VisitPointers(parameters_base, 653 v->VisitPointers(parameters_base,
653 parameters_base + safepoint_entry.argument_count()); 654 parameters_base + safepoint_entry.argument_count());
654 parameters_base += safepoint_entry.argument_count(); 655 parameters_base += safepoint_entry.argument_count();
655 } 656 }
656 657
657 // Skip saved double registers. 658 // Skip saved double registers.
658 if (safepoint_entry.has_doubles()) { 659 if (safepoint_entry.has_doubles()) {
659 // Number of doubles not known at snapshot time. 660 // Number of doubles not known at snapshot time.
660 DCHECK(!isolate()->serializer_enabled()); 661 DCHECK(!isolate()->serializer_enabled());
661 parameters_base += DoubleRegister::NumAllocatableRegisters() * 662 parameters_base += RegisterConfiguration::ArchDefault()
662 kDoubleSize / kPointerSize; 663 ->num_allocatable_double_registers() *
664 kDoubleSize / kPointerSize;
663 } 665 }
664 666
665 // Visit the registers that contain pointers if any. 667 // Visit the registers that contain pointers if any.
666 if (safepoint_entry.HasRegisters()) { 668 if (safepoint_entry.HasRegisters()) {
667 for (int i = kNumSafepointRegisters - 1; i >=0; i--) { 669 for (int i = kNumSafepointRegisters - 1; i >=0; i--) {
668 if (safepoint_entry.HasRegisterAt(i)) { 670 if (safepoint_entry.HasRegisterAt(i)) {
669 int reg_stack_index = MacroAssembler::SafepointRegisterStackIndex(i); 671 int reg_stack_index = MacroAssembler::SafepointRegisterStackIndex(i);
670 v->VisitPointer(parameters_base + reg_stack_index); 672 v->VisitPointer(parameters_base + reg_stack_index);
671 } 673 }
672 } 674 }
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
1583 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { 1585 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) {
1584 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); 1586 StackFrame* frame = AllocateFrameCopy(it.frame(), zone);
1585 list.Add(frame, zone); 1587 list.Add(frame, zone);
1586 } 1588 }
1587 return list.ToVector(); 1589 return list.ToVector();
1588 } 1590 }
1589 1591
1590 1592
1591 } // namespace internal 1593 } // namespace internal
1592 } // namespace v8 1594 } // namespace v8
OLDNEW
« no previous file with comments | « src/deoptimizer.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698