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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 V(StubFailureTrampoline) \ | 55 V(StubFailureTrampoline) \ |
56 /* These are only called from FCG */ \ | 56 /* These are only called from FCG */ \ |
57 /* They can be removed when only the TF */ \ | 57 /* They can be removed when only the TF */ \ |
58 /* version of the corresponding stub is */ \ | 58 /* version of the corresponding stub is */ \ |
59 /* used universally */ \ | 59 /* used universally */ \ |
60 V(CallICTrampoline) \ | 60 V(CallICTrampoline) \ |
61 /* --- HydrogenCodeStubs --- */ \ | 61 /* --- HydrogenCodeStubs --- */ \ |
62 /* These builtins w/ JS linkage are */ \ | 62 /* These builtins w/ JS linkage are */ \ |
63 /* just fast-cases of C++ builtins. They */ \ | 63 /* just fast-cases of C++ builtins. They */ \ |
64 /* require varg support from TF */ \ | 64 /* require varg support from TF */ \ |
65 V(FastArrayPush) \ | |
66 V(FastFunctionBind) \ | 65 V(FastFunctionBind) \ |
67 /* These will be ported/eliminated */ \ | 66 /* These will be ported/eliminated */ \ |
68 /* as part of the new IC system, ask */ \ | 67 /* as part of the new IC system, ask */ \ |
69 /* ishell before doing anything */ \ | 68 /* ishell before doing anything */ \ |
70 V(LoadConstant) \ | 69 V(LoadConstant) \ |
71 V(LoadDictionaryElement) \ | 70 V(LoadDictionaryElement) \ |
72 V(LoadFastElement) \ | 71 V(LoadFastElement) \ |
73 V(LoadField) \ | 72 V(LoadField) \ |
74 /* These should never be ported to TF */ \ | 73 /* These should never be ported to TF */ \ |
75 /* because they are either used only by */ \ | 74 /* because they are either used only by */ \ |
(...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 return ElementsKindBits::decode(minor_key_); | 1003 return ElementsKindBits::decode(minor_key_); |
1005 } | 1004 } |
1006 | 1005 |
1007 private: | 1006 private: |
1008 class ElementsKindBits : public BitField<ElementsKind, 0, 8> {}; | 1007 class ElementsKindBits : public BitField<ElementsKind, 0, 8> {}; |
1009 | 1008 |
1010 DEFINE_CALL_INTERFACE_DESCRIPTOR(GrowArrayElements); | 1009 DEFINE_CALL_INTERFACE_DESCRIPTOR(GrowArrayElements); |
1011 DEFINE_TURBOFAN_CODE_STUB(GrowArrayElements, TurboFanCodeStub); | 1010 DEFINE_TURBOFAN_CODE_STUB(GrowArrayElements, TurboFanCodeStub); |
1012 }; | 1011 }; |
1013 | 1012 |
1014 class FastArrayPushStub : public HydrogenCodeStub { | |
1015 public: | |
1016 explicit FastArrayPushStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} | |
1017 | |
1018 private: | |
1019 DEFINE_CALL_INTERFACE_DESCRIPTOR(VarArgFunction); | |
1020 DEFINE_HYDROGEN_CODE_STUB(FastArrayPush, HydrogenCodeStub); | |
1021 }; | |
1022 | |
1023 class FastFunctionBindStub : public HydrogenCodeStub { | 1013 class FastFunctionBindStub : public HydrogenCodeStub { |
1024 public: | 1014 public: |
1025 explicit FastFunctionBindStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} | 1015 explicit FastFunctionBindStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} |
1026 | 1016 |
1027 private: | 1017 private: |
1028 DEFINE_CALL_INTERFACE_DESCRIPTOR(VarArgFunction); | 1018 DEFINE_CALL_INTERFACE_DESCRIPTOR(VarArgFunction); |
1029 DEFINE_HYDROGEN_CODE_STUB(FastFunctionBind, HydrogenCodeStub); | 1019 DEFINE_HYDROGEN_CODE_STUB(FastFunctionBind, HydrogenCodeStub); |
1030 }; | 1020 }; |
1031 | 1021 |
1032 enum AllocationSiteOverrideMode { | 1022 enum AllocationSiteOverrideMode { |
(...skipping 1625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2658 #undef DEFINE_PLATFORM_CODE_STUB | 2648 #undef DEFINE_PLATFORM_CODE_STUB |
2659 #undef DEFINE_HANDLER_CODE_STUB | 2649 #undef DEFINE_HANDLER_CODE_STUB |
2660 #undef DEFINE_HYDROGEN_CODE_STUB | 2650 #undef DEFINE_HYDROGEN_CODE_STUB |
2661 #undef DEFINE_CODE_STUB | 2651 #undef DEFINE_CODE_STUB |
2662 #undef DEFINE_CODE_STUB_BASE | 2652 #undef DEFINE_CODE_STUB_BASE |
2663 | 2653 |
2664 } // namespace internal | 2654 } // namespace internal |
2665 } // namespace v8 | 2655 } // namespace v8 |
2666 | 2656 |
2667 #endif // V8_CODE_STUBS_H_ | 2657 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |