| 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_CODE_STUBS_H_ | 5 #ifndef V8_CODE_STUBS_H_ |
| 6 #define V8_CODE_STUBS_H_ | 6 #define V8_CODE_STUBS_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assembler.h" | 9 #include "src/assembler.h" |
| 10 #include "src/code-stub-assembler.h" | 10 #include "src/code-stub-assembler.h" |
| (...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 854 static compiler::Node* Generate(CodeStubAssembler* assembler, | 854 static compiler::Node* Generate(CodeStubAssembler* assembler, |
| 855 compiler::Node* shared_info, | 855 compiler::Node* shared_info, |
| 856 compiler::Node* context); | 856 compiler::Node* context); |
| 857 | 857 |
| 858 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewClosure); | 858 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewClosure); |
| 859 DEFINE_TURBOFAN_CODE_STUB(FastNewClosure, TurboFanCodeStub); | 859 DEFINE_TURBOFAN_CODE_STUB(FastNewClosure, TurboFanCodeStub); |
| 860 }; | 860 }; |
| 861 | 861 |
| 862 class FastNewFunctionContextStub final : public TurboFanCodeStub { | 862 class FastNewFunctionContextStub final : public TurboFanCodeStub { |
| 863 public: | 863 public: |
| 864 explicit FastNewFunctionContextStub(Isolate* isolate) | 864 explicit FastNewFunctionContextStub(Isolate* isolate, bool for_eval) |
| 865 : TurboFanCodeStub(isolate) {} | 865 : TurboFanCodeStub(isolate) { |
| 866 minor_key_ = ForEvalBits::encode(for_eval); |
| 867 } |
| 866 | 868 |
| 867 static compiler::Node* Generate(CodeStubAssembler* assembler, | 869 static compiler::Node* Generate(CodeStubAssembler* assembler, |
| 868 compiler::Node* function, | 870 compiler::Node* function, |
| 869 compiler::Node* slots, | 871 compiler::Node* slots, |
| 870 compiler::Node* context); | 872 compiler::Node* context, bool for_eval); |
| 871 | 873 |
| 872 private: | 874 private: |
| 873 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewFunctionContext); | 875 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewFunctionContext); |
| 874 DEFINE_TURBOFAN_CODE_STUB(FastNewFunctionContext, TurboFanCodeStub); | 876 DEFINE_TURBOFAN_CODE_STUB(FastNewFunctionContext, TurboFanCodeStub); |
| 877 |
| 878 int for_eval() const { return ForEvalBits::decode(minor_key_); } |
| 879 class ForEvalBits : public BitField<bool, 0, 1> {}; |
| 875 }; | 880 }; |
| 876 | 881 |
| 877 | 882 |
| 878 class FastNewObjectStub final : public PlatformCodeStub { | 883 class FastNewObjectStub final : public PlatformCodeStub { |
| 879 public: | 884 public: |
| 880 explicit FastNewObjectStub(Isolate* isolate) : PlatformCodeStub(isolate) {} | 885 explicit FastNewObjectStub(Isolate* isolate) : PlatformCodeStub(isolate) {} |
| 881 | 886 |
| 882 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewObject); | 887 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewObject); |
| 883 DEFINE_PLATFORM_CODE_STUB(FastNewObject, PlatformCodeStub); | 888 DEFINE_PLATFORM_CODE_STUB(FastNewObject, PlatformCodeStub); |
| 884 }; | 889 }; |
| (...skipping 1863 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2748 #undef DEFINE_HYDROGEN_CODE_STUB | 2753 #undef DEFINE_HYDROGEN_CODE_STUB |
| 2749 #undef DEFINE_CODE_STUB | 2754 #undef DEFINE_CODE_STUB |
| 2750 #undef DEFINE_CODE_STUB_BASE | 2755 #undef DEFINE_CODE_STUB_BASE |
| 2751 | 2756 |
| 2752 extern Representation RepresentationFromMachineType(MachineType type); | 2757 extern Representation RepresentationFromMachineType(MachineType type); |
| 2753 | 2758 |
| 2754 } // namespace internal | 2759 } // namespace internal |
| 2755 } // namespace v8 | 2760 } // namespace v8 |
| 2756 | 2761 |
| 2757 #endif // V8_CODE_STUBS_H_ | 2762 #endif // V8_CODE_STUBS_H_ |
| OLD | NEW |