| Index: src/ia32/codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/codegen-ia32.cc (revision 11348)
|
| +++ src/ia32/codegen-ia32.cc (working copy)
|
| @@ -397,9 +397,25 @@
|
| // Allocate new FixedDoubleArray.
|
| // edx: receiver
|
| // edi: length of source FixedArray (smi-tagged)
|
| - __ lea(esi, Operand(edi, times_4, FixedDoubleArray::kHeaderSize));
|
| + __ lea(esi, Operand(edi,
|
| + times_4,
|
| + FixedDoubleArray::kHeaderSize + kPointerSize));
|
| __ AllocateInNewSpace(esi, eax, ebx, no_reg, &gc_required, TAG_OBJECT);
|
|
|
| + Label aligned, aligned_done;
|
| + __ test(eax, Immediate(kDoubleAlignmentMask - kHeapObjectTag));
|
| + __ j(zero, &aligned, Label::kNear);
|
| + __ mov(FieldOperand(eax, 0),
|
| + Immediate(masm->isolate()->factory()->one_pointer_filler_map()));
|
| + __ add(eax, Immediate(kPointerSize));
|
| + __ jmp(&aligned_done);
|
| +
|
| + __ bind(&aligned);
|
| + __ mov(Operand(eax, esi, times_1, -kPointerSize-1),
|
| + Immediate(masm->isolate()->factory()->one_pointer_filler_map()));
|
| +
|
| + __ bind(&aligned_done);
|
| +
|
| // eax: destination FixedDoubleArray
|
| // edi: number of elements
|
| // edx: receiver
|
|
|