| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_RUNTIME_RUNTIME_H_ | 5 #ifndef V8_RUNTIME_RUNTIME_H_ |
| 6 #define V8_RUNTIME_RUNTIME_H_ | 6 #define V8_RUNTIME_RUNTIME_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/objects.h" | 9 #include "src/objects.h" |
| 10 #include "src/zone.h" | 10 #include "src/zone.h" |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 F(DeclareModules, 1, 1) \ | 503 F(DeclareModules, 1, 1) \ |
| 504 F(DeclareLookupSlot, 4, 1) \ | 504 F(DeclareLookupSlot, 4, 1) \ |
| 505 F(InitializeConstGlobal, 2, 1) \ | 505 F(InitializeConstGlobal, 2, 1) \ |
| 506 F(InitializeLegacyConstLookupSlot, 3, 1) \ | 506 F(InitializeLegacyConstLookupSlot, 3, 1) \ |
| 507 \ | 507 \ |
| 508 /* Maths */ \ | 508 /* Maths */ \ |
| 509 F(MathPowSlow, 2, 1) \ | 509 F(MathPowSlow, 2, 1) \ |
| 510 F(MathPowRT, 2, 1) | 510 F(MathPowRT, 2, 1) |
| 511 | 511 |
| 512 | 512 |
| 513 #define RUNTIME_FUNCTION_LIST_RETURN_PAIR(F) \ | 513 #define FOR_EACH_INTRINSIC_RETURN_PAIR(F) \ |
| 514 F(LoadLookupSlot, 2, 2) \ | 514 F(LoadLookupSlot, 2, 2) \ |
| 515 F(LoadLookupSlotNoReferenceError, 2, 2) \ | 515 F(LoadLookupSlotNoReferenceError, 2, 2) \ |
| 516 F(ResolvePossiblyDirectEval, 6, 2) \ | 516 F(ResolvePossiblyDirectEval, 6, 2) \ |
| 517 F(ForInInit, 2, 2) /* TODO(turbofan): Only temporary */ \ | 517 F(ForInInit, 2, 2) /* TODO(turbofan): Only temporary */ \ |
| 518 F(ForInNext, 4, 2) /* TODO(turbofan): Only temporary */ | 518 F(ForInNext, 4, 2) /* TODO(turbofan): Only temporary */ |
| 519 | 519 |
| 520 | 520 |
| 521 #define RUNTIME_FUNCTION_LIST_DEBUGGER(F) \ | 521 #define RUNTIME_FUNCTION_LIST_DEBUGGER(F) \ |
| 522 /* Debugger support*/ \ | 522 /* Debugger support*/ \ |
| 523 F(DebugBreak, 0, 1) \ | 523 F(DebugBreak, 0, 1) \ |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 F(BreakIteratorFirst, 1, 1) \ | 619 F(BreakIteratorFirst, 1, 1) \ |
| 620 F(BreakIteratorNext, 1, 1) \ | 620 F(BreakIteratorNext, 1, 1) \ |
| 621 F(BreakIteratorCurrent, 1, 1) \ | 621 F(BreakIteratorCurrent, 1, 1) \ |
| 622 F(BreakIteratorBreakType, 1, 1) | 622 F(BreakIteratorBreakType, 1, 1) |
| 623 | 623 |
| 624 #else | 624 #else |
| 625 #define RUNTIME_FUNCTION_LIST_I18N_SUPPORT(F) | 625 #define RUNTIME_FUNCTION_LIST_I18N_SUPPORT(F) |
| 626 #endif | 626 #endif |
| 627 | 627 |
| 628 | 628 |
| 629 #define RUNTIME_FUNCTION_LIST_RETURN_OBJECT(F) \ | |
| 630 RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ | |
| 631 RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \ | |
| 632 RUNTIME_FUNCTION_LIST_ALWAYS_3(F) \ | |
| 633 RUNTIME_FUNCTION_LIST_DEBUGGER(F) \ | |
| 634 RUNTIME_FUNCTION_LIST_I18N_SUPPORT(F) | |
| 635 | |
| 636 | |
| 637 // RUNTIME_FUNCTION_LIST_ defines the intrinsics typically implemented only | |
| 638 // as runtime functions. These come in 2 flavors, either returning an object or | |
| 639 // returning a pair. | |
| 640 // Entries have the form F(name, number of arguments, number of return values). | |
| 641 #define RUNTIME_FUNCTION_LIST(F) \ | |
| 642 RUNTIME_FUNCTION_LIST_RETURN_OBJECT(F) \ | |
| 643 RUNTIME_FUNCTION_LIST_RETURN_PAIR(F) | |
| 644 | |
| 645 | |
| 646 // ---------------------------------------------------------------------------- | 629 // ---------------------------------------------------------------------------- |
| 647 // INLINE_FUNCTION_LIST defines the intrinsics typically handled specially by | 630 // INLINE_FUNCTION_LIST defines the intrinsics typically handled specially by |
| 648 // the various compilers. | 631 // the various compilers. |
| 649 // Entries have the form F(name, number of arguments, number of return values). | 632 // Entries have the form F(name, number of arguments, number of return values). |
| 650 #define INLINE_FUNCTION_LIST(F) \ | 633 #define INLINE_FUNCTION_LIST(F) \ |
| 651 F(IsSmi, 1, 1) \ | 634 F(IsSmi, 1, 1) \ |
| 652 F(IsNonNegativeSmi, 1, 1) \ | 635 F(IsNonNegativeSmi, 1, 1) \ |
| 653 F(IsArray, 1, 1) \ | 636 F(IsArray, 1, 1) \ |
| 654 F(IsRegExp, 1, 1) \ | 637 F(IsRegExp, 1, 1) \ |
| 655 F(IsJSProxy, 1, 1) \ | 638 F(IsJSProxy, 1, 1) \ |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 F(SetClear, 1, 1) \ | 708 F(SetClear, 1, 1) \ |
| 726 F(SetDelete, 2, 1) \ | 709 F(SetDelete, 2, 1) \ |
| 727 F(SetGetSize, 1, 1) \ | 710 F(SetGetSize, 1, 1) \ |
| 728 F(SetHas, 2, 1) \ | 711 F(SetHas, 2, 1) \ |
| 729 F(SetInitialize, 1, 1) \ | 712 F(SetInitialize, 1, 1) \ |
| 730 /* Arrays */ \ | 713 /* Arrays */ \ |
| 731 F(HasFastPackedElements, 1, 1) \ | 714 F(HasFastPackedElements, 1, 1) \ |
| 732 F(GetPrototype, 1, 1) | 715 F(GetPrototype, 1, 1) |
| 733 | 716 |
| 734 | 717 |
| 735 #define FOR_EACH_INTRINSIC(F) \ | 718 #define FOR_EACH_INTRINSIC_RETURN_OBJECT(F) \ |
| 736 RUNTIME_FUNCTION_LIST(F) \ | 719 RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ |
| 737 INLINE_FUNCTION_LIST(F) \ | 720 RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \ |
| 721 RUNTIME_FUNCTION_LIST_ALWAYS_3(F) \ |
| 722 RUNTIME_FUNCTION_LIST_DEBUGGER(F) \ |
| 723 RUNTIME_FUNCTION_LIST_I18N_SUPPORT(F) \ |
| 724 INLINE_FUNCTION_LIST(F) \ |
| 738 INLINE_OPTIMIZED_FUNCTION_LIST(F) | 725 INLINE_OPTIMIZED_FUNCTION_LIST(F) |
| 739 | 726 |
| 727 |
| 728 // FOR_EACH_INTRINSIC defines the list of all intrinsics, coming in 2 flavors, |
| 729 // either returning an object or a pair. |
| 730 // Entries have the form F(name, number of arguments, number of values). |
| 731 #define FOR_EACH_INTRINSIC(F) \ |
| 732 FOR_EACH_INTRINSIC_RETURN_PAIR(F) \ |
| 733 FOR_EACH_INTRINSIC_RETURN_OBJECT(F) |
| 734 |
| 735 |
| 740 //--------------------------------------------------------------------------- | 736 //--------------------------------------------------------------------------- |
| 741 // Runtime provides access to all C++ runtime functions. | 737 // Runtime provides access to all C++ runtime functions. |
| 742 | 738 |
| 743 class RuntimeState { | 739 class RuntimeState { |
| 744 public: | 740 public: |
| 745 unibrow::Mapping<unibrow::ToUppercase, 128>* to_upper_mapping() { | 741 unibrow::Mapping<unibrow::ToUppercase, 128>* to_upper_mapping() { |
| 746 return &to_upper_mapping_; | 742 return &to_upper_mapping_; |
| 747 } | 743 } |
| 748 unibrow::Mapping<unibrow::ToLowercase, 128>* to_lower_mapping() { | 744 unibrow::Mapping<unibrow::ToLowercase, 128>* to_lower_mapping() { |
| 749 return &to_lower_mapping_; | 745 return &to_lower_mapping_; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 | 892 |
| 897 class DeclareGlobalsEvalFlag : public BitField<bool, 0, 1> {}; | 893 class DeclareGlobalsEvalFlag : public BitField<bool, 0, 1> {}; |
| 898 class DeclareGlobalsNativeFlag : public BitField<bool, 1, 1> {}; | 894 class DeclareGlobalsNativeFlag : public BitField<bool, 1, 1> {}; |
| 899 STATIC_ASSERT(LANGUAGE_END == 3); | 895 STATIC_ASSERT(LANGUAGE_END == 3); |
| 900 class DeclareGlobalsLanguageMode : public BitField<LanguageMode, 2, 2> {}; | 896 class DeclareGlobalsLanguageMode : public BitField<LanguageMode, 2, 2> {}; |
| 901 | 897 |
| 902 } // namespace internal | 898 } // namespace internal |
| 903 } // namespace v8 | 899 } // namespace v8 |
| 904 | 900 |
| 905 #endif // V8_RUNTIME_RUNTIME_H_ | 901 #endif // V8_RUNTIME_RUNTIME_H_ |
| OLD | NEW |