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/builtins.h" | 5 #include "src/builtins.h" |
6 | 6 |
7 #include "src/api.h" | 7 #include "src/api.h" |
8 #include "src/api-natives.h" | 8 #include "src/api-natives.h" |
9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
10 #include "src/base/once.h" | 10 #include "src/base/once.h" |
(...skipping 2288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2299 const size_t buffer_size = 10 * KB; | 2299 const size_t buffer_size = 10 * KB; |
2300 #else | 2300 #else |
2301 const size_t buffer_size = 8*KB; | 2301 const size_t buffer_size = 8*KB; |
2302 #endif | 2302 #endif |
2303 union { int force_alignment; byte buffer[buffer_size]; } u; | 2303 union { int force_alignment; byte buffer[buffer_size]; } u; |
2304 | 2304 |
2305 // Traverse the list of builtins and generate an adaptor in a | 2305 // Traverse the list of builtins and generate an adaptor in a |
2306 // separate code object for each one. | 2306 // separate code object for each one. |
2307 for (int i = 0; i < builtin_count; i++) { | 2307 for (int i = 0; i < builtin_count; i++) { |
2308 if (create_heap_objects) { | 2308 if (create_heap_objects) { |
2309 MacroAssembler masm(isolate, u.buffer, sizeof u.buffer); | 2309 MacroAssembler masm(isolate, u.buffer, sizeof u.buffer, |
| 2310 CodeObjectRequired::kYes); |
2310 // Generate the code/adaptor. | 2311 // Generate the code/adaptor. |
2311 typedef void (*Generator)(MacroAssembler*, int, BuiltinExtraArguments); | 2312 typedef void (*Generator)(MacroAssembler*, int, BuiltinExtraArguments); |
2312 Generator g = FUNCTION_CAST<Generator>(functions[i].generator); | 2313 Generator g = FUNCTION_CAST<Generator>(functions[i].generator); |
2313 // We pass all arguments to the generator, but it may not use all of | 2314 // We pass all arguments to the generator, but it may not use all of |
2314 // them. This works because the first arguments are on top of the | 2315 // them. This works because the first arguments are on top of the |
2315 // stack. | 2316 // stack. |
2316 DCHECK(!masm.has_frame()); | 2317 DCHECK(!masm.has_frame()); |
2317 g(&masm, functions[i].name, functions[i].extra_args); | 2318 g(&masm, functions[i].name, functions[i].extra_args); |
2318 // Move the code into the object heap. | 2319 // Move the code into the object heap. |
2319 CodeDesc desc; | 2320 CodeDesc desc; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2402 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C) | 2403 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C) |
2403 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A) | 2404 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A) |
2404 BUILTIN_LIST_H(DEFINE_BUILTIN_ACCESSOR_H) | 2405 BUILTIN_LIST_H(DEFINE_BUILTIN_ACCESSOR_H) |
2405 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A) | 2406 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A) |
2406 #undef DEFINE_BUILTIN_ACCESSOR_C | 2407 #undef DEFINE_BUILTIN_ACCESSOR_C |
2407 #undef DEFINE_BUILTIN_ACCESSOR_A | 2408 #undef DEFINE_BUILTIN_ACCESSOR_A |
2408 | 2409 |
2409 | 2410 |
2410 } // namespace internal | 2411 } // namespace internal |
2411 } // namespace v8 | 2412 } // namespace v8 |
OLD | NEW |