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

Side by Side Diff: src/heap/heap.cc

Issue 1671813003: [interpreter] move the dispatch table off heap. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix verify heap Created 4 years, 10 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/heap/heap.h ('k') | src/ia32/builtins-ia32.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/heap/heap.h" 5 #include "src/heap/heap.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/ast/scopeinfo.h" 9 #include "src/ast/scopeinfo.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 2853 matching lines...) Expand 10 before | Expand all | Expand 10 after
2864 set_array_protector(*cell); 2864 set_array_protector(*cell);
2865 2865
2866 cell = factory->NewPropertyCell(); 2866 cell = factory->NewPropertyCell();
2867 cell->set_value(the_hole_value()); 2867 cell->set_value(the_hole_value());
2868 set_empty_property_cell(*cell); 2868 set_empty_property_cell(*cell);
2869 2869
2870 set_weak_stack_trace_list(Smi::FromInt(0)); 2870 set_weak_stack_trace_list(Smi::FromInt(0));
2871 2871
2872 set_noscript_shared_function_infos(Smi::FromInt(0)); 2872 set_noscript_shared_function_infos(Smi::FromInt(0));
2873 2873
2874 // Will be filled in by Interpreter::Initialize().
2875 set_interpreter_table(
2876 *interpreter::Interpreter::CreateUninitializedInterpreterTable(
2877 isolate()));
2878
2879 // Initialize keyed lookup cache. 2874 // Initialize keyed lookup cache.
2880 isolate_->keyed_lookup_cache()->Clear(); 2875 isolate_->keyed_lookup_cache()->Clear();
2881 2876
2882 // Initialize context slot cache. 2877 // Initialize context slot cache.
2883 isolate_->context_slot_cache()->Clear(); 2878 isolate_->context_slot_cache()->Clear();
2884 2879
2885 // Initialize descriptor cache. 2880 // Initialize descriptor cache.
2886 isolate_->descriptor_lookup_cache()->Clear(); 2881 isolate_->descriptor_lookup_cache()->Clear();
2887 2882
2888 // Initialize compilation cache. 2883 // Initialize compilation cache.
(...skipping 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after
4598 // Iterate over local handles in handle scopes. 4593 // Iterate over local handles in handle scopes.
4599 isolate_->handle_scope_implementer()->Iterate(v); 4594 isolate_->handle_scope_implementer()->Iterate(v);
4600 isolate_->IterateDeferredHandles(v); 4595 isolate_->IterateDeferredHandles(v);
4601 v->Synchronize(VisitorSynchronization::kHandleScope); 4596 v->Synchronize(VisitorSynchronization::kHandleScope);
4602 4597
4603 // Iterate over the builtin code objects and code stubs in the 4598 // Iterate over the builtin code objects and code stubs in the
4604 // heap. Note that it is not necessary to iterate over code objects 4599 // heap. Note that it is not necessary to iterate over code objects
4605 // on scavenge collections. 4600 // on scavenge collections.
4606 if (mode != VISIT_ALL_IN_SCAVENGE) { 4601 if (mode != VISIT_ALL_IN_SCAVENGE) {
4607 isolate_->builtins()->IterateBuiltins(v); 4602 isolate_->builtins()->IterateBuiltins(v);
4603 v->Synchronize(VisitorSynchronization::kBuiltins);
4604 isolate_->interpreter()->IterateDispatchTable(v);
4605 v->Synchronize(VisitorSynchronization::kDispatchTable);
4608 } 4606 }
4609 v->Synchronize(VisitorSynchronization::kBuiltins);
4610 4607
4611 // Iterate over global handles. 4608 // Iterate over global handles.
4612 switch (mode) { 4609 switch (mode) {
4613 case VISIT_ONLY_STRONG: 4610 case VISIT_ONLY_STRONG:
4614 isolate_->global_handles()->IterateStrongRoots(v); 4611 isolate_->global_handles()->IterateStrongRoots(v);
4615 break; 4612 break;
4616 case VISIT_ALL_IN_SCAVENGE: 4613 case VISIT_ALL_IN_SCAVENGE:
4617 isolate_->global_handles()->IterateNewSpaceStrongAndDependentRoots(v); 4614 isolate_->global_handles()->IterateNewSpaceStrongAndDependentRoots(v);
4618 break; 4615 break;
4619 case VISIT_ALL_IN_SWEEP_NEWSPACE: 4616 case VISIT_ALL_IN_SWEEP_NEWSPACE:
(...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after
6215 } 6212 }
6216 6213
6217 6214
6218 // static 6215 // static
6219 int Heap::GetStaticVisitorIdForMap(Map* map) { 6216 int Heap::GetStaticVisitorIdForMap(Map* map) {
6220 return StaticVisitorBase::GetVisitorId(map); 6217 return StaticVisitorBase::GetVisitorId(map);
6221 } 6218 }
6222 6219
6223 } // namespace internal 6220 } // namespace internal
6224 } // namespace v8 6221 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.h ('k') | src/ia32/builtins-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698