| Index: src/ic/ia32/ic-ia32.cc
|
| diff --git a/src/ic/ia32/ic-ia32.cc b/src/ic/ia32/ic-ia32.cc
|
| index 7a6a41541ccac5c20afcd5248fecbb3c0960119b..d683264e135e16e23b2bb372808c65154402ac85 100644
|
| --- a/src/ic/ia32/ic-ia32.cc
|
| +++ b/src/ic/ia32/ic-ia32.cc
|
| @@ -577,7 +577,7 @@
|
| Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
|
| Code::ComputeHandlerFlags(Code::STORE_IC));
|
| masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
|
| - receiver, key, edi, no_reg);
|
| + receiver, key, ebx, no_reg);
|
|
|
| if (FLAG_vector_stores) {
|
| __ pop(VectorStoreICDescriptor::VectorRegister());
|
| @@ -734,12 +734,6 @@
|
|
|
|
|
| void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
|
| - if (FLAG_vector_stores) {
|
| - // This shouldn't be called.
|
| - __ int3();
|
| - return;
|
| - }
|
| -
|
| // Return address is on the stack.
|
| Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
|
| Code::ComputeHandlerFlags(Code::STORE_IC));
|
| @@ -793,32 +787,22 @@
|
| Register receiver = StoreDescriptor::ReceiverRegister();
|
| Register name = StoreDescriptor::NameRegister();
|
| Register value = StoreDescriptor::ValueRegister();
|
| - Register vector = VectorStoreICDescriptor::VectorRegister();
|
| - Register slot = VectorStoreICDescriptor::SlotRegister();
|
| + Register dictionary = ebx;
|
| +
|
| + __ mov(dictionary, FieldOperand(receiver, JSObject::kPropertiesOffset));
|
|
|
| // A lot of registers are needed for storing to slow case
|
| // objects. Push and restore receiver but rely on
|
| // GenerateDictionaryStore preserving the value and name.
|
| __ push(receiver);
|
| - if (FLAG_vector_stores) {
|
| - __ push(vector);
|
| - __ push(slot);
|
| - }
|
| -
|
| - Register dictionary = ebx;
|
| - __ mov(dictionary, FieldOperand(receiver, JSObject::kPropertiesOffset));
|
| GenerateDictionaryStore(masm, &restore_miss, dictionary, name, value,
|
| receiver, edi);
|
| - __ Drop(FLAG_vector_stores ? 3 : 1);
|
| + __ Drop(1);
|
| Counters* counters = masm->isolate()->counters();
|
| __ IncrementCounter(counters->store_normal_hit(), 1);
|
| __ ret(0);
|
|
|
| __ bind(&restore_miss);
|
| - if (FLAG_vector_stores) {
|
| - __ pop(slot);
|
| - __ pop(vector);
|
| - }
|
| __ pop(receiver);
|
| __ IncrementCounter(counters->store_normal_miss(), 1);
|
| GenerateMiss(masm);
|
|
|