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

Side by Side Diff: src/code-stubs-hydrogen.cc

Issue 2206333003: [stubs] Convert GrowElementsStub to TurboFan (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « src/code-stubs.cc ('k') | src/compiler/code-assembler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/code-stubs.h" 5 #include "src/code-stubs.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/crankshaft/hydrogen.h" 10 #include "src/crankshaft/hydrogen.h"
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 elements); 831 elements);
832 832
833 return bound_function; 833 return bound_function;
834 } 834 }
835 835
836 Handle<Code> FastFunctionBindStub::GenerateCode() { 836 Handle<Code> FastFunctionBindStub::GenerateCode() {
837 return DoGenerateCode(this); 837 return DoGenerateCode(this);
838 } 838 }
839 839
840 template <> 840 template <>
841 HValue* CodeStubGraphBuilder<GrowArrayElementsStub>::BuildCodeStub() {
842 ElementsKind kind = casted_stub()->elements_kind();
843 if (IsFastDoubleElementsKind(kind)) {
844 info()->MarkAsSavesCallerDoubles();
845 }
846
847 HValue* object = GetParameter(Descriptor::kObject);
848 HValue* key = GetParameter(Descriptor::kKey);
849
850 HValue* elements = AddLoadElements(object);
851 HValue* current_capacity = Add<HLoadNamedField>(
852 elements, nullptr, HObjectAccess::ForFixedArrayLength());
853
854 HValue* length =
855 casted_stub()->is_js_array()
856 ? Add<HLoadNamedField>(object, static_cast<HValue*>(NULL),
857 HObjectAccess::ForArrayLength(kind))
858 : current_capacity;
859
860 return BuildCheckAndGrowElementsCapacity(object, elements, kind, length,
861 current_capacity, key);
862 }
863
864
865 Handle<Code> GrowArrayElementsStub::GenerateCode() {
866 return DoGenerateCode(this);
867 }
868
869
870 template <>
871 HValue* CodeStubGraphBuilder<LoadFastElementStub>::BuildCodeStub() { 841 HValue* CodeStubGraphBuilder<LoadFastElementStub>::BuildCodeStub() {
872 LoadKeyedHoleMode hole_mode = casted_stub()->convert_hole_to_undefined() 842 LoadKeyedHoleMode hole_mode = casted_stub()->convert_hole_to_undefined()
873 ? CONVERT_HOLE_TO_UNDEFINED 843 ? CONVERT_HOLE_TO_UNDEFINED
874 : NEVER_RETURN_HOLE; 844 : NEVER_RETURN_HOLE;
875 845
876 HInstruction* load = BuildUncheckedMonomorphicElementAccess( 846 HInstruction* load = BuildUncheckedMonomorphicElementAccess(
877 GetParameter(Descriptor::kReceiver), GetParameter(Descriptor::kName), 847 GetParameter(Descriptor::kReceiver), GetParameter(Descriptor::kName),
878 NULL, casted_stub()->is_js_array(), casted_stub()->elements_kind(), LOAD, 848 NULL, casted_stub()->is_js_array(), casted_stub()->elements_kind(), LOAD,
879 hole_mode, STANDARD_STORE); 849 hole_mode, STANDARD_STORE);
880 return load; 850 return load;
(...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1982 return Pop(); 1952 return Pop();
1983 } 1953 }
1984 1954
1985 1955
1986 Handle<Code> KeyedLoadGenericStub::GenerateCode() { 1956 Handle<Code> KeyedLoadGenericStub::GenerateCode() {
1987 return DoGenerateCode(this); 1957 return DoGenerateCode(this);
1988 } 1958 }
1989 1959
1990 } // namespace internal 1960 } // namespace internal
1991 } // namespace v8 1961 } // namespace v8
OLDNEW
« no previous file with comments | « src/code-stubs.cc ('k') | src/compiler/code-assembler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698