Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 2c5fd6820f38cfde6e57bcafa8a5e2a0eb09376b..c5869b1f3c1a97715c61d54fd7e408f029c6586d 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -76,7 +76,6 @@ namespace internal { |
V(KeyedLoadGeneric) \ |
V(LoadScriptContextField) \ |
V(LoadDictionaryElement) \ |
- V(LoadFastElement) \ |
V(MegamorphicLoad) \ |
V(NameDictionaryLookup) \ |
V(NumberToString) \ |
@@ -95,6 +94,7 @@ namespace internal { |
/* IC Handler stubs */ \ |
V(ArrayBufferViewLoadField) \ |
V(LoadConstant) \ |
+ V(LoadFastElement) \ |
V(LoadField) \ |
V(KeyedLoadSloppyArguments) \ |
V(StoreField) \ |
@@ -2352,18 +2352,20 @@ class StoreScriptContextFieldStub : public ScriptContextFieldStub { |
}; |
-class LoadFastElementStub : public HydrogenCodeStub { |
+class LoadFastElementStub : public HandlerStub { |
public: |
LoadFastElementStub(Isolate* isolate, bool is_js_array, |
ElementsKind elements_kind, |
bool convert_hole_to_undefined = false) |
- : HydrogenCodeStub(isolate) { |
+ : HandlerStub(isolate) { |
set_sub_minor_key( |
ElementsKindBits::encode(elements_kind) | |
IsJSArrayBits::encode(is_js_array) | |
CanConvertHoleToUndefined::encode(convert_hole_to_undefined)); |
} |
+ Code::Kind kind() const override { return Code::KEYED_LOAD_IC; } |
+ |
bool is_js_array() const { return IsJSArrayBits::decode(sub_minor_key()); } |
bool convert_hole_to_undefined() const { |
return CanConvertHoleToUndefined::decode(sub_minor_key()); |
@@ -2378,14 +2380,7 @@ class LoadFastElementStub : public HydrogenCodeStub { |
class IsJSArrayBits: public BitField<bool, 8, 1> {}; |
class CanConvertHoleToUndefined : public BitField<bool, 9, 1> {}; |
- CallInterfaceDescriptor GetCallInterfaceDescriptor() override { |
- if (FLAG_vector_ics) { |
- return VectorLoadICDescriptor(isolate()); |
- } |
- return LoadDescriptor(isolate()); |
- } |
- |
- DEFINE_HYDROGEN_CODE_STUB(LoadFastElement, HydrogenCodeStub); |
+ DEFINE_HANDLER_CODE_STUB(LoadFastElement, HandlerStub); |
}; |