| 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 |