Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index 25299b5503ca394048c02d3d3ea6f0333c854ccd..2bc78fffd91ef82f29a766a26992565569d11599 100644 |
--- a/src/code-stub-assembler.h |
+++ b/src/code-stub-assembler.h |
@@ -631,7 +631,7 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* callable, |
compiler::Node* object); |
- // LoadIC helpers. |
+ // Load/StoreIC helpers. |
struct LoadICParameters { |
LoadICParameters(compiler::Node* context, compiler::Node* receiver, |
compiler::Node* name, compiler::Node* slot, |
@@ -649,6 +649,15 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* vector; |
}; |
+ struct StoreICParameters : public LoadICParameters { |
+ StoreICParameters(compiler::Node* context, compiler::Node* receiver, |
+ compiler::Node* name, compiler::Node* value, |
+ compiler::Node* slot, compiler::Node* vector) |
+ : LoadICParameters(context, receiver, name, slot, vector), |
+ value(value) {} |
+ compiler::Node* value; |
+ }; |
+ |
// Load type feedback vector from the stub caller's frame. |
compiler::Node* LoadTypeFeedbackVectorForStub(); |
@@ -660,12 +669,12 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* LoadReceiverMap(compiler::Node* receiver); |
// Checks monomorphic case. Returns {feedback} entry of the vector. |
- compiler::Node* TryMonomorphicCase(const LoadICParameters* p, |
+ compiler::Node* TryMonomorphicCase(compiler::Node* slot, |
+ compiler::Node* vector, |
compiler::Node* receiver_map, |
Label* if_handler, Variable* var_handler, |
Label* if_miss); |
- void HandlePolymorphicCase(const LoadICParameters* p, |
- compiler::Node* receiver_map, |
+ void HandlePolymorphicCase(compiler::Node* receiver_map, |
compiler::Node* feedback, Label* if_handler, |
Variable* var_handler, Label* if_miss, |
int unroll_count); |
@@ -746,6 +755,7 @@ class CodeStubAssembler : public compiler::CodeAssembler { |
void LoadGlobalIC(const LoadICParameters* p); |
void KeyedLoadIC(const LoadICParameters* p); |
void KeyedLoadICGeneric(const LoadICParameters* p); |
+ void StoreIC(const StoreICParameters* p); |
void TransitionElementsKind(compiler::Node* object, compiler::Node* map, |
ElementsKind from_kind, ElementsKind to_kind, |