| Index: src/arm64/stub-cache-arm64.cc
|
| diff --git a/src/arm64/stub-cache-arm64.cc b/src/arm64/stub-cache-arm64.cc
|
| index 1b2e9599368877a666a93c0a7abacd934a22cc67..aed9af998f631201240eb630b917788813bdb15b 100644
|
| --- a/src/arm64/stub-cache-arm64.cc
|
| +++ b/src/arm64/stub-cache-arm64.cc
|
| @@ -398,9 +398,7 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
|
| DoubleRegister temp_double = temps.AcquireD();
|
| __ SmiUntagToDouble(temp_double, value_reg, kSpeculativeUntag);
|
|
|
| - Label do_store, heap_number;
|
| - __ AllocateHeapNumber(storage_reg, slow, scratch1, scratch2);
|
| -
|
| + Label do_store;
|
| __ JumpIfSmi(value_reg, &do_store);
|
|
|
| __ CheckMap(value_reg, scratch1, Heap::kHeapNumberMapRootIndex,
|
| @@ -408,7 +406,7 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
|
| __ Ldr(temp_double, FieldMemOperand(value_reg, HeapNumber::kValueOffset));
|
|
|
| __ Bind(&do_store);
|
| - __ Str(temp_double, FieldMemOperand(storage_reg, HeapNumber::kValueOffset));
|
| + __ AllocateHeapNumber(storage_reg, slow, scratch1, scratch2, temp_double);
|
| }
|
|
|
| // Stub never generated for non-global objects that require access checks.
|
|
|