Index: src/compiler/js-generic-lowering.cc |
diff --git a/src/compiler/js-generic-lowering.cc b/src/compiler/js-generic-lowering.cc |
index ac64f460f29ad4b7f492a71554ce6333b0fb321c..e07daf0c721936cd951d196b1af7b75eecf47611 100644 |
--- a/src/compiler/js-generic-lowering.cc |
+++ b/src/compiler/js-generic-lowering.cc |
@@ -224,6 +224,9 @@ void JSGenericLowering::LowerJSLoadGlobal(Node* node) { |
void JSGenericLowering::LowerJSStoreProperty(Node* node) { |
+ Node* receiver = NodeProperties::GetValueInput(node, 0); |
+ Node* key = NodeProperties::GetValueInput(node, 1); |
+ Node* value = NodeProperties::GetValueInput(node, 2); |
Node* closure = NodeProperties::GetValueInput(node, 3); |
Node* effect = NodeProperties::GetEffectInput(node); |
Node* control = NodeProperties::GetControlInput(node); |
@@ -242,14 +245,22 @@ void JSGenericLowering::LowerJSStoreProperty(Node* node) { |
jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset - |
kHeapObjectTag), |
effect, control); |
- node->InsertInput(zone(), 3, jsgraph()->SmiConstant(p.feedback().index())); |
- node->ReplaceInput(4, vector); |
+ typedef StoreWithVectorDescriptor Descriptor; |
+ node->InsertInputs(zone(), 0, 1); |
+ node->ReplaceInput(Descriptor::kReceiver, receiver); |
+ node->ReplaceInput(Descriptor::kName, key); |
+ node->ReplaceInput(Descriptor::kValue, value); |
+ node->ReplaceInput(Descriptor::kSlot, |
+ jsgraph()->SmiConstant(p.feedback().index())); |
+ node->ReplaceInput(Descriptor::kVector, vector); |
node->ReplaceInput(7, effect); |
ReplaceWithStubCall(node, callable, flags); |
} |
void JSGenericLowering::LowerJSStoreNamed(Node* node) { |
+ Node* receiver = NodeProperties::GetValueInput(node, 0); |
+ Node* value = NodeProperties::GetValueInput(node, 1); |
Node* closure = NodeProperties::GetValueInput(node, 2); |
Node* effect = NodeProperties::GetEffectInput(node); |
Node* control = NodeProperties::GetControlInput(node); |
@@ -267,15 +278,21 @@ void JSGenericLowering::LowerJSStoreNamed(Node* node) { |
jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset - |
kHeapObjectTag), |
effect, control); |
- node->InsertInput(zone(), 1, jsgraph()->HeapConstant(p.name())); |
- node->InsertInput(zone(), 3, jsgraph()->SmiConstant(p.feedback().index())); |
- node->ReplaceInput(4, vector); |
+ typedef StoreWithVectorDescriptor Descriptor; |
+ node->InsertInputs(zone(), 0, 2); |
+ node->ReplaceInput(Descriptor::kReceiver, receiver); |
+ node->ReplaceInput(Descriptor::kName, jsgraph()->HeapConstant(p.name())); |
+ node->ReplaceInput(Descriptor::kValue, value); |
+ node->ReplaceInput(Descriptor::kSlot, |
+ jsgraph()->SmiConstant(p.feedback().index())); |
+ node->ReplaceInput(Descriptor::kVector, vector); |
node->ReplaceInput(7, effect); |
ReplaceWithStubCall(node, callable, flags); |
} |
void JSGenericLowering::LowerJSStoreGlobal(Node* node) { |
+ Node* value = NodeProperties::GetValueInput(node, 0); |
Node* closure = NodeProperties::GetValueInput(node, 1); |
Node* context = NodeProperties::GetContextInput(node); |
Node* effect = NodeProperties::GetEffectInput(node); |
@@ -304,10 +321,14 @@ void JSGenericLowering::LowerJSStoreGlobal(Node* node) { |
machine()->Load(MachineType::AnyTagged()), native_context, |
jsgraph()->IntPtrConstant(Context::SlotOffset(Context::EXTENSION_INDEX)), |
effect, control); |
- node->InsertInput(zone(), 0, global); |
- node->InsertInput(zone(), 1, jsgraph()->HeapConstant(p.name())); |
- node->InsertInput(zone(), 3, jsgraph()->SmiConstant(p.feedback().index())); |
- node->ReplaceInput(4, vector); |
+ typedef StoreWithVectorDescriptor Descriptor; |
+ node->InsertInputs(zone(), 0, 3); |
+ node->ReplaceInput(Descriptor::kReceiver, global); |
+ node->ReplaceInput(Descriptor::kName, jsgraph()->HeapConstant(p.name())); |
+ node->ReplaceInput(Descriptor::kValue, value); |
+ node->ReplaceInput(Descriptor::kSlot, |
+ jsgraph()->SmiConstant(p.feedback().index())); |
+ node->ReplaceInput(Descriptor::kVector, vector); |
node->ReplaceInput(7, effect); |
ReplaceWithStubCall(node, callable, flags); |
} |