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