From 110003ca2a4b373b6f97e3c0122ad3bc1694b436 Mon Sep 17 00:00:00 2001 From: "dslomov@chromium.org" Date: Wed, 20 Mar 2013 12:01:49 +0000 Subject: [PATCH] Remove boilerplate code from HydrogenCodeStubs git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/code-stubs-hydrogen.cc | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc index 6e61c78..171e9a8 100644 --- a/src/code-stubs-hydrogen.cc +++ b/src/code-stubs-hydrogen.cc @@ -167,6 +167,14 @@ class CodeStubGraphBuilder: public CodeStubGraphBuilderBase { }; +template +static Handle DoGenerateCode(Stub* stub) { + CodeStubGraphBuilder builder(stub); + LChunk* chunk = OptimizeGraph(builder.CreateGraph()); + return chunk->Codegen(Code::COMPILED_STUB); +} + + template <> HValue* CodeStubGraphBuilder::BuildCodeStub() { Zone* zone = this->zone(); @@ -218,12 +226,9 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { Handle FastCloneShallowObjectStub::GenerateCode() { - CodeStubGraphBuilder builder(this); - LChunk* chunk = OptimizeGraph(builder.CreateGraph()); - return chunk->Codegen(Code::COMPILED_STUB); + return DoGenerateCode(this); } - template <> HValue* CodeStubGraphBuilder::BuildCodeStub() { HInstruction* load = BuildUncheckedMonomorphicElementAccess( @@ -235,9 +240,7 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { Handle KeyedLoadFastElementStub::GenerateCode() { - CodeStubGraphBuilder builder(this); - LChunk* chunk = OptimizeGraph(builder.CreateGraph()); - return chunk->Codegen(Code::COMPILED_STUB); + return DoGenerateCode(this); } @@ -329,9 +332,7 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { Handle ArrayNoArgumentConstructorStub::GenerateCode() { - CodeStubGraphBuilder builder(this); - LChunk* chunk = OptimizeGraph(builder.CreateGraph()); - return chunk->Codegen(Code::COMPILED_STUB); + return DoGenerateCode(this); } @@ -346,16 +347,12 @@ HValue* CodeStubGraphBuilder:: Handle TransitionElementsKindStub::GenerateCode() { - CodeStubGraphBuilder builder(this); - LChunk* chunk = OptimizeGraph(builder.CreateGraph()); - return chunk->Codegen(Code::COMPILED_STUB); + return DoGenerateCode(this); } Handle ArraySingleArgumentConstructorStub::GenerateCode() { - CodeStubGraphBuilder builder(this); - LChunk* chunk = OptimizeGraph(builder.CreateGraph()); - return chunk->Codegen(Code::COMPILED_STUB); + return DoGenerateCode(this); } @@ -369,9 +366,7 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { Handle ArrayNArgumentsConstructorStub::GenerateCode() { - CodeStubGraphBuilder builder(this); - LChunk* chunk = OptimizeGraph(builder.CreateGraph()); - return chunk->Codegen(Code::COMPILED_STUB); + return DoGenerateCode(this); } } } // namespace v8::internal -- 2.7.4