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

Side by Side Diff: src/frames.cc

Issue 1365073002: Revert of Remove register index/code indirection (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 3 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 22
24 ReturnAddressLocationResolver 23 ReturnAddressLocationResolver
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 if (safepoint_entry.argument_count() > 0) { 636 if (safepoint_entry.argument_count() > 0) {
638 v->VisitPointers(parameters_base, 637 v->VisitPointers(parameters_base,
639 parameters_base + safepoint_entry.argument_count()); 638 parameters_base + safepoint_entry.argument_count());
640 parameters_base += safepoint_entry.argument_count(); 639 parameters_base += safepoint_entry.argument_count();
641 } 640 }
642 641
643 // Skip saved double registers. 642 // Skip saved double registers.
644 if (safepoint_entry.has_doubles()) { 643 if (safepoint_entry.has_doubles()) {
645 // Number of doubles not known at snapshot time. 644 // Number of doubles not known at snapshot time.
646 DCHECK(!isolate()->serializer_enabled()); 645 DCHECK(!isolate()->serializer_enabled());
647 parameters_base += RegisterConfiguration::ArchDefault() 646 parameters_base += DoubleRegister::NumAllocatableRegisters() *
648 ->num_allocatable_double_registers() * 647 kDoubleSize / kPointerSize;
649 kDoubleSize / kPointerSize;
650 } 648 }
651 649
652 // Visit the registers that contain pointers if any. 650 // Visit the registers that contain pointers if any.
653 if (safepoint_entry.HasRegisters()) { 651 if (safepoint_entry.HasRegisters()) {
654 for (int i = kNumSafepointRegisters - 1; i >=0; i--) { 652 for (int i = kNumSafepointRegisters - 1; i >=0; i--) {
655 if (safepoint_entry.HasRegisterAt(i)) { 653 if (safepoint_entry.HasRegisterAt(i)) {
656 int reg_stack_index = MacroAssembler::SafepointRegisterStackIndex(i); 654 int reg_stack_index = MacroAssembler::SafepointRegisterStackIndex(i);
657 v->VisitPointer(parameters_base + reg_stack_index); 655 v->VisitPointer(parameters_base + reg_stack_index);
658 } 656 }
659 } 657 }
(...skipping 905 matching lines...) Expand 10 before | Expand all | Expand 10 after
1565 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { 1563 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) {
1566 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); 1564 StackFrame* frame = AllocateFrameCopy(it.frame(), zone);
1567 list.Add(frame, zone); 1565 list.Add(frame, zone);
1568 } 1566 }
1569 return list.ToVector(); 1567 return list.ToVector();
1570 } 1568 }
1571 1569
1572 1570
1573 } // namespace internal 1571 } // namespace internal
1574 } // namespace v8 1572 } // 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