OLD | NEW |
---|---|
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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_BUILTINS_H_ | 5 #ifndef V8_BUILTINS_H_ |
6 #define V8_BUILTINS_H_ | 6 #define V8_BUILTINS_H_ |
7 | 7 |
8 #include "src/base/flags.h" | 8 #include "src/base/flags.h" |
9 #include "src/handles.h" | 9 #include "src/handles.h" |
10 | 10 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
170 \ | 170 \ |
171 V(TypedArrayPrototypeBuffer) \ | 171 V(TypedArrayPrototypeBuffer) \ |
172 \ | 172 \ |
173 V(HandleApiCall) \ | 173 V(HandleApiCall) \ |
174 V(HandleApiCallAsFunction) \ | 174 V(HandleApiCallAsFunction) \ |
175 V(HandleApiCallAsConstructor) \ | 175 V(HandleApiCallAsConstructor) \ |
176 \ | 176 \ |
177 V(RestrictedFunctionPropertiesThrower) \ | 177 V(RestrictedFunctionPropertiesThrower) \ |
178 V(RestrictedStrictArgumentsPropertiesThrower) | 178 V(RestrictedStrictArgumentsPropertiesThrower) |
179 | 179 |
180 // TODO(bradnelson): Implement for all arches and drop. | |
181 #if defined(V8_TARGET_ARCH_X64) | |
Michael Starzinger
2016/06/29 08:29:23
We usually implement new features on all architect
bradn
2016/06/30 07:59:36
Done.
| |
182 #define BUILTIN_LIST_A_PARTIAL(V) V(InstantiateAsmJs, BUILTIN, kNoExtraICState) | |
183 #else | |
184 #define BUILTIN_LIST_A_PARTIAL(V) | |
185 #endif | |
186 | |
180 // Define list of builtins implemented in assembly. | 187 // Define list of builtins implemented in assembly. |
181 #define BUILTIN_LIST_A(V) \ | 188 #define BUILTIN_LIST_A(V) \ |
189 BUILTIN_LIST_A_PARTIAL(V) \ | |
182 V(AllocateInNewSpace, BUILTIN, kNoExtraICState) \ | 190 V(AllocateInNewSpace, BUILTIN, kNoExtraICState) \ |
183 V(AllocateInOldSpace, BUILTIN, kNoExtraICState) \ | 191 V(AllocateInOldSpace, BUILTIN, kNoExtraICState) \ |
184 \ | 192 \ |
185 V(ArgumentsAdaptorTrampoline, BUILTIN, kNoExtraICState) \ | 193 V(ArgumentsAdaptorTrampoline, BUILTIN, kNoExtraICState) \ |
186 \ | 194 \ |
187 V(ConstructedNonConstructable, BUILTIN, kNoExtraICState) \ | 195 V(ConstructedNonConstructable, BUILTIN, kNoExtraICState) \ |
188 \ | 196 \ |
189 V(CallFunction_ReceiverIsNullOrUndefined, BUILTIN, kNoExtraICState) \ | 197 V(CallFunction_ReceiverIsNullOrUndefined, BUILTIN, kNoExtraICState) \ |
190 V(CallFunction_ReceiverIsNotNullOrUndefined, BUILTIN, kNoExtraICState) \ | 198 V(CallFunction_ReceiverIsNotNullOrUndefined, BUILTIN, kNoExtraICState) \ |
191 V(CallFunction_ReceiverIsAny, BUILTIN, kNoExtraICState) \ | 199 V(CallFunction_ReceiverIsAny, BUILTIN, kNoExtraICState) \ |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
390 #undef DEF_ENUM_T | 398 #undef DEF_ENUM_T |
391 #undef DEF_ENUM_S | 399 #undef DEF_ENUM_S |
392 #undef DEF_ENUM_H | 400 #undef DEF_ENUM_H |
393 builtin_count | 401 builtin_count |
394 }; | 402 }; |
395 | 403 |
396 enum CFunctionId { | 404 enum CFunctionId { |
397 #define DEF_ENUM_C(name) c_##name, | 405 #define DEF_ENUM_C(name) c_##name, |
398 BUILTIN_LIST_C(DEF_ENUM_C) | 406 BUILTIN_LIST_C(DEF_ENUM_C) |
399 #undef DEF_ENUM_C | 407 #undef DEF_ENUM_C |
400 cfunction_count | 408 cfunction_count |
401 }; | 409 }; |
402 | 410 |
403 #define DECLARE_BUILTIN_ACCESSOR_C(name) Handle<Code> name(); | 411 #define DECLARE_BUILTIN_ACCESSOR_C(name) Handle<Code> name(); |
404 #define DECLARE_BUILTIN_ACCESSOR_A(name, kind, extra) Handle<Code> name(); | 412 #define DECLARE_BUILTIN_ACCESSOR_A(name, kind, extra) Handle<Code> name(); |
405 #define DECLARE_BUILTIN_ACCESSOR_T(name, argc) Handle<Code> name(); | 413 #define DECLARE_BUILTIN_ACCESSOR_T(name, argc) Handle<Code> name(); |
406 #define DECLARE_BUILTIN_ACCESSOR_S(name, kind, extra, interface_descriptor) \ | 414 #define DECLARE_BUILTIN_ACCESSOR_S(name, kind, extra, interface_descriptor) \ |
407 Handle<Code> name(); | 415 Handle<Code> name(); |
408 #define DECLARE_BUILTIN_ACCESSOR_H(name, kind) Handle<Code> name(); | 416 #define DECLARE_BUILTIN_ACCESSOR_H(name, kind) Handle<Code> name(); |
409 BUILTIN_LIST_C(DECLARE_BUILTIN_ACCESSOR_C) | 417 BUILTIN_LIST_C(DECLARE_BUILTIN_ACCESSOR_C) |
410 BUILTIN_LIST_A(DECLARE_BUILTIN_ACCESSOR_A) | 418 BUILTIN_LIST_A(DECLARE_BUILTIN_ACCESSOR_A) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
463 // IterateBuiltins() above which assumes Object**'s for the callback | 471 // IterateBuiltins() above which assumes Object**'s for the callback |
464 // function f, we use an Object* array here. | 472 // function f, we use an Object* array here. |
465 Object* builtins_[builtin_count]; | 473 Object* builtins_[builtin_count]; |
466 const char* names_[builtin_count]; | 474 const char* names_[builtin_count]; |
467 | 475 |
468 static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id); | 476 static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id); |
469 static void Generate_AllocateInNewSpace(MacroAssembler* masm); | 477 static void Generate_AllocateInNewSpace(MacroAssembler* masm); |
470 static void Generate_AllocateInOldSpace(MacroAssembler* masm); | 478 static void Generate_AllocateInOldSpace(MacroAssembler* masm); |
471 static void Generate_ConstructedNonConstructable(MacroAssembler* masm); | 479 static void Generate_ConstructedNonConstructable(MacroAssembler* masm); |
472 static void Generate_CompileLazy(MacroAssembler* masm); | 480 static void Generate_CompileLazy(MacroAssembler* masm); |
481 #if defined(V8_TARGET_ARCH_X64) | |
Michael Starzinger
2016/06/29 08:29:23
Likewise.
bradn
2016/06/30 07:59:36
Done.
| |
482 // TODO(bradnelson): Implement on all arches. | |
483 static void Generate_InstantiateAsmJs(MacroAssembler* masm); | |
Michael Starzinger
2016/06/29 08:29:23
nit: Can we move this declaration up one line? The
bradn
2016/06/30 07:59:36
Done.
| |
484 #endif | |
473 static void Generate_CompileBaseline(MacroAssembler* masm); | 485 static void Generate_CompileBaseline(MacroAssembler* masm); |
474 static void Generate_InOptimizationQueue(MacroAssembler* masm); | 486 static void Generate_InOptimizationQueue(MacroAssembler* masm); |
475 static void Generate_CompileOptimized(MacroAssembler* masm); | 487 static void Generate_CompileOptimized(MacroAssembler* masm); |
476 static void Generate_CompileOptimizedConcurrent(MacroAssembler* masm); | 488 static void Generate_CompileOptimizedConcurrent(MacroAssembler* masm); |
477 static void Generate_JSConstructStubGeneric(MacroAssembler* masm); | 489 static void Generate_JSConstructStubGeneric(MacroAssembler* masm); |
478 static void Generate_JSBuiltinsConstructStub(MacroAssembler* masm); | 490 static void Generate_JSBuiltinsConstructStub(MacroAssembler* masm); |
479 static void Generate_JSBuiltinsConstructStubForDerived(MacroAssembler* masm); | 491 static void Generate_JSBuiltinsConstructStubForDerived(MacroAssembler* masm); |
480 static void Generate_JSConstructStubApi(MacroAssembler* masm); | 492 static void Generate_JSConstructStubApi(MacroAssembler* masm); |
481 static void Generate_JSEntryTrampoline(MacroAssembler* masm); | 493 static void Generate_JSEntryTrampoline(MacroAssembler* masm); |
482 static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm); | 494 static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm); |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
751 friend class BuiltinFunctionTable; | 763 friend class BuiltinFunctionTable; |
752 friend class Isolate; | 764 friend class Isolate; |
753 | 765 |
754 DISALLOW_COPY_AND_ASSIGN(Builtins); | 766 DISALLOW_COPY_AND_ASSIGN(Builtins); |
755 }; | 767 }; |
756 | 768 |
757 } // namespace internal | 769 } // namespace internal |
758 } // namespace v8 | 770 } // namespace v8 |
759 | 771 |
760 #endif // V8_BUILTINS_H_ | 772 #endif // V8_BUILTINS_H_ |
OLD | NEW |