A small code review. Reviewers: danno, Jakob, Paul Lind, palfia, kisg,
dcarney,
Description:
MIPS: load ics for js api accessors.
Port r16543 (3686ceb)
BUG=
Please review this at https://codereview.chromium.org/23868007/
SVN Base: https://github.com/v8/v8.git@gbl
Affected files +19, -1:
M src/mips/stub-cache-mips.cc
Index: src/mips/stub-cache-mips.cc
diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc
index
18353b66961e7d93c92ea8216283a7a14405d5d6..9a6378ba85575955494015209eeeb28190f2fc3d
100644
--- a/src/mips/stub-cache-mips.cc
+++ b/src/mips/stub-cache-mips.cc
@@ -1287,7 +1287,7 @@ Register
BaseLoadStubCompiler::CallbackHandlerFrontend(
Handle<JSObject> holder,
Handle<Name> name,
Label* success,
- Handle<ExecutableAccessorInfo> callback) {
+ Handle<Object> callback) {
Label miss;
Register reg = HandlerFrontendHeader(object, object_reg, holder, name,
&miss);
@@ -1374,6 +1374,24 @@ void
BaseLoadStubCompiler::GenerateLoadConstant(Handle<Object> value) {
void BaseLoadStubCompiler::GenerateLoadCallback(
+ const CallOptimization& call_optimization) {
+ ASSERT(call_optimization.is_simple_api_call());
+
+ // Assign stack space for the call arguments.
+ __ Subu(sp, sp, Operand((kFastApiCallArguments + 1) * kPointerSize));
+
+ int argc = 0;
+ int api_call_argc = argc + kFastApiCallArguments;
+ // Write holder to stack frame.
+ __ sw(receiver(), MemOperand(sp, 0));
+ // Write receiver to stack frame.
+ __ sw(receiver(), MemOperand(sp, api_call_argc * kPointerSize));
+
+ GenerateFastApiDirectCall(masm(), call_optimization, argc);
+}
+
+
+void BaseLoadStubCompiler::GenerateLoadCallback(
Register reg,
Handle<ExecutableAccessorInfo> callback) {
// Build AccessorInfo::args_ list on the stack and push property name
below
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.