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/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 DEFINE_TURBOFAN_CODE_STUB(ToLength, TurboFanCodeStub); | 868 DEFINE_TURBOFAN_CODE_STUB(ToLength, TurboFanCodeStub); |
869 }; | 869 }; |
870 | 870 |
871 class StoreInterceptorStub : public TurboFanCodeStub { | 871 class StoreInterceptorStub : public TurboFanCodeStub { |
872 public: | 872 public: |
873 explicit StoreInterceptorStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 873 explicit StoreInterceptorStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
874 | 874 |
875 void GenerateAssembly(compiler::CodeStubAssembler* assember) const override; | 875 void GenerateAssembly(compiler::CodeStubAssembler* assember) const override; |
876 | 876 |
877 Code::Kind GetCodeKind() const override { return Code::HANDLER; } | 877 Code::Kind GetCodeKind() const override { return Code::HANDLER; } |
| 878 ExtraICState GetExtraICState() const override { return Code::STORE_IC; } |
| 879 InlineCacheState GetICState() const override { return MONOMORPHIC; } |
878 | 880 |
879 DEFINE_CALL_INTERFACE_DESCRIPTOR(Store); | 881 DEFINE_CALL_INTERFACE_DESCRIPTOR(Store); |
880 DEFINE_CODE_STUB(StoreInterceptor, TurboFanCodeStub); | 882 DEFINE_CODE_STUB(StoreInterceptor, TurboFanCodeStub); |
881 }; | 883 }; |
882 | 884 |
883 class LoadIndexedInterceptorStub : public TurboFanCodeStub { | 885 class LoadIndexedInterceptorStub : public TurboFanCodeStub { |
884 public: | 886 public: |
885 explicit LoadIndexedInterceptorStub(Isolate* isolate) | 887 explicit LoadIndexedInterceptorStub(Isolate* isolate) |
886 : TurboFanCodeStub(isolate) {} | 888 : TurboFanCodeStub(isolate) {} |
887 | 889 |
888 Code::Kind GetCodeKind() const override { return Code::HANDLER; } | 890 Code::Kind GetCodeKind() const override { return Code::HANDLER; } |
| 891 ExtraICState GetExtraICState() const override { return Code::KEYED_LOAD_IC; } |
| 892 InlineCacheState GetICState() const override { return MONOMORPHIC; } |
889 | 893 |
890 DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector); | 894 DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector); |
891 DEFINE_TURBOFAN_CODE_STUB(LoadIndexedInterceptor, TurboFanCodeStub); | 895 DEFINE_TURBOFAN_CODE_STUB(LoadIndexedInterceptor, TurboFanCodeStub); |
892 }; | 896 }; |
893 | 897 |
894 enum StringAddFlags { | 898 enum StringAddFlags { |
895 // Omit both parameter checks. | 899 // Omit both parameter checks. |
896 STRING_ADD_CHECK_NONE = 0, | 900 STRING_ADD_CHECK_NONE = 0, |
897 // Check left parameter. | 901 // Check left parameter. |
898 STRING_ADD_CHECK_LEFT = 1 << 0, | 902 STRING_ADD_CHECK_LEFT = 1 << 0, |
(...skipping 2209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3108 #undef DEFINE_HYDROGEN_CODE_STUB | 3112 #undef DEFINE_HYDROGEN_CODE_STUB |
3109 #undef DEFINE_CODE_STUB | 3113 #undef DEFINE_CODE_STUB |
3110 #undef DEFINE_CODE_STUB_BASE | 3114 #undef DEFINE_CODE_STUB_BASE |
3111 | 3115 |
3112 extern Representation RepresentationFromType(Type* type); | 3116 extern Representation RepresentationFromType(Type* type); |
3113 | 3117 |
3114 } // namespace internal | 3118 } // namespace internal |
3115 } // namespace v8 | 3119 } // namespace v8 |
3116 | 3120 |
3117 #endif // V8_CODE_STUBS_H_ | 3121 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |