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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 V(NameDictionaryLookup) \ | 52 V(NameDictionaryLookup) \ |
53 /* This can be removed once there are no */ \ | 53 /* This can be removed once there are no */ \ |
54 /* more deopting Hydrogen stubs. */ \ | 54 /* more deopting Hydrogen stubs. */ \ |
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 */ \ | |
63 /* just fast-cases of C++ builtins. They */ \ | |
64 /* require varg support from TF */ \ | |
65 V(FastFunctionBind) \ | |
66 /* These will be ported/eliminated */ \ | 62 /* These will be ported/eliminated */ \ |
67 /* as part of the new IC system, ask */ \ | 63 /* as part of the new IC system, ask */ \ |
68 /* ishell before doing anything */ \ | 64 /* ishell before doing anything */ \ |
69 V(LoadConstant) \ | 65 V(LoadConstant) \ |
70 V(LoadDictionaryElement) \ | 66 V(LoadDictionaryElement) \ |
71 V(LoadFastElement) \ | 67 V(LoadFastElement) \ |
72 V(LoadField) \ | 68 V(LoadField) \ |
73 /* These should never be ported to TF */ \ | 69 /* These should never be ported to TF */ \ |
74 /* because they are either used only by */ \ | 70 /* because they are either used only by */ \ |
75 /* FCG/Crankshaft or are deprecated */ \ | 71 /* FCG/Crankshaft or are deprecated */ \ |
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1003 return ElementsKindBits::decode(minor_key_); | 999 return ElementsKindBits::decode(minor_key_); |
1004 } | 1000 } |
1005 | 1001 |
1006 private: | 1002 private: |
1007 class ElementsKindBits : public BitField<ElementsKind, 0, 8> {}; | 1003 class ElementsKindBits : public BitField<ElementsKind, 0, 8> {}; |
1008 | 1004 |
1009 DEFINE_CALL_INTERFACE_DESCRIPTOR(GrowArrayElements); | 1005 DEFINE_CALL_INTERFACE_DESCRIPTOR(GrowArrayElements); |
1010 DEFINE_TURBOFAN_CODE_STUB(GrowArrayElements, TurboFanCodeStub); | 1006 DEFINE_TURBOFAN_CODE_STUB(GrowArrayElements, TurboFanCodeStub); |
1011 }; | 1007 }; |
1012 | 1008 |
1013 class FastFunctionBindStub : public HydrogenCodeStub { | |
1014 public: | |
1015 explicit FastFunctionBindStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} | |
1016 | |
1017 private: | |
1018 DEFINE_CALL_INTERFACE_DESCRIPTOR(VarArgFunction); | |
1019 DEFINE_HYDROGEN_CODE_STUB(FastFunctionBind, HydrogenCodeStub); | |
1020 }; | |
1021 | |
1022 enum AllocationSiteOverrideMode { | 1009 enum AllocationSiteOverrideMode { |
1023 DONT_OVERRIDE, | 1010 DONT_OVERRIDE, |
1024 DISABLE_ALLOCATION_SITES, | 1011 DISABLE_ALLOCATION_SITES, |
1025 LAST_ALLOCATION_SITE_OVERRIDE_MODE = DISABLE_ALLOCATION_SITES | 1012 LAST_ALLOCATION_SITE_OVERRIDE_MODE = DISABLE_ALLOCATION_SITES |
1026 }; | 1013 }; |
1027 | 1014 |
1028 | 1015 |
1029 class ArrayConstructorStub: public PlatformCodeStub { | 1016 class ArrayConstructorStub: public PlatformCodeStub { |
1030 public: | 1017 public: |
1031 explicit ArrayConstructorStub(Isolate* isolate); | 1018 explicit ArrayConstructorStub(Isolate* isolate); |
(...skipping 1616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2648 #undef DEFINE_PLATFORM_CODE_STUB | 2635 #undef DEFINE_PLATFORM_CODE_STUB |
2649 #undef DEFINE_HANDLER_CODE_STUB | 2636 #undef DEFINE_HANDLER_CODE_STUB |
2650 #undef DEFINE_HYDROGEN_CODE_STUB | 2637 #undef DEFINE_HYDROGEN_CODE_STUB |
2651 #undef DEFINE_CODE_STUB | 2638 #undef DEFINE_CODE_STUB |
2652 #undef DEFINE_CODE_STUB_BASE | 2639 #undef DEFINE_CODE_STUB_BASE |
2653 | 2640 |
2654 } // namespace internal | 2641 } // namespace internal |
2655 } // namespace v8 | 2642 } // namespace v8 |
2656 | 2643 |
2657 #endif // V8_CODE_STUBS_H_ | 2644 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |