From 889966a456b5ba9f09ba7e133d3e638e49048f2f Mon Sep 17 00:00:00 2001 From: "danno@chromium.org" Date: Tue, 7 Feb 2012 14:03:13 +0000 Subject: [PATCH] Properly initialize element-transitioning array literals on ARM. R=erikcorry@gmail.com BUG=v8:1930 TEST=unit tests with enable_vfp3=true Review URL: https://chromiumcodereview.appspot.com/9316131 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/code-stubs-arm.cc | 2 +- src/arm/macro-assembler-arm.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc index 3763867..c9fcfd7 100644 --- a/src/arm/code-stubs-arm.cc +++ b/src/arm/code-stubs-arm.cc @@ -7358,7 +7358,7 @@ void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { // Array literal has ElementsKind of FAST_DOUBLE_ELEMENTS. __ bind(&double_elements); __ ldr(r5, FieldMemOperand(r1, JSObject::kElementsOffset)); - __ StoreNumberToDoubleElements(r0, r3, r1, r5, r6, r7, r9, r10, + __ StoreNumberToDoubleElements(r0, r3, r1, r5, r6, r7, r9, r2, &slow_elements); __ Ret(); } diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h index 368ca5c..db9628b 100644 --- a/src/arm/macro-assembler-arm.h +++ b/src/arm/macro-assembler-arm.h @@ -803,7 +803,8 @@ class MacroAssembler: public Assembler { // Check to see if maybe_number can be stored as a double in // FastDoubleElements. If it can, store it at the index specified by key in - // the FastDoubleElements array elements, otherwise jump to fail. + // the FastDoubleElements array elements. Otherwise jump to fail, in which + // case scratch2, scratch3 and scratch4 are unmodified. void StoreNumberToDoubleElements(Register value_reg, Register key_reg, Register receiver_reg, -- 2.7.4