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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 V(HandleFastApiCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 210 V(HandleFastApiCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
211 \ | 211 \ |
212 V(InOptimizationQueue, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 212 V(InOptimizationQueue, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
213 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 213 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
214 V(JSBuiltinsConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 214 V(JSBuiltinsConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
215 V(JSBuiltinsConstructStubForDerived, BUILTIN, UNINITIALIZED, \ | 215 V(JSBuiltinsConstructStubForDerived, BUILTIN, UNINITIALIZED, \ |
216 kNoExtraICState) \ | 216 kNoExtraICState) \ |
217 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 217 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
218 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 218 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
219 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 219 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
| 220 V(ResumeGeneratorTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
220 V(CompileLazy, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 221 V(CompileLazy, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
221 V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 222 V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
222 V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 223 V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
223 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 224 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
224 V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 225 V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
225 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 226 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
226 V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 227 V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
227 V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 228 V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
228 \ | 229 \ |
229 V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 230 V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 300 V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
300 V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 301 V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
301 V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 302 V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
302 \ | 303 \ |
303 V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 304 V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
304 V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 305 V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
305 V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 306 V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
306 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V) | 307 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V) |
307 | 308 |
308 // Define list of builtins implemented in TurboFan (with JS linkage). | 309 // Define list of builtins implemented in TurboFan (with JS linkage). |
309 #define BUILTIN_LIST_T(V) \ | 310 #define BUILTIN_LIST_T(V) \ |
310 V(MathCeil, 2) \ | 311 V(GeneratorPrototypeNext, 2) \ |
311 V(MathClz32, 2) \ | 312 V(GeneratorPrototypeReturn, 2) \ |
312 V(MathFloor, 2) \ | 313 V(GeneratorPrototypeThrow, 2) \ |
313 V(MathRound, 2) \ | 314 V(MathCeil, 2) \ |
314 V(MathSqrt, 2) \ | 315 V(MathClz32, 2) \ |
315 V(MathTrunc, 2) \ | 316 V(MathFloor, 2) \ |
| 317 V(MathRound, 2) \ |
| 318 V(MathSqrt, 2) \ |
| 319 V(MathTrunc, 2) \ |
316 V(ObjectHasOwnProperty, 2) | 320 V(ObjectHasOwnProperty, 2) |
317 | 321 |
318 // Define list of builtin handlers implemented in assembly. | 322 // Define list of builtin handlers implemented in assembly. |
319 #define BUILTIN_LIST_H(V) \ | 323 #define BUILTIN_LIST_H(V) \ |
320 V(LoadIC_Slow, LOAD_IC) \ | 324 V(LoadIC_Slow, LOAD_IC) \ |
321 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \ | 325 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \ |
322 V(StoreIC_Slow, STORE_IC) \ | 326 V(StoreIC_Slow, STORE_IC) \ |
323 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \ | 327 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \ |
324 V(LoadIC_Normal, LOAD_IC) \ | 328 V(LoadIC_Normal, LOAD_IC) \ |
325 V(StoreIC_Normal, STORE_IC) | 329 V(StoreIC_Normal, STORE_IC) |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 static void Generate_CompileLazy(MacroAssembler* masm); | 445 static void Generate_CompileLazy(MacroAssembler* masm); |
442 static void Generate_InOptimizationQueue(MacroAssembler* masm); | 446 static void Generate_InOptimizationQueue(MacroAssembler* masm); |
443 static void Generate_CompileOptimized(MacroAssembler* masm); | 447 static void Generate_CompileOptimized(MacroAssembler* masm); |
444 static void Generate_CompileOptimizedConcurrent(MacroAssembler* masm); | 448 static void Generate_CompileOptimizedConcurrent(MacroAssembler* masm); |
445 static void Generate_JSConstructStubGeneric(MacroAssembler* masm); | 449 static void Generate_JSConstructStubGeneric(MacroAssembler* masm); |
446 static void Generate_JSBuiltinsConstructStub(MacroAssembler* masm); | 450 static void Generate_JSBuiltinsConstructStub(MacroAssembler* masm); |
447 static void Generate_JSBuiltinsConstructStubForDerived(MacroAssembler* masm); | 451 static void Generate_JSBuiltinsConstructStubForDerived(MacroAssembler* masm); |
448 static void Generate_JSConstructStubApi(MacroAssembler* masm); | 452 static void Generate_JSConstructStubApi(MacroAssembler* masm); |
449 static void Generate_JSEntryTrampoline(MacroAssembler* masm); | 453 static void Generate_JSEntryTrampoline(MacroAssembler* masm); |
450 static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm); | 454 static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm); |
| 455 static void Generate_ResumeGeneratorTrampoline(MacroAssembler* masm); |
451 static void Generate_NotifyDeoptimized(MacroAssembler* masm); | 456 static void Generate_NotifyDeoptimized(MacroAssembler* masm); |
452 static void Generate_NotifySoftDeoptimized(MacroAssembler* masm); | 457 static void Generate_NotifySoftDeoptimized(MacroAssembler* masm); |
453 static void Generate_NotifyLazyDeoptimized(MacroAssembler* masm); | 458 static void Generate_NotifyLazyDeoptimized(MacroAssembler* masm); |
454 static void Generate_NotifyStubFailure(MacroAssembler* masm); | 459 static void Generate_NotifyStubFailure(MacroAssembler* masm); |
455 static void Generate_NotifyStubFailureSaveDoubles(MacroAssembler* masm); | 460 static void Generate_NotifyStubFailureSaveDoubles(MacroAssembler* masm); |
456 static void Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm); | 461 static void Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm); |
457 | 462 |
458 static void Generate_Apply(MacroAssembler* masm); | 463 static void Generate_Apply(MacroAssembler* masm); |
459 | 464 |
460 // ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) | 465 // ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 // ES6 section 20.2.2.32 Math.sqrt ( x ) | 612 // ES6 section 20.2.2.32 Math.sqrt ( x ) |
608 static void Generate_MathSqrt(compiler::CodeStubAssembler* assembler); | 613 static void Generate_MathSqrt(compiler::CodeStubAssembler* assembler); |
609 // ES6 section 20.2.2.35 Math.trunc ( x ) | 614 // ES6 section 20.2.2.35 Math.trunc ( x ) |
610 static void Generate_MathTrunc(compiler::CodeStubAssembler* assembler); | 615 static void Generate_MathTrunc(compiler::CodeStubAssembler* assembler); |
611 | 616 |
612 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case. | 617 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case. |
613 static void Generate_NumberConstructor(MacroAssembler* masm); | 618 static void Generate_NumberConstructor(MacroAssembler* masm); |
614 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case. | 619 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case. |
615 static void Generate_NumberConstructor_ConstructStub(MacroAssembler* masm); | 620 static void Generate_NumberConstructor_ConstructStub(MacroAssembler* masm); |
616 | 621 |
| 622 // ES6 section 25.3.1.2 Generator.prototype.next ( value ) |
| 623 static void Generate_GeneratorPrototypeNext( |
| 624 compiler::CodeStubAssembler* assembler); |
| 625 // ES6 section 25.3.1.3 Generator.prototype.return ( value ) |
| 626 static void Generate_GeneratorPrototypeReturn( |
| 627 compiler::CodeStubAssembler* assembler); |
| 628 // ES6 section 25.3.1.4 Generator.prototype.throw ( exception ) |
| 629 static void Generate_GeneratorPrototypeThrow( |
| 630 compiler::CodeStubAssembler* assembler); |
| 631 |
617 // ES6 section 19.1.3.2 Object.prototype.hasOwnProperty | 632 // ES6 section 19.1.3.2 Object.prototype.hasOwnProperty |
618 static void Generate_ObjectHasOwnProperty( | 633 static void Generate_ObjectHasOwnProperty( |
619 compiler::CodeStubAssembler* assembler); | 634 compiler::CodeStubAssembler* assembler); |
620 | 635 |
621 static void Generate_StringConstructor(MacroAssembler* masm); | 636 static void Generate_StringConstructor(MacroAssembler* masm); |
622 static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm); | 637 static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm); |
623 static void Generate_OnStackReplacement(MacroAssembler* masm); | 638 static void Generate_OnStackReplacement(MacroAssembler* masm); |
624 static void Generate_InterruptCheck(MacroAssembler* masm); | 639 static void Generate_InterruptCheck(MacroAssembler* masm); |
625 static void Generate_StackCheck(MacroAssembler* masm); | 640 static void Generate_StackCheck(MacroAssembler* masm); |
626 | 641 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 friend class BuiltinFunctionTable; | 675 friend class BuiltinFunctionTable; |
661 friend class Isolate; | 676 friend class Isolate; |
662 | 677 |
663 DISALLOW_COPY_AND_ASSIGN(Builtins); | 678 DISALLOW_COPY_AND_ASSIGN(Builtins); |
664 }; | 679 }; |
665 | 680 |
666 } // namespace internal | 681 } // namespace internal |
667 } // namespace v8 | 682 } // namespace v8 |
668 | 683 |
669 #endif // V8_BUILTINS_H_ | 684 #endif // V8_BUILTINS_H_ |
OLD | NEW |