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

Side by Side Diff: src/frames.cc

Issue 1380863004: Revert of Reland: Remove register index/code indirection (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 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"
15 #include "src/safepoint-table.h" 14 #include "src/safepoint-table.h"
16 #include "src/scopeinfo.h" 15 #include "src/scopeinfo.h"
17 #include "src/string-stream.h" 16 #include "src/string-stream.h"
18 #include "src/vm-state-inl.h" 17 #include "src/vm-state-inl.h"
19 18
20 namespace v8 { 19 namespace v8 {
21 namespace internal { 20 namespace internal {
22 21
23 ReturnAddressLocationResolver 22 ReturnAddressLocationResolver
24 StackFrame::return_address_location_resolver_ = NULL; 23 StackFrame::return_address_location_resolver_ = NULL;
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 if (safepoint_entry.argument_count() > 0) { 651 if (safepoint_entry.argument_count() > 0) {
653 v->VisitPointers(parameters_base, 652 v->VisitPointers(parameters_base,
654 parameters_base + safepoint_entry.argument_count()); 653 parameters_base + safepoint_entry.argument_count());
655 parameters_base += safepoint_entry.argument_count(); 654 parameters_base += safepoint_entry.argument_count();
656 } 655 }
657 656
658 // Skip saved double registers. 657 // Skip saved double registers.
659 if (safepoint_entry.has_doubles()) { 658 if (safepoint_entry.has_doubles()) {
660 // Number of doubles not known at snapshot time. 659 // Number of doubles not known at snapshot time.
661 DCHECK(!isolate()->serializer_enabled()); 660 DCHECK(!isolate()->serializer_enabled());
662 parameters_base += RegisterConfiguration::ArchDefault() 661 parameters_base += DoubleRegister::NumAllocatableRegisters() *
663 ->num_allocatable_double_registers() * 662 kDoubleSize / kPointerSize;
664 kDoubleSize / kPointerSize;
665 } 663 }
666 664
667 // Visit the registers that contain pointers if any. 665 // Visit the registers that contain pointers if any.
668 if (safepoint_entry.HasRegisters()) { 666 if (safepoint_entry.HasRegisters()) {
669 for (int i = kNumSafepointRegisters - 1; i >=0; i--) { 667 for (int i = kNumSafepointRegisters - 1; i >=0; i--) {
670 if (safepoint_entry.HasRegisterAt(i)) { 668 if (safepoint_entry.HasRegisterAt(i)) {
671 int reg_stack_index = MacroAssembler::SafepointRegisterStackIndex(i); 669 int reg_stack_index = MacroAssembler::SafepointRegisterStackIndex(i);
672 v->VisitPointer(parameters_base + reg_stack_index); 670 v->VisitPointer(parameters_base + reg_stack_index);
673 } 671 }
674 } 672 }
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { 1583 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) {
1586 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); 1584 StackFrame* frame = AllocateFrameCopy(it.frame(), zone);
1587 list.Add(frame, zone); 1585 list.Add(frame, zone);
1588 } 1586 }
1589 return list.ToVector(); 1587 return list.ToVector();
1590 } 1588 }
1591 1589
1592 1590
1593 } // namespace internal 1591 } // namespace internal
1594 } // namespace v8 1592 } // 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