112 for (
int type_code = 0; type_code <
kTypeCodeCount; type_code++) {
117 Add(ExternalReference::roots_array_start(isolate).
address(),
118 "Heap::roots_array_start()");
119 Add(ExternalReference::address_of_stack_limit(isolate).
address(),
120 "StackGuard::address_of_jslimit()");
121 Add(ExternalReference::address_of_real_stack_limit(isolate).
address(),
122 "StackGuard::address_of_real_jslimit()");
123 Add(ExternalReference::new_space_start(isolate).
address(),
124 "Heap::NewSpaceStart()");
125 Add(ExternalReference::new_space_mask(isolate).
address(),
126 "Heap::NewSpaceMask()");
127 Add(ExternalReference::new_space_allocation_limit_address(isolate).
address(),
128 "Heap::NewSpaceAllocationLimitAddress()");
129 Add(ExternalReference::new_space_allocation_top_address(isolate).
address(),
130 "Heap::NewSpaceAllocationTopAddress()");
131 Add(ExternalReference::debug_break(isolate).
address(),
"Debug::Break()");
132 Add(ExternalReference::debug_step_in_fp_address(isolate).
address(),
133 "Debug::step_in_fp_addr()");
134 Add(ExternalReference::mod_two_doubles_operation(isolate).
address(),
137 Add(ExternalReference::keyed_lookup_cache_keys(isolate).
address(),
138 "KeyedLookupCache::keys()");
139 Add(ExternalReference::keyed_lookup_cache_field_offsets(isolate).
address(),
140 "KeyedLookupCache::field_offsets()");
141 Add(ExternalReference::handle_scope_next_address(isolate).
address(),
142 "HandleScope::next");
143 Add(ExternalReference::handle_scope_limit_address(isolate).
address(),
144 "HandleScope::limit");
145 Add(ExternalReference::handle_scope_level_address(isolate).
address(),
146 "HandleScope::level");
147 Add(ExternalReference::new_deoptimizer_function(isolate).
address(),
148 "Deoptimizer::New()");
149 Add(ExternalReference::compute_output_frames_function(isolate).
address(),
150 "Deoptimizer::ComputeOutputFrames()");
151 Add(ExternalReference::address_of_min_int().
address(),
152 "LDoubleConstant::min_int");
153 Add(ExternalReference::address_of_one_half().
address(),
154 "LDoubleConstant::one_half");
155 Add(ExternalReference::isolate_address(isolate).
address(),
"isolate");
156 Add(ExternalReference::address_of_negative_infinity().
address(),
157 "LDoubleConstant::negative_infinity");
158 Add(ExternalReference::power_double_double_function(isolate).
address(),
159 "power_double_double_function");
160 Add(ExternalReference::power_double_int_function(isolate).
address(),
161 "power_double_int_function");
162 Add(ExternalReference::math_log_double_function(isolate).
address(),
164 Add(ExternalReference::store_buffer_top(isolate).
address(),
166 Add(ExternalReference::address_of_canonical_non_hole_nan().
address(),
168 Add(ExternalReference::address_of_the_hole_nan().
address(),
"the_hole_nan");
169 Add(ExternalReference::get_date_field_function(isolate).
address(),
171 Add(ExternalReference::date_cache_stamp(isolate).
address(),
173 Add(ExternalReference::address_of_pending_message_obj(isolate).
address(),
174 "address_of_pending_message_obj");
175 Add(ExternalReference::address_of_has_pending_message(isolate).
address(),
176 "address_of_has_pending_message");
177 Add(ExternalReference::address_of_pending_message_script(isolate).
address(),
178 "pending_message_script");
179 Add(ExternalReference::get_make_code_young_function(isolate).
address(),
180 "Code::MakeCodeYoung");
181 Add(ExternalReference::cpu_features().
address(),
"cpu_features");
182 Add(ExternalReference(Runtime::kAllocateInNewSpace, isolate).
address(),
183 "Runtime::AllocateInNewSpace");
184 Add(ExternalReference(Runtime::kAllocateInTargetSpace, isolate).
address(),
185 "Runtime::AllocateInTargetSpace");
186 Add(ExternalReference::old_pointer_space_allocation_top_address(isolate)
188 "Heap::OldPointerSpaceAllocationTopAddress");
189 Add(ExternalReference::old_pointer_space_allocation_limit_address(isolate)
191 "Heap::OldPointerSpaceAllocationLimitAddress");
192 Add(ExternalReference::old_data_space_allocation_top_address(isolate)
194 "Heap::OldDataSpaceAllocationTopAddress");
195 Add(ExternalReference::old_data_space_allocation_limit_address(isolate)
197 "Heap::OldDataSpaceAllocationLimitAddress");
198 Add(ExternalReference::allocation_sites_list_address(isolate).
address(),
199 "Heap::allocation_sites_list_address()");
200 Add(ExternalReference::address_of_uint32_bias().
address(),
"uint32_bias");
201 Add(ExternalReference::get_mark_code_as_executed_function(isolate).
address(),
202 "Code::MarkCodeAsExecuted");
203 Add(ExternalReference::is_profiling_address(isolate).
address(),
204 "CpuProfiler::is_profiling");
205 Add(ExternalReference::scheduled_exception_address(isolate).
address(),
206 "Isolate::scheduled_exception");
207 Add(ExternalReference::invoke_function_callback(isolate).
address(),
208 "InvokeFunctionCallback");
209 Add(ExternalReference::invoke_accessor_getter_callback(isolate).
address(),
210 "InvokeAccessorGetterCallback");
211 Add(ExternalReference::flush_icache_function(isolate).
address(),
212 "CpuFeatures::FlushICache");
213 Add(ExternalReference::log_enter_external_function(isolate).
address(),
214 "Logger::EnterExternal");
215 Add(ExternalReference::log_leave_external_function(isolate).
address(),
216 "Logger::LeaveExternal");
217 Add(ExternalReference::address_of_minus_one_half().
address(),
218 "double_constants.minus_one_half");
219 Add(ExternalReference::stress_deopt_count(isolate).
address(),
220 "Isolate::stress_deopt_count_address()");
221 Add(ExternalReference::incremental_marking_record_write_function(isolate)
223 "IncrementalMarking::RecordWriteFromCode");
226 Add(ExternalReference::debug_after_break_target_address(isolate).
address(),
227 "Debug::after_break_target_address()");
228 Add(ExternalReference::debug_restarter_frame_function_pointer_address(isolate)
230 "Debug::restarter_frame_function_pointer_address()");
231 Add(ExternalReference::debug_is_active_address(isolate).
address(),
232 "Debug::is_active_address()");
234 #ifndef V8_INTERPRETED_REGEXP
235 Add(ExternalReference::re_case_insensitive_compare_uc16(isolate).
address(),
236 "NativeRegExpMacroAssembler::CaseInsensitiveCompareUC16()");
237 Add(ExternalReference::re_check_stack_guard_state(isolate).
address(),
238 "RegExpMacroAssembler*::CheckStackGuardState()");
239 Add(ExternalReference::re_grow_stack(isolate).
address(),
240 "NativeRegExpMacroAssembler::GrowStack()");
241 Add(ExternalReference::re_word_character_map().
address(),
242 "NativeRegExpMacroAssembler::word_character_map");
243 Add(ExternalReference::address_of_regexp_stack_limit(isolate).
address(),
244 "RegExpStack::limit_address()");
245 Add(ExternalReference::address_of_regexp_stack_memory_address(isolate)
247 "RegExpStack::memory_address()");
248 Add(ExternalReference::address_of_regexp_stack_memory_size(isolate).
address(),
249 "RegExpStack::memory_size()");
250 Add(ExternalReference::address_of_static_offsets_vector(isolate).
address(),
251 "OffsetsVector::static_offsets_vector");
262 struct RefTableEntry {
268 static const RefTableEntry ref_table[] = {
270 #define DEF_ENTRY_C(name, ignored) \
272 Builtins::c_##name, \
273 "Builtins::" #name },
278 #define DEF_ENTRY_C(name, ignored) \
281 "Builtins::" #name },
282 #define DEF_ENTRY_A(name, kind, state, extra) DEF_ENTRY_C(name, ignored)
291 #define RUNTIME_ENTRY(name, nargs, ressize) \
292 { RUNTIME_FUNCTION, \
300 #define INLINE_OPTIMIZED_ENTRY(name, nargs, ressize) \
301 { RUNTIME_FUNCTION, \
302 Runtime::kInlineOptimized##name, \
306 #undef INLINE_OPTIMIZED_ENTRY
309 #define IC_ENTRY(name) \
326 struct StatsRefTableEntry {
327 StatsCounter* (Counters::*counter)();
332 const StatsRefTableEntry stats_ref_table[] = {
333 #define COUNTER_ENTRY(name, caption) \
335 Counters::k_##name, \
336 "Counters::" #name },
343 Counters* counters = isolate->counters();
344 for (
size_t i = 0;
i <
arraysize(stats_ref_table); ++
i) {
346 (counters->*(stats_ref_table[
i].counter))())),
348 stats_ref_table[
i].id,
349 stats_ref_table[
i].name);
354 const char* AddressNames[] = {
355 #define BUILD_NAME_LITERAL(CamelName, hacker_name) \
356 "Isolate::" #hacker_name "_address",
359 #undef BUILD_NAME_LITERAL
368 #define ACCESSOR_INFO_DECLARATION(name) \
369 Add(FUNCTION_ADDR(&Accessors::name##Getter), \
371 Accessors::k##name##Getter, \
372 "Accessors::" #name "Getter"); \
373 Add(FUNCTION_ADDR(&Accessors::name##Setter), \
375 Accessors::k##name##Setter, \
376 "Accessors::" #name "Setter");
378 #undef ACCESSOR_INFO_DECLARATION
380 StubCache* stub_cache = isolate->stub_cache();
397 Add(ExternalReference::delete_handle_scope_extensions(isolate).
address(),
399 Add(ExternalReference::incremental_marking_record_write_function(isolate)
402 Add(ExternalReference::store_buffer_overflow_function(isolate).
address(),
407 HandleScope scope(isolate);
#define ACCESSOR_INFO_LIST(V)
#define BUILTIN_LIST_C(V)
#define BUILTIN_LIST_DEBUG_A(V)
#define BUILTIN_LIST_A(V)
static Address GetDeoptimizationEntry(Isolate *isolate, int id, BailoutType type, GetEntryMode mode=ENSURE_ENTRY_CODE)
@ CALCULATE_ENTRY_ADDRESS
void AddFromId(TypeCode type, uint16_t id, const char *name, Isolate *isolate)
#define STATS_COUNTER_LIST_1(SC)
#define STATS_COUNTER_LIST_2(SC)
#define IC_UTIL_LIST(ICU)
#define FOR_EACH_ISOLATE_ADDRESS_NAME(C)
const int kDeoptTableSerializeEntryCount
static int * GetInternalPointer(StatsCounter *counter)
#define INLINE_OPTIMIZED_FUNCTION_LIST(F)
#define RUNTIME_FUNCTION_LIST(F)
#define BUILD_NAME_LITERAL(CamelName, hacker_name)
#define COUNTER_ENTRY(name, caption)
#define INLINE_OPTIMIZED_ENTRY(name, nargs, ressize)
#define DEF_ENTRY_C(name, ignored)
#define DEF_ENTRY_A(name, kind, state, extra)
#define ACCESSOR_INFO_DECLARATION(name)