Chromium Code Reviews| 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 |