From afabb5a9bc9757dbffaa54c35b8bd3be26f17505 Mon Sep 17 00:00:00 2001 From: "kasperl@chromium.org" Date: Tue, 22 Dec 2009 13:10:24 +0000 Subject: [PATCH] Make the FastCloneShallowArrayStub a bit prettier. TBR=fschneider@chromium.org Review URL: http://codereview.chromium.org/507069 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ia32/codegen-ia32.cc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc index 4343a4c..36d783c 100644 --- a/src/ia32/codegen-ia32.cc +++ b/src/ia32/codegen-ia32.cc @@ -6662,18 +6662,14 @@ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) { // Load boilerplate object into ecx and check if we need to create a // boilerplate. + Label slow_case; __ mov(ecx, Operand(esp, 3 * kPointerSize)); __ mov(eax, Operand(esp, 2 * kPointerSize)); - ASSERT(kPointerSize == 4); - __ mov(ecx, FieldOperand(ecx, - eax, - times_2, - FixedArray::kHeaderSize)); + ASSERT((kPointerSize == 4) && (kSmiTagSize == 1) && (kSmiTag == 0)); + __ mov(ecx, FieldOperand(ecx, eax, times_2, FixedArray::kHeaderSize)); __ cmp(ecx, Factory::undefined_value()); - Label slow_case; __ j(equal, &slow_case); - // Allocate both the JS array and the elements array in one big // allocation. This avoids multiple limit checks. __ AllocateInNewSpace(size, eax, ebx, edx, &slow_case, TAG_OBJECT); -- 2.7.4