Reviewers: Vyacheslav Egorov, Description: Second half of number alloc change accidentally omitted from last change.
Please review this at http://codereview.chromium.org/2919001/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/codegen-arm.cc M src/ia32/codegen-ia32.cc M src/runtime.cc M src/x64/codegen-x64.cc Index: src/arm/codegen-arm.cc =================================================================== --- src/arm/codegen-arm.cc (revision 5037) +++ src/arm/codegen-arm.cc (working copy) @@ -4870,12 +4870,8 @@ __ jmp(&heapnumber_allocated); __ bind(&slow_allocate_heapnumber); - // To allocate a heap number, and ensure that it is not a smi, we - // call the runtime function FUnaryMinus on 0, returning the double - // -0.0. A new, distinct heap number is returned each time. - __ mov(r0, Operand(Smi::FromInt(0))); - __ push(r0); - __ CallRuntime(Runtime::kNumberUnaryMinus, 1); + // Allocate a heap number. + __ CallRuntime(Runtime::kNumberAlloc, 0); __ mov(r4, Operand(r0)); __ bind(&heapnumber_allocated); Index: src/ia32/codegen-ia32.cc =================================================================== --- src/ia32/codegen-ia32.cc (revision 5036) +++ src/ia32/codegen-ia32.cc (working copy) @@ -6678,11 +6678,8 @@ __ jmp(&heapnumber_allocated); __ bind(&slow_allocate_heapnumber); - // To allocate a heap number, and ensure that it is not a smi, we - // call the runtime function FUnaryMinus on 0, returning the double - // -0.0. A new, distinct heap number is returned each time. - __ push(Immediate(Smi::FromInt(0))); - __ CallRuntime(Runtime::kNumberUnaryMinus, 1); + // Allocate a heap number. + __ CallRuntime(Runtime::kNumberAlloc, 0); __ mov(edi, eax); __ bind(&heapnumber_allocated); Index: src/runtime.cc =================================================================== --- src/runtime.cc (revision 5036) +++ src/runtime.cc (working copy) @@ -5608,6 +5608,14 @@ } +static Object* Runtime_NumberAlloc(Arguments args) { + NoHandleAllocation ha; + ASSERT(args.length() == 0); + + return Heap::NumberFromDouble(9876543210.0); +} + + static Object* Runtime_NumberDiv(Arguments args) { NoHandleAllocation ha; ASSERT(args.length() == 2); Index: src/x64/codegen-x64.cc =================================================================== --- src/x64/codegen-x64.cc (revision 5036) +++ src/x64/codegen-x64.cc (working copy) @@ -4664,11 +4664,8 @@ __ jmp(&heapnumber_allocated); __ bind(&slow_allocate_heapnumber); - // To allocate a heap number, and ensure that it is not a smi, we - // call the runtime function FUnaryMinus on 0, returning the double - // -0.0. A new, distinct heap number is returned each time. - __ Push(Smi::FromInt(0)); - __ CallRuntime(Runtime::kNumberUnaryMinus, 1); + // Allocate a heap number. + __ CallRuntime(Runtime::kNumberAlloc, 0); __ movq(rbx, rax); __ bind(&heapnumber_allocated); -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
