OLD | NEW |
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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
7 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 #include <map> | 9 #include <map> |
10 | 10 |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 V(FixedArray, microtask_queue, MicrotaskQueue) \ | 190 V(FixedArray, microtask_queue, MicrotaskQueue) \ |
191 V(FixedArray, keyed_load_dummy_vector, KeyedLoadDummyVector) \ | 191 V(FixedArray, keyed_load_dummy_vector, KeyedLoadDummyVector) \ |
192 V(FixedArray, keyed_store_dummy_vector, KeyedStoreDummyVector) \ | 192 V(FixedArray, keyed_store_dummy_vector, KeyedStoreDummyVector) \ |
193 V(FixedArray, detached_contexts, DetachedContexts) \ | 193 V(FixedArray, detached_contexts, DetachedContexts) \ |
194 V(ArrayList, retained_maps, RetainedMaps) \ | 194 V(ArrayList, retained_maps, RetainedMaps) \ |
195 V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ | 195 V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ |
196 V(PropertyCell, array_protector, ArrayProtector) \ | 196 V(PropertyCell, array_protector, ArrayProtector) \ |
197 V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ | 197 V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ |
198 V(Object, weak_stack_trace_list, WeakStackTraceList) \ | 198 V(Object, weak_stack_trace_list, WeakStackTraceList) \ |
199 V(Object, code_stub_context, CodeStubContext) \ | 199 V(Object, code_stub_context, CodeStubContext) \ |
200 V(JSObject, code_stub_exports_object, CodeStubExportsObject) | 200 V(JSObject, code_stub_exports_object, CodeStubExportsObject) \ |
| 201 V(FixedArray, interpreter_table, InterpreterTable) |
201 | 202 |
202 // Entries in this list are limited to Smis and are not visited during GC. | 203 // Entries in this list are limited to Smis and are not visited during GC. |
203 #define SMI_ROOT_LIST(V) \ | 204 #define SMI_ROOT_LIST(V) \ |
204 V(Smi, stack_limit, StackLimit) \ | 205 V(Smi, stack_limit, StackLimit) \ |
205 V(Smi, real_stack_limit, RealStackLimit) \ | 206 V(Smi, real_stack_limit, RealStackLimit) \ |
206 V(Smi, last_script_id, LastScriptId) \ | 207 V(Smi, last_script_id, LastScriptId) \ |
207 V(Smi, arguments_adaptor_deopt_pc_offset, ArgumentsAdaptorDeoptPCOffset) \ | 208 V(Smi, arguments_adaptor_deopt_pc_offset, ArgumentsAdaptorDeoptPCOffset) \ |
208 V(Smi, construct_stub_deopt_pc_offset, ConstructStubDeoptPCOffset) \ | 209 V(Smi, construct_stub_deopt_pc_offset, ConstructStubDeoptPCOffset) \ |
209 V(Smi, getter_stub_deopt_pc_offset, GetterStubDeoptPCOffset) \ | 210 V(Smi, getter_stub_deopt_pc_offset, GetterStubDeoptPCOffset) \ |
210 V(Smi, setter_stub_deopt_pc_offset, SetterStubDeoptPCOffset) | 211 V(Smi, setter_stub_deopt_pc_offset, SetterStubDeoptPCOffset) |
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
997 } | 998 } |
998 | 999 |
999 void public_set_store_buffer_top(Address* top) { | 1000 void public_set_store_buffer_top(Address* top) { |
1000 roots_[kStoreBufferTopRootIndex] = reinterpret_cast<Smi*>(top); | 1001 roots_[kStoreBufferTopRootIndex] = reinterpret_cast<Smi*>(top); |
1001 } | 1002 } |
1002 | 1003 |
1003 void public_set_materialized_objects(FixedArray* objects) { | 1004 void public_set_materialized_objects(FixedArray* objects) { |
1004 roots_[kMaterializedObjectsRootIndex] = objects; | 1005 roots_[kMaterializedObjectsRootIndex] = objects; |
1005 } | 1006 } |
1006 | 1007 |
| 1008 void public_set_interpreter_table(FixedArray* table) { |
| 1009 roots_[kInterpreterTableRootIndex] = table; |
| 1010 } |
| 1011 |
1007 // Generated code can embed this address to get access to the roots. | 1012 // Generated code can embed this address to get access to the roots. |
1008 Object** roots_array_start() { return roots_; } | 1013 Object** roots_array_start() { return roots_; } |
1009 | 1014 |
1010 Address* store_buffer_top_address() { | 1015 Address* store_buffer_top_address() { |
1011 return reinterpret_cast<Address*>(&roots_[kStoreBufferTopRootIndex]); | 1016 return reinterpret_cast<Address*>(&roots_[kStoreBufferTopRootIndex]); |
1012 } | 1017 } |
1013 | 1018 |
1014 static bool RootIsImmortalImmovable(int root_index); | 1019 static bool RootIsImmortalImmovable(int root_index); |
1015 void CheckHandleCount(); | 1020 void CheckHandleCount(); |
1016 | 1021 |
(...skipping 1855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2872 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2877 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2873 | 2878 |
2874 private: | 2879 private: |
2875 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2880 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2876 }; | 2881 }; |
2877 #endif // DEBUG | 2882 #endif // DEBUG |
2878 } | 2883 } |
2879 } // namespace v8::internal | 2884 } // namespace v8::internal |
2880 | 2885 |
2881 #endif // V8_HEAP_HEAP_H_ | 2886 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |