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 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
995 } | 996 } |
996 | 997 |
997 void public_set_store_buffer_top(Address* top) { | 998 void public_set_store_buffer_top(Address* top) { |
998 roots_[kStoreBufferTopRootIndex] = reinterpret_cast<Smi*>(top); | 999 roots_[kStoreBufferTopRootIndex] = reinterpret_cast<Smi*>(top); |
999 } | 1000 } |
1000 | 1001 |
1001 void public_set_materialized_objects(FixedArray* objects) { | 1002 void public_set_materialized_objects(FixedArray* objects) { |
1002 roots_[kMaterializedObjectsRootIndex] = objects; | 1003 roots_[kMaterializedObjectsRootIndex] = objects; |
1003 } | 1004 } |
1004 | 1005 |
| 1006 void public_set_interpreter_table(FixedArray* table) { |
| 1007 roots_[kInterpreterTableRootIndex] = table; |
| 1008 } |
| 1009 |
1005 // Generated code can embed this address to get access to the roots. | 1010 // Generated code can embed this address to get access to the roots. |
1006 Object** roots_array_start() { return roots_; } | 1011 Object** roots_array_start() { return roots_; } |
1007 | 1012 |
1008 Address* store_buffer_top_address() { | 1013 Address* store_buffer_top_address() { |
1009 return reinterpret_cast<Address*>(&roots_[kStoreBufferTopRootIndex]); | 1014 return reinterpret_cast<Address*>(&roots_[kStoreBufferTopRootIndex]); |
1010 } | 1015 } |
1011 | 1016 |
1012 static bool RootIsImmortalImmovable(int root_index); | 1017 static bool RootIsImmortalImmovable(int root_index); |
1013 void CheckHandleCount(); | 1018 void CheckHandleCount(); |
1014 | 1019 |
(...skipping 1855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2870 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2875 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2871 | 2876 |
2872 private: | 2877 private: |
2873 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2878 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2874 }; | 2879 }; |
2875 #endif // DEBUG | 2880 #endif // DEBUG |
2876 } | 2881 } |
2877 } // namespace v8::internal | 2882 } // namespace v8::internal |
2878 | 2883 |
2879 #endif // V8_HEAP_HEAP_H_ | 2884 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |