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

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

Issue 1040183004: Generate common StoreFastElementStubs ahead of time (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 8 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.h ('k') | src/ia32/code-stubs-ia32.cc » ('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 <sstream> 7 #include <sstream>
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/cpu-profiler.h" 10 #include "src/cpu-profiler.h"
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 case DICTIONARY_ELEMENTS: 745 case DICTIONARY_ELEMENTS:
746 ElementHandlerCompiler::GenerateStoreSlow(masm); 746 ElementHandlerCompiler::GenerateStoreSlow(masm);
747 break; 747 break;
748 case SLOPPY_ARGUMENTS_ELEMENTS: 748 case SLOPPY_ARGUMENTS_ELEMENTS:
749 UNREACHABLE(); 749 UNREACHABLE();
750 break; 750 break;
751 } 751 }
752 } 752 }
753 753
754 754
755 // static
756 void StoreFastElementStub::GenerateAheadOfTime(Isolate* isolate) {
757 StoreFastElementStub(isolate, false, FAST_HOLEY_ELEMENTS, STANDARD_STORE)
758 .GetCode();
759 StoreFastElementStub(isolate, false, FAST_HOLEY_ELEMENTS,
760 STORE_AND_GROW_NO_TRANSITION).GetCode();
761 for (int i = FIRST_FAST_ELEMENTS_KIND; i <= LAST_FAST_ELEMENTS_KIND; i++) {
762 ElementsKind kind = static_cast<ElementsKind>(i);
763 StoreFastElementStub(isolate, true, kind, STANDARD_STORE).GetCode();
764 StoreFastElementStub(isolate, true, kind, STORE_AND_GROW_NO_TRANSITION)
765 .GetCode();
766 }
767 }
768
769
755 void ArgumentsAccessStub::Generate(MacroAssembler* masm) { 770 void ArgumentsAccessStub::Generate(MacroAssembler* masm) {
756 switch (type()) { 771 switch (type()) {
757 case READ_ELEMENT: 772 case READ_ELEMENT:
758 GenerateReadElement(masm); 773 GenerateReadElement(masm);
759 break; 774 break;
760 case NEW_SLOPPY_FAST: 775 case NEW_SLOPPY_FAST:
761 GenerateNewSloppyFast(masm); 776 GenerateNewSloppyFast(masm);
762 break; 777 break;
763 case NEW_SLOPPY_SLOW: 778 case NEW_SLOPPY_SLOW:
764 GenerateNewSloppySlow(masm); 779 GenerateNewSloppySlow(masm);
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 } 978 }
964 979
965 980
966 InternalArrayConstructorStub::InternalArrayConstructorStub( 981 InternalArrayConstructorStub::InternalArrayConstructorStub(
967 Isolate* isolate) : PlatformCodeStub(isolate) { 982 Isolate* isolate) : PlatformCodeStub(isolate) {
968 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 983 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
969 } 984 }
970 985
971 986
972 } } // namespace v8::internal 987 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698