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

Unified Diff: src/ia32/stub-cache-ia32.cc

Issue 160041: Stub Cache: speed up load callback accessor by allocating data handle on stack. (Closed)
Patch Set: . Created 11 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/ia32/stub-cache-ia32.cc
diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc
index e47ad1c072ff22603fee86e2e03fee7ea73295c9..fed2ef5cf4a9834f2eb904f27c463939088ef932 100644
--- a/src/ia32/stub-cache-ia32.cc
+++ b/src/ia32/stub-cache-ia32.cc
@@ -447,15 +447,17 @@ void StubCompiler::GenerateLoadCallback(JSObject* object,
// Push the arguments on the JS stack of the caller.
__ pop(scratch2); // remove return address
__ push(receiver); // receiver
- __ push(Immediate(Handle<AccessorInfo>(callback))); // callback data
- __ push(name_reg); // name
__ push(reg); // holder
+ __ mov(reg, Immediate(Handle<AccessorInfo>(callback))); // callback data
antonm 2009/07/23 21:12:58 why not __ push(Immediate....)?
Vitaly Repeshko 2009/07/24 13:45:38 I need this data in a register anyway (to support
+ __ push(reg);
+ __ push(FieldOperand(reg, AccessorInfo::kDataOffset));
antonm 2009/07/23 21:12:58 ditto (shortcutting if data is not in new space)
Vitaly Repeshko 2009/07/24 13:45:38 I tried it and my measurements didn't show any dif
+ __ push(name_reg); // name
__ push(scratch2); // restore return address
// Do tail-call to the runtime system.
ExternalReference load_callback_property =
ExternalReference(IC_Utility(IC::kLoadCallbackProperty));
- __ TailCallRuntime(load_callback_property, 4);
+ __ TailCallRuntime(load_callback_property, 5);
}

Powered by Google App Engine
This is Rietveld 408576698