Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: src/code-stubs.cc

Issue 2024253002: [stubs] Remove N-argument Hydrogen-based Array constructor stub (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix arm64 Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/code-stubs.cc
diff --git a/src/code-stubs.cc b/src/code-stubs.cc
index 07cb4f11dd10b6fd9f8749675a7714e16360d9cc..2027ed97f0423a5a845c9e543e22eccc5c453760 100644
--- a/src/code-stubs.cc
+++ b/src/code-stubs.cc
@@ -4501,16 +4501,6 @@ void ArrayConstructorStub::PrintName(std::ostream& os) const { // NOLINT
}
-std::ostream& ArrayConstructorStubBase::BasePrintName(
- std::ostream& os, // NOLINT
- const char* name) const {
- os << name << "_" << ElementsKindToString(elements_kind());
- if (override_mode() == DISABLE_ALLOCATION_SITES) {
- os << "_DISABLE_ALLOCATION_SITES";
- }
- return os;
-}
-
bool ToBooleanICStub::UpdateStatus(Handle<Object> object) {
Types new_types = types();
Types old_types = new_types;
@@ -4648,7 +4638,6 @@ void SingleArgumentConstructorCommon(CodeStubAssembler* assembler,
ElementsKind elements_kind,
compiler::Node* array_map,
compiler::Node* allocation_site,
- Runtime::FunctionId runtime_fallback,
AllocationSiteMode mode) {
typedef compiler::Node Node;
typedef CodeStubAssembler::Label Label;
@@ -4687,21 +4676,14 @@ void SingleArgumentConstructorCommon(CodeStubAssembler* assembler,
{
Node* context = assembler->Parameter(
ArraySingleArgumentConstructorDescriptor::kContextIndex);
- Node* constructor = assembler->Parameter(
+ Node* function = assembler->Parameter(
ArraySingleArgumentConstructorDescriptor::kFunctionIndex);
- Node* argument_count = assembler->Parameter(
- ArraySingleArgumentConstructorDescriptor::kArgumentsCountIndex);
- Node* argument_base_offset = assembler->IntPtrAdd(
- assembler->IntPtrConstant(CommonFrameConstants::kFixedFrameSizeAboveFp -
- kPointerSize),
- assembler->Word32Shl(argument_count,
- assembler->IntPtrConstant(kPointerSizeLog2)));
- Node* argument_base = assembler->IntPtrAdd(assembler->LoadFramePointer(),
- argument_base_offset);
- Node* array = assembler->CallRuntime(
- runtime_fallback, context, constructor, argument_base,
- assembler->SmiTag(argument_count), allocation_site);
- assembler->Return(array);
+ Node* array_size = assembler->Parameter(
+ ArraySingleArgumentConstructorDescriptor::kArraySizeSmiParameterIndex);
+ Node* allocation_site = assembler->Parameter(
+ ArraySingleArgumentConstructorDescriptor::kAllocationSiteIndex);
+ assembler->TailCallRuntime(Runtime::kNewArray, context, function,
+ array_size, function, allocation_site);
}
}
} // namespace
@@ -4720,9 +4702,8 @@ void ArraySingleArgumentConstructorStub::GenerateAssembly(
: AllocationSite::GetMode(elements_kind());
Node* allocation_site = assembler->Parameter(
ArrayNoArgumentConstructorDescriptor::kAllocationSiteIndex);
- SingleArgumentConstructorCommon(
- assembler, elements_kind(), array_map, allocation_site,
- Runtime::kArraySingleArgumentConstructor, mode);
+ SingleArgumentConstructorCommon(assembler, elements_kind(), array_map,
+ allocation_site, mode);
}
void InternalArraySingleArgumentConstructorStub::GenerateAssembly(
@@ -4732,15 +4713,14 @@ void InternalArraySingleArgumentConstructorStub::GenerateAssembly(
ArraySingleArgumentConstructorDescriptor::kFunctionIndex);
Node* array_map = assembler->LoadObjectField(
function, JSFunction::kPrototypeOrInitialMapOffset);
- SingleArgumentConstructorCommon(
- assembler, elements_kind(), array_map, assembler->UndefinedConstant(),
- Runtime::kArraySingleArgumentConstructor, DONT_TRACK_ALLOCATION_SITE);
+ SingleArgumentConstructorCommon(assembler, elements_kind(), array_map,
+ assembler->UndefinedConstant(),
+ DONT_TRACK_ALLOCATION_SITE);
}
ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate)
: PlatformCodeStub(isolate) {
minor_key_ = ArgumentCountBits::encode(ANY);
- ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
}
@@ -4756,15 +4736,10 @@ ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate,
} else {
UNREACHABLE();
}
- ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
-}
-
-
-InternalArrayConstructorStub::InternalArrayConstructorStub(
- Isolate* isolate) : PlatformCodeStub(isolate) {
- InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
}
+InternalArrayConstructorStub::InternalArrayConstructorStub(Isolate* isolate)
+ : PlatformCodeStub(isolate) {}
Representation RepresentationFromType(Type* type) {
if (type->Is(Type::UntaggedIntegral())) {
« no previous file with comments | « src/code-stubs.h ('k') | src/code-stubs-hydrogen.cc » ('j') | src/mips/code-stubs-mips.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698