| Index: src/ia32/codegen-ia32.cc
|
| diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc
|
| index a22f36950a91cd60cf0a658e3b7e3a8cdaa4fbd0..350a8fb2242a8a5f6ae66ddb9e518a930d90e77c 100644
|
| --- a/src/ia32/codegen-ia32.cc
|
| +++ b/src/ia32/codegen-ia32.cc
|
| @@ -783,8 +783,7 @@ void ElementsTransitionGenerator::GenerateDoubleToObject(
|
| // -- edx : receiver
|
| // -- esp[0] : return address
|
| // -----------------------------------
|
| - Label loop, entry, convert_hole, gc_required, gc_cleanup, only_change_map,
|
| - success;
|
| + Label loop, entry, convert_hole, gc_required, only_change_map, success;
|
|
|
| if (mode == TRACK_ALLOCATION_SITE) {
|
| __ JumpIfJSArrayHasAllocationMemento(edx, edi, fail);
|
| @@ -830,16 +829,8 @@ void ElementsTransitionGenerator::GenerateDoubleToObject(
|
| OMIT_SMI_CHECK);
|
| __ jmp(&success);
|
|
|
| - __ bind(&gc_cleanup);
|
| -#ifdef VERIFY_HEAP
|
| - // Make sure new space is iterable if we are verifying the heap.
|
| - __ mov(edx, masm->isolate()->factory()->one_pointer_filler_map());
|
| - __ mov(FieldOperand(eax, ebx, times_2, FixedArray::kHeaderSize), edx);
|
| - __ sub(ebx, Immediate(Smi::FromInt(1)));
|
| - __ j(not_sign, &gc_cleanup);
|
| -#endif
|
| - __ bind(&gc_required);
|
| // Call into runtime if GC is required.
|
| + __ bind(&gc_required);
|
| __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
|
| __ pop(ebx);
|
| __ pop(edx);
|
| @@ -856,7 +847,7 @@ void ElementsTransitionGenerator::GenerateDoubleToObject(
|
| __ j(equal, &convert_hole);
|
|
|
| // Non-hole double, copy value into a heap number.
|
| - __ AllocateHeapNumber(edx, esi, no_reg, &gc_cleanup);
|
| + __ AllocateHeapNumber(edx, esi, no_reg, &gc_required);
|
| // edx: new heap number
|
| if (CpuFeatures::IsSupported(SSE2)) {
|
| CpuFeatureScope fscope(masm, SSE2);
|
|
|