From c43789b6b66296e9339f7493c16472388525975e Mon Sep 17 00:00:00 2001 From: "palfia@homejinni.com" Date: Fri, 9 May 2014 20:18:12 +0000 Subject: [PATCH] Revert "MIPS: Reland r20974: Unify and simplify the FastCloneShallowArrayStub." Port r21242 (99bd67aa) Original commit message: This breaks nosnap. BUG= R=plind44@gmail.com Review URL: https://codereview.chromium.org/271233003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/code-stubs-mips.cc | 14 -------------- src/mips/full-codegen-mips.cc | 12 +++++++++++- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc index 6e033b9..a746d76 100644 --- a/src/mips/code-stubs-mips.cc +++ b/src/mips/code-stubs-mips.cc @@ -59,11 +59,6 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor( static Register registers[] = { a3, a2, a1 }; descriptor->register_param_count_ = 3; descriptor->register_params_ = registers; - static Representation representations[] = { - Representation::Tagged(), - Representation::Smi(), - Representation::Tagged() }; - descriptor->register_param_representations_ = representations; descriptor->deoptimization_handler_ = Runtime::FunctionForId( Runtime::kHiddenCreateArrayLiteralStubBailout)->entry; @@ -207,11 +202,6 @@ static void InitializeArrayConstructorDescriptor( descriptor->stack_parameter_count_ = a0; descriptor->register_param_count_ = 3; descriptor->register_params_ = registers_variable_args; - static Representation representations[] = { - Representation::Tagged(), - Representation::Tagged(), - Representation::Integer32() }; - descriptor->register_param_representations_ = representations; } descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count; @@ -239,10 +229,6 @@ static void InitializeInternalArrayConstructorDescriptor( descriptor->stack_parameter_count_ = a0; descriptor->register_param_count_ = 2; descriptor->register_params_ = registers_variable_args; - static Representation representations[] = { - Representation::Tagged(), - Representation::Integer32() }; - descriptor->register_param_representations_ = representations; } descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count; diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc index baa813a..c51f9bc 100644 --- a/src/mips/full-codegen-mips.cc +++ b/src/mips/full-codegen-mips.cc @@ -1821,7 +1821,17 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { __ Push(a3, a2, a1, a0); __ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4); } else { - FastCloneShallowArrayStub stub(isolate(), allocation_site_mode); + ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) || + FLAG_smi_only_arrays); + FastCloneShallowArrayStub::Mode mode = + FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS; + + if (has_fast_elements) { + mode = FastCloneShallowArrayStub::CLONE_ELEMENTS; + } + + FastCloneShallowArrayStub stub(isolate(), mode, allocation_site_mode, + length); __ CallStub(&stub); } -- 2.7.4