Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: src/code-stubs.h

Issue 2593033002: [ics]: Remove deprecated support for patching LoadICs and StoreICs (Closed)
Patch Set: Remove more dead code Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/code-stubs.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 /* These are only called from FCG */ \ 61 /* These are only called from FCG */ \
62 /* They can be removed when only the TF */ \ 62 /* They can be removed when only the TF */ \
63 /* version of the corresponding stub is */ \ 63 /* version of the corresponding stub is */ \
64 /* used universally */ \ 64 /* used universally */ \
65 V(CallICTrampoline) \ 65 V(CallICTrampoline) \
66 /* --- HydrogenCodeStubs --- */ \ 66 /* --- HydrogenCodeStubs --- */ \
67 /* These will be ported/eliminated */ \ 67 /* These will be ported/eliminated */ \
68 /* as part of the new IC system, ask */ \ 68 /* as part of the new IC system, ask */ \
69 /* ishell before doing anything */ \ 69 /* ishell before doing anything */ \
70 V(LoadConstant) \ 70 V(LoadConstant) \
71 V(LoadDictionaryElement) \
72 V(LoadFastElement) \
73 V(LoadField) \ 71 V(LoadField) \
74 /* These should never be ported to TF */ \ 72 /* These should never be ported to TF */ \
75 /* because they are either used only by */ \ 73 /* because they are either used only by */ \
76 /* FCG/Crankshaft or are deprecated */ \ 74 /* FCG/Crankshaft or are deprecated */ \
77 V(BinaryOpIC) \ 75 V(BinaryOpIC) \
78 V(BinaryOpWithAllocationSite) \ 76 V(BinaryOpWithAllocationSite) \
79 V(ToBooleanIC) \ 77 V(ToBooleanIC) \
80 V(TransitionElementsKind) \ 78 V(TransitionElementsKind) \
81 /* --- TurboFanCodeStubs --- */ \ 79 /* --- TurboFanCodeStubs --- */ \
82 V(AllocateHeapNumber) \ 80 V(AllocateHeapNumber) \
(...skipping 1836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1919 } 1917 }
1920 1918
1921 private: 1919 private:
1922 StringCharCodeAtGenerator char_code_at_generator_; 1920 StringCharCodeAtGenerator char_code_at_generator_;
1923 StringCharFromCodeGenerator char_from_code_generator_; 1921 StringCharFromCodeGenerator char_from_code_generator_;
1924 1922
1925 DISALLOW_COPY_AND_ASSIGN(StringCharAtGenerator); 1923 DISALLOW_COPY_AND_ASSIGN(StringCharAtGenerator);
1926 }; 1924 };
1927 1925
1928 1926
1929 class LoadDictionaryElementStub : public HydrogenCodeStub {
1930 public:
1931 explicit LoadDictionaryElementStub(Isolate* isolate)
1932 : HydrogenCodeStub(isolate) {}
1933
1934 DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
1935 DEFINE_HYDROGEN_CODE_STUB(LoadDictionaryElement, HydrogenCodeStub);
1936 };
1937
1938 class LoadICTrampolineStub : public TurboFanCodeStub { 1927 class LoadICTrampolineStub : public TurboFanCodeStub {
1939 public: 1928 public:
1940 explicit LoadICTrampolineStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} 1929 explicit LoadICTrampolineStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
1941 1930
1942 Code::Kind GetCodeKind() const override { return Code::LOAD_IC; } 1931 Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
1943 1932
1944 DEFINE_CALL_INTERFACE_DESCRIPTOR(Load); 1933 DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
1945 DEFINE_TURBOFAN_CODE_STUB(LoadICTrampoline, TurboFanCodeStub); 1934 DEFINE_TURBOFAN_CODE_STUB(LoadICTrampoline, TurboFanCodeStub);
1946 }; 1935 };
1947 1936
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
2232 Isolate* isolate, const ScriptContextTable::LookupResult* lookup_result) 2221 Isolate* isolate, const ScriptContextTable::LookupResult* lookup_result)
2233 : ScriptContextFieldStub(isolate, lookup_result) {} 2222 : ScriptContextFieldStub(isolate, lookup_result) {}
2234 2223
2235 ExtraICState GetExtraICState() const override { return Code::STORE_IC; } 2224 ExtraICState GetExtraICState() const override { return Code::STORE_IC; }
2236 2225
2237 private: 2226 private:
2238 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreWithVector); 2227 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreWithVector);
2239 DEFINE_TURBOFAN_CODE_STUB(StoreScriptContextField, ScriptContextFieldStub); 2228 DEFINE_TURBOFAN_CODE_STUB(StoreScriptContextField, ScriptContextFieldStub);
2240 }; 2229 };
2241 2230
2242
2243 class LoadFastElementStub : public HandlerStub {
2244 public:
2245 LoadFastElementStub(Isolate* isolate, bool is_js_array,
2246 ElementsKind elements_kind,
2247 bool convert_hole_to_undefined = false)
2248 : HandlerStub(isolate) {
2249 set_sub_minor_key(
2250 ElementsKindBits::encode(elements_kind) |
2251 IsJSArrayBits::encode(is_js_array) |
2252 CanConvertHoleToUndefined::encode(convert_hole_to_undefined));
2253 }
2254
2255 Code::Kind kind() const override { return Code::KEYED_LOAD_IC; }
2256
2257 bool is_js_array() const { return IsJSArrayBits::decode(sub_minor_key()); }
2258 bool convert_hole_to_undefined() const {
2259 return CanConvertHoleToUndefined::decode(sub_minor_key());
2260 }
2261
2262 ElementsKind elements_kind() const {
2263 return ElementsKindBits::decode(sub_minor_key());
2264 }
2265
2266 private:
2267 class ElementsKindBits: public BitField<ElementsKind, 0, 8> {};
2268 class IsJSArrayBits: public BitField<bool, 8, 1> {};
2269 class CanConvertHoleToUndefined : public BitField<bool, 9, 1> {};
2270
2271 DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
2272 DEFINE_HANDLER_CODE_STUB(LoadFastElement, HandlerStub);
2273 };
2274
2275 class StoreFastElementStub : public TurboFanCodeStub { 2231 class StoreFastElementStub : public TurboFanCodeStub {
2276 public: 2232 public:
2277 StoreFastElementStub(Isolate* isolate, bool is_js_array, 2233 StoreFastElementStub(Isolate* isolate, bool is_js_array,
2278 ElementsKind elements_kind, KeyedAccessStoreMode mode) 2234 ElementsKind elements_kind, KeyedAccessStoreMode mode)
2279 : TurboFanCodeStub(isolate) { 2235 : TurboFanCodeStub(isolate) {
2280 minor_key_ = CommonStoreModeBits::encode(mode) | 2236 minor_key_ = CommonStoreModeBits::encode(mode) |
2281 ElementsKindBits::encode(elements_kind) | 2237 ElementsKindBits::encode(elements_kind) |
2282 IsJSArrayBits::encode(is_js_array); 2238 IsJSArrayBits::encode(is_js_array);
2283 } 2239 }
2284 2240
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
2659 #undef DEFINE_PLATFORM_CODE_STUB 2615 #undef DEFINE_PLATFORM_CODE_STUB
2660 #undef DEFINE_HANDLER_CODE_STUB 2616 #undef DEFINE_HANDLER_CODE_STUB
2661 #undef DEFINE_HYDROGEN_CODE_STUB 2617 #undef DEFINE_HYDROGEN_CODE_STUB
2662 #undef DEFINE_CODE_STUB 2618 #undef DEFINE_CODE_STUB
2663 #undef DEFINE_CODE_STUB_BASE 2619 #undef DEFINE_CODE_STUB_BASE
2664 2620
2665 } // namespace internal 2621 } // namespace internal
2666 } // namespace v8 2622 } // namespace v8
2667 2623
2668 #endif // V8_CODE_STUBS_H_ 2624 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « no previous file | src/code-stubs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698