Chromium Code Reviews| Index: src/full-codegen/full-codegen.cc |
| diff --git a/src/full-codegen/full-codegen.cc b/src/full-codegen/full-codegen.cc |
| index b8aff87a3ba5f809672dd5edbd866ded7be03ad6..2c5d979cf1d3f3563d698a947af3da456eeb37d5 100644 |
| --- a/src/full-codegen/full-codegen.cc |
| +++ b/src/full-codegen/full-codegen.cc |
| @@ -237,6 +237,14 @@ void FullCodeGenerator::CallLoadGlobalIC(TypeofMode typeof_mode, |
| void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { |
| Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code(); |
| + |
| + STATIC_ASSERT(!StoreDescriptor::kPassLastArgsOnStack || |
| + StoreDescriptor::kStackArgumentsCount == 2); |
| + if (StoreDescriptor::kPassLastArgsOnStack) { |
| + __ Push(StoreDescriptor::ValueRegister()); |
| + __ Push(StoreDescriptor::SlotRegister()); |
| + } |
|
mvstanton
2016/09/22 08:06:24
Would it be better to push these values directly o
Igor Sheludko
2016/09/22 08:41:09
Yes it would. Let me address this in a follow-up C
|
| + |
| CallIC(ic, id); |
| RestoreContext(); |
| } |
| @@ -244,6 +252,14 @@ void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { |
| void FullCodeGenerator::CallKeyedStoreIC() { |
| Handle<Code> ic = |
| CodeFactory::KeyedStoreIC(isolate(), language_mode()).code(); |
| + |
| + STATIC_ASSERT(!StoreDescriptor::kPassLastArgsOnStack || |
| + StoreDescriptor::kStackArgumentsCount == 2); |
| + if (StoreDescriptor::kPassLastArgsOnStack) { |
| + __ Push(StoreDescriptor::ValueRegister()); |
| + __ Push(StoreDescriptor::SlotRegister()); |
| + } |
| + |
| CallIC(ic); |
| RestoreContext(); |
| } |