| 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_BUILTINS_H_ | 5 #ifndef V8_BUILTINS_BUILTINS_H_ |
| 6 #define V8_BUILTINS_BUILTINS_H_ | 6 #define V8_BUILTINS_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 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 V(SymbolPrototypeToPrimitive, 2) \ | 355 V(SymbolPrototypeToPrimitive, 2) \ |
| 356 V(SymbolPrototypeToString, 1) \ | 356 V(SymbolPrototypeToString, 1) \ |
| 357 V(SymbolPrototypeValueOf, 1) \ | 357 V(SymbolPrototypeValueOf, 1) \ |
| 358 V(TypedArrayPrototypeByteLength, 1) \ | 358 V(TypedArrayPrototypeByteLength, 1) \ |
| 359 V(TypedArrayPrototypeByteOffset, 1) \ | 359 V(TypedArrayPrototypeByteOffset, 1) \ |
| 360 V(TypedArrayPrototypeLength, 1) \ | 360 V(TypedArrayPrototypeLength, 1) \ |
| 361 V(AtomicsLoad, 3) \ | 361 V(AtomicsLoad, 3) \ |
| 362 V(AtomicsStore, 4) | 362 V(AtomicsStore, 4) |
| 363 | 363 |
| 364 // Define list of builtins implemented in TurboFan (with CallStub linkage). | 364 // Define list of builtins implemented in TurboFan (with CallStub linkage). |
| 365 #define BUILTIN_LIST_S(V) \ | 365 #define BUILTIN_LIST_S(V) \ |
| 366 V(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ | 366 V(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ |
| 367 V(LoadGlobalIC_SlowNotInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ | 367 V(LoadGlobalIC_SlowNotInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ |
| 368 LoadGlobalWithVector) \ | 368 LoadGlobalWithVector) \ |
| 369 V(LoadGlobalIC_SlowInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ | 369 V(LoadGlobalIC_SlowInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ |
| 370 LoadGlobalWithVector) \ | 370 LoadGlobalWithVector) \ |
| 371 V(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ | 371 V(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ |
| 372 V(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ | 372 V(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ |
| 373 V(StoreIC_Miss, BUILTIN, kNoExtraICState, VectorStoreIC) \ | 373 V(StoreIC_Miss, BUILTIN, kNoExtraICState, VectorStoreIC) \ |
| 374 V(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, VectorStoreIC) \ | 374 V(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, VectorStoreIC) \ |
| 375 V(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, VectorStoreIC) | 375 V(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, VectorStoreIC) \ |
| 376 V(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ |
| 377 V(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ |
| 378 V(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, TypeConversion) \ |
| 379 V(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ |
| 380 V(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) |
| 376 | 381 |
| 377 // Define list of builtin handlers implemented in assembly. | 382 // Define list of builtin handlers implemented in assembly. |
| 378 #define BUILTIN_LIST_H(V) \ | 383 #define BUILTIN_LIST_H(V) \ |
| 379 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \ | 384 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \ |
| 380 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \ | 385 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \ |
| 381 V(LoadIC_Normal, LOAD_IC) \ | 386 V(LoadIC_Normal, LOAD_IC) \ |
| 382 V(StoreIC_Normal, STORE_IC) | 387 V(StoreIC_Normal, STORE_IC) |
| 383 | 388 |
| 384 // Define list of builtins used by the debugger implemented in assembly. | 389 // Define list of builtins used by the debugger implemented in assembly. |
| 385 #define BUILTIN_LIST_DEBUG_A(V) \ | 390 #define BUILTIN_LIST_DEBUG_A(V) \ |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 #undef DECLARE_BUILTIN_ACCESSOR_S | 455 #undef DECLARE_BUILTIN_ACCESSOR_S |
| 451 #undef DECLARE_BUILTIN_ACCESSOR_H | 456 #undef DECLARE_BUILTIN_ACCESSOR_H |
| 452 | 457 |
| 453 // Convenience wrappers. | 458 // Convenience wrappers. |
| 454 Handle<Code> CallFunction( | 459 Handle<Code> CallFunction( |
| 455 ConvertReceiverMode = ConvertReceiverMode::kAny, | 460 ConvertReceiverMode = ConvertReceiverMode::kAny, |
| 456 TailCallMode tail_call_mode = TailCallMode::kDisallow); | 461 TailCallMode tail_call_mode = TailCallMode::kDisallow); |
| 457 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, | 462 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, |
| 458 TailCallMode tail_call_mode = TailCallMode::kDisallow); | 463 TailCallMode tail_call_mode = TailCallMode::kDisallow); |
| 459 Handle<Code> CallBoundFunction(TailCallMode tail_call_mode); | 464 Handle<Code> CallBoundFunction(TailCallMode tail_call_mode); |
| 465 Handle<Code> NonPrimitiveToPrimitive( |
| 466 ToPrimitiveHint hint = ToPrimitiveHint::kDefault); |
| 467 Handle<Code> OrdinaryToPrimitive(OrdinaryToPrimitiveHint hint); |
| 460 Handle<Code> InterpreterPushArgsAndCall( | 468 Handle<Code> InterpreterPushArgsAndCall( |
| 461 TailCallMode tail_call_mode, | 469 TailCallMode tail_call_mode, |
| 462 CallableType function_type = CallableType::kAny); | 470 CallableType function_type = CallableType::kAny); |
| 463 | 471 |
| 464 Code* builtin(Name name) { | 472 Code* builtin(Name name) { |
| 465 // Code::cast cannot be used here since we access builtins | 473 // Code::cast cannot be used here since we access builtins |
| 466 // during the marking phase of mark sweep. See IC::Clear. | 474 // during the marking phase of mark sweep. See IC::Clear. |
| 467 return reinterpret_cast<Code*>(builtins_[name]); | 475 return reinterpret_cast<Code*>(builtins_[name]); |
| 468 } | 476 } |
| 469 | 477 |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 friend class BuiltinFunctionTable; | 848 friend class BuiltinFunctionTable; |
| 841 friend class Isolate; | 849 friend class Isolate; |
| 842 | 850 |
| 843 DISALLOW_COPY_AND_ASSIGN(Builtins); | 851 DISALLOW_COPY_AND_ASSIGN(Builtins); |
| 844 }; | 852 }; |
| 845 | 853 |
| 846 } // namespace internal | 854 } // namespace internal |
| 847 } // namespace v8 | 855 } // namespace v8 |
| 848 | 856 |
| 849 #endif // V8_BUILTINS_BUILTINS_H_ | 857 #endif // V8_BUILTINS_BUILTINS_H_ |
| OLD | NEW |