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 #include "src/v8.h" | 5 #include "src/v8.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/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 Add(ExternalReference::address_of_real_stack_limit(isolate).address(), | 53 Add(ExternalReference::address_of_real_stack_limit(isolate).address(), |
54 "StackGuard::address_of_real_jslimit()"); | 54 "StackGuard::address_of_real_jslimit()"); |
55 Add(ExternalReference::new_space_start(isolate).address(), | 55 Add(ExternalReference::new_space_start(isolate).address(), |
56 "Heap::NewSpaceStart()"); | 56 "Heap::NewSpaceStart()"); |
57 Add(ExternalReference::new_space_mask(isolate).address(), | 57 Add(ExternalReference::new_space_mask(isolate).address(), |
58 "Heap::NewSpaceMask()"); | 58 "Heap::NewSpaceMask()"); |
59 Add(ExternalReference::new_space_allocation_limit_address(isolate).address(), | 59 Add(ExternalReference::new_space_allocation_limit_address(isolate).address(), |
60 "Heap::NewSpaceAllocationLimitAddress()"); | 60 "Heap::NewSpaceAllocationLimitAddress()"); |
61 Add(ExternalReference::new_space_allocation_top_address(isolate).address(), | 61 Add(ExternalReference::new_space_allocation_top_address(isolate).address(), |
62 "Heap::NewSpaceAllocationTopAddress()"); | 62 "Heap::NewSpaceAllocationTopAddress()"); |
63 Add(ExternalReference::debug_break(isolate).address(), "Debug::Break()"); | |
64 Add(ExternalReference::debug_step_in_fp_address(isolate).address(), | 63 Add(ExternalReference::debug_step_in_fp_address(isolate).address(), |
65 "Debug::step_in_fp_addr()"); | 64 "Debug::step_in_fp_addr()"); |
66 Add(ExternalReference::mod_two_doubles_operation(isolate).address(), | 65 Add(ExternalReference::mod_two_doubles_operation(isolate).address(), |
67 "mod_two_doubles"); | 66 "mod_two_doubles"); |
68 // Keyed lookup cache. | 67 // Keyed lookup cache. |
69 Add(ExternalReference::keyed_lookup_cache_keys(isolate).address(), | 68 Add(ExternalReference::keyed_lookup_cache_keys(isolate).address(), |
70 "KeyedLookupCache::keys()"); | 69 "KeyedLookupCache::keys()"); |
71 Add(ExternalReference::keyed_lookup_cache_field_offsets(isolate).address(), | 70 Add(ExternalReference::keyed_lookup_cache_field_offsets(isolate).address(), |
72 "KeyedLookupCache::field_offsets()"); | 71 "KeyedLookupCache::field_offsets()"); |
73 Add(ExternalReference::handle_scope_next_address(isolate).address(), | 72 Add(ExternalReference::handle_scope_next_address(isolate).address(), |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 FOR_EACH_INTRINSIC(RUNTIME_ENTRY) | 213 FOR_EACH_INTRINSIC(RUNTIME_ENTRY) |
215 #undef RUNTIME_ENTRY | 214 #undef RUNTIME_ENTRY |
216 }; | 215 }; |
217 | 216 |
218 for (unsigned i = 0; i < arraysize(runtime_functions); ++i) { | 217 for (unsigned i = 0; i < arraysize(runtime_functions); ++i) { |
219 ExternalReference ref( | 218 ExternalReference ref( |
220 static_cast<Runtime::FunctionId>(runtime_functions[i].id), isolate); | 219 static_cast<Runtime::FunctionId>(runtime_functions[i].id), isolate); |
221 Add(ref.address(), runtime_functions[i].name); | 220 Add(ref.address(), runtime_functions[i].name); |
222 } | 221 } |
223 | 222 |
224 static const RefTableEntry inline_caches[] = { | |
225 #define IC_ENTRY(name) \ | |
226 { IC::k##name, "IC::" #name } \ | |
227 , | |
228 IC_UTIL_LIST(IC_ENTRY) | |
229 #undef IC_ENTRY | |
230 }; | |
231 | |
232 for (unsigned i = 0; i < arraysize(inline_caches); ++i) { | |
233 ExternalReference ref( | |
234 IC_Utility(static_cast<IC::UtilityId>(inline_caches[i].id)), isolate); | |
235 Add(ref.address(), runtime_functions[i].name); | |
236 } | |
237 | |
238 // Stat counters | 223 // Stat counters |
239 struct StatsRefTableEntry { | 224 struct StatsRefTableEntry { |
240 StatsCounter* (Counters::*counter)(); | 225 StatsCounter* (Counters::*counter)(); |
241 const char* name; | 226 const char* name; |
242 }; | 227 }; |
243 | 228 |
244 static const StatsRefTableEntry stats_ref_table[] = { | 229 static const StatsRefTableEntry stats_ref_table[] = { |
245 #define COUNTER_ENTRY(name, caption) \ | 230 #define COUNTER_ENTRY(name, caption) \ |
246 { &Counters::name, "Counters::" #name } \ | 231 { &Counters::name, "Counters::" #name } \ |
247 , | 232 , |
(...skipping 2550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2798 SerializedCodeData* scd = new SerializedCodeData(cached_data); | 2783 SerializedCodeData* scd = new SerializedCodeData(cached_data); |
2799 SanityCheckResult r = scd->SanityCheck(isolate, source); | 2784 SanityCheckResult r = scd->SanityCheck(isolate, source); |
2800 if (r == CHECK_SUCCESS) return scd; | 2785 if (r == CHECK_SUCCESS) return scd; |
2801 cached_data->Reject(); | 2786 cached_data->Reject(); |
2802 source->GetIsolate()->counters()->code_cache_reject_reason()->AddSample(r); | 2787 source->GetIsolate()->counters()->code_cache_reject_reason()->AddSample(r); |
2803 delete scd; | 2788 delete scd; |
2804 return NULL; | 2789 return NULL; |
2805 } | 2790 } |
2806 } // namespace internal | 2791 } // namespace internal |
2807 } // namespace v8 | 2792 } // namespace v8 |
OLD | NEW |