OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 V(NumberDictionary, code_stubs, CodeStubs) \ | 141 V(NumberDictionary, code_stubs, CodeStubs) \ |
142 V(NumberDictionary, non_monomorphic_cache, NonMonomorphicCache) \ | 142 V(NumberDictionary, non_monomorphic_cache, NonMonomorphicCache) \ |
143 V(Code, js_entry_code, JsEntryCode) \ | 143 V(Code, js_entry_code, JsEntryCode) \ |
144 V(Code, js_construct_entry_code, JsConstructEntryCode) \ | 144 V(Code, js_construct_entry_code, JsConstructEntryCode) \ |
145 V(Code, c_entry_code, CEntryCode) \ | 145 V(Code, c_entry_code, CEntryCode) \ |
146 V(Code, c_entry_debug_break_code, CEntryDebugBreakCode) \ | 146 V(Code, c_entry_debug_break_code, CEntryDebugBreakCode) \ |
147 V(FixedArray, number_string_cache, NumberStringCache) \ | 147 V(FixedArray, number_string_cache, NumberStringCache) \ |
148 V(FixedArray, single_character_string_cache, SingleCharacterStringCache) \ | 148 V(FixedArray, single_character_string_cache, SingleCharacterStringCache) \ |
149 V(FixedArray, natives_source_cache, NativesSourceCache) \ | 149 V(FixedArray, natives_source_cache, NativesSourceCache) \ |
150 V(Object, last_script_id, LastScriptId) \ | 150 V(Object, last_script_id, LastScriptId) \ |
| 151 V(Smi, real_stack_limit, RealStackLimit) \ |
151 | 152 |
152 #if V8_TARGET_ARCH_ARM && V8_NATIVE_REGEXP | 153 #if V8_TARGET_ARCH_ARM && V8_NATIVE_REGEXP |
153 #define STRONG_ROOT_LIST(V) \ | 154 #define STRONG_ROOT_LIST(V) \ |
154 UNCONDITIONAL_STRONG_ROOT_LIST(V) \ | 155 UNCONDITIONAL_STRONG_ROOT_LIST(V) \ |
155 V(Code, re_c_entry_code, RegExpCEntryCode) | 156 V(Code, re_c_entry_code, RegExpCEntryCode) |
156 #else | 157 #else |
157 #define STRONG_ROOT_LIST(V) UNCONDITIONAL_STRONG_ROOT_LIST(V) | 158 #define STRONG_ROOT_LIST(V) UNCONDITIONAL_STRONG_ROOT_LIST(V) |
158 #endif | 159 #endif |
159 | 160 |
160 #define ROOT_LIST(V) \ | 161 #define ROOT_LIST(V) \ |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 static bool ConfigureHeapDefault(); | 244 static bool ConfigureHeapDefault(); |
244 | 245 |
245 // Initializes the global object heap. If create_heap_objects is true, | 246 // Initializes the global object heap. If create_heap_objects is true, |
246 // also creates the basic non-mutable objects. | 247 // also creates the basic non-mutable objects. |
247 // Returns whether it succeeded. | 248 // Returns whether it succeeded. |
248 static bool Setup(bool create_heap_objects); | 249 static bool Setup(bool create_heap_objects); |
249 | 250 |
250 // Destroys all memory allocated by the heap. | 251 // Destroys all memory allocated by the heap. |
251 static void TearDown(); | 252 static void TearDown(); |
252 | 253 |
253 // Sets the stack limit in the roots_ array. Some architectures generate code | 254 // Set the stack limit in the roots_ array. Some architectures generate |
254 // that looks here, because it is faster than loading from the static jslimit_ | 255 // code that looks here, because it is faster than loading from the static |
255 // variable. | 256 // jslimit_/real_jslimit_ variable in the StackGuard. |
256 static void SetStackLimit(intptr_t limit); | 257 static void SetStackLimits(); |
257 | 258 |
258 // Returns whether Setup has been called. | 259 // Returns whether Setup has been called. |
259 static bool HasBeenSetup(); | 260 static bool HasBeenSetup(); |
260 | 261 |
261 // Returns the maximum amount of memory reserved for the heap. For | 262 // Returns the maximum amount of memory reserved for the heap. For |
262 // the young generation, we reserve 4 times the amount needed for a | 263 // the young generation, we reserve 4 times the amount needed for a |
263 // semi space. The young generation consists of two semi spaces and | 264 // semi space. The young generation consists of two semi spaces and |
264 // we reserve twice the amount needed for those in order to ensure | 265 // we reserve twice the amount needed for those in order to ensure |
265 // that new space can be aligned to its size. | 266 // that new space can be aligned to its size. |
266 static int MaxReserved() { | 267 static int MaxReserved() { |
(...skipping 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1638 } | 1639 } |
1639 static TranscendentalCache* caches_[kNumberOfCaches]; | 1640 static TranscendentalCache* caches_[kNumberOfCaches]; |
1640 Element elements_[kCacheSize]; | 1641 Element elements_[kCacheSize]; |
1641 Type type_; | 1642 Type type_; |
1642 }; | 1643 }; |
1643 | 1644 |
1644 | 1645 |
1645 } } // namespace v8::internal | 1646 } } // namespace v8::internal |
1646 | 1647 |
1647 #endif // V8_HEAP_H_ | 1648 #endif // V8_HEAP_H_ |
OLD | NEW |