| Index: src/arm/stub-cache-arm.cc
|
| diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
|
| index 866ab5575ba556806a2bc2293f57af82d3ba4f51..9cb950392fdda0a8e363d8293708b43479f25b4b 100644
|
| --- a/src/arm/stub-cache-arm.cc
|
| +++ b/src/arm/stub-cache-arm.cc
|
| @@ -4690,9 +4690,12 @@ void KeyedStoreStubCompiler::GenerateStoreFastDoubleElement(
|
| // -- r1 : key
|
| // -- r2 : receiver
|
| // -- lr : return address
|
| - // -- r3 : scratch
|
| + // -- r3 : scratch (elements backing store)
|
| // -- r4 : scratch
|
| // -- r5 : scratch
|
| + // -- r6 : scratch
|
| + // -- r7 : scratch
|
| + // -- r9 : scratch
|
| // -----------------------------------
|
| Label miss_force_generic, transition_elements_kind, grow, slow;
|
| Label finish_store, check_capacity;
|
| @@ -4705,6 +4708,7 @@ void KeyedStoreStubCompiler::GenerateStoreFastDoubleElement(
|
| Register scratch2 = r5;
|
| Register scratch3 = r6;
|
| Register scratch4 = r7;
|
| + Register scratch5 = r9;
|
| Register length_reg = r7;
|
|
|
| // This stub is meant to be tail-jumped to, the receiver must already
|
| @@ -4799,14 +4803,15 @@ void KeyedStoreStubCompiler::GenerateStoreFastDoubleElement(
|
| __ str(scratch2, FieldMemOperand(elements_reg, offset + kPointerSize));
|
| }
|
|
|
| + __ mov(scratch1, elements_reg);
|
| __ StoreNumberToDoubleElements(value_reg,
|
| key_reg,
|
| // All registers after this are overwritten.
|
| - elements_reg,
|
| scratch1,
|
| scratch2,
|
| scratch3,
|
| scratch4,
|
| + scratch5,
|
| &transition_elements_kind);
|
|
|
| // Install the new backing store in the JSArray.
|
|
|