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

Unified Diff: src/code-stubs.cc

Issue 368263003: Use a stub in crankshaft for grow store arrays. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Performance fixes. Created 6 years, 5 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 b96013306c3658be32f60aa048afa56a71ab8504..8ef7e07491b9e5b2ef41ffea9631975f82908414 100644
--- a/src/code-stubs.cc
+++ b/src/code-stubs.cc
@@ -644,6 +644,17 @@ void KeyedStringLengthStub::InitializeInterfaceDescriptor(
}
+void GrowArrayElementsStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ Register registers[] = { ObjectRegister(),
+ KeyRegister(),
+ CapacityRegister() };
+ Address deopt_handler = Runtime::FunctionForId(
+ Runtime::kGrowArrayElements)->entry;
+ descriptor->Initialize(ARRAY_SIZE(registers), registers, deopt_handler);
+}
+
+
void KeyedLoadDictionaryElementPlatformStub::Generate(
MacroAssembler* masm) {
KeyedLoadStubCompiler::GenerateLoadDictionaryElement(masm);
@@ -656,6 +667,20 @@ void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
}
+void GrowArrayElementsStub::GenerateAheadOfTime(Isolate* isolate) {
+ // Generate for all elements kinds
+ int last_index = GetSequenceIndexFromFastElementsKind(
+ TERMINAL_FAST_ELEMENTS_KIND);
+ for (int i = 0; i <= last_index; ++i) {
+ ElementsKind kind = GetFastElementsKindFromSequenceIndex(i);
+ GrowArrayElementsStub stub1(isolate, true, kind);
+ stub1.GetCode();
+ GrowArrayElementsStub stub2(isolate, false, kind);
+ stub2.GetCode();
+ }
+}
+
+
void KeyedStoreElementStub::Generate(MacroAssembler* masm) {
switch (elements_kind_) {
case FAST_ELEMENTS:

Powered by Google App Engine
This is Rietveld 408576698