Revision: 19767
Author: [email protected]
Date: Mon Mar 10 16:22:39 2014 UTC
Log: MIPS: Allowed keyed store callbacks ic generation.
Port r19744 (b05fa4a)
BUG=
[email protected]
Review URL: https://codereview.chromium.org/191443007
Patch from Balazs Kilvady <[email protected]>.
http://code.google.com/p/v8/source/detail?r=19767
Modified:
/branches/bleeding_edge/src/mips/stub-cache-mips.cc
=======================================
--- /branches/bleeding_edge/src/mips/stub-cache-mips.cc Mon Mar 10 12:23:05
2014 UTC
+++ /branches/bleeding_edge/src/mips/stub-cache-mips.cc Mon Mar 10 16:22:39
2014 UTC
@@ -1242,20 +1242,16 @@
void StoreStubCompiler::GenerateStoreViaSetter(
MacroAssembler* masm,
Handle<HeapType> type,
+ Register receiver,
Handle<JSFunction> setter) {
// ----------- S t a t e -------------
- // -- a0 : value
- // -- a1 : receiver
- // -- a2 : name
// -- ra : return address
// -----------------------------------
{
FrameScope scope(masm, StackFrame::INTERNAL);
- Register receiver = a1;
- Register value = a0;
// Save value register, so we can restore it later.
- __ push(value);
+ __ push(value());
if (!setter.is_null()) {
// Call the JavaScript setter with receiver and value on the stack.
@@ -1265,7 +1261,7 @@
FieldMemOperand(
receiver, JSGlobalObject::kGlobalReceiverOffset));
}
- __ Push(receiver, value);
+ __ Push(receiver, value());
ParameterCount actual(1);
ParameterCount expected(setter);
__ InvokeFunction(setter, expected, actual,
@@ -1331,18 +1327,23 @@
static Register registers[] = { a1, a0, a2, a3, t0, t1 };
return registers;
}
+
+
+Register StoreStubCompiler::value() {
+ return a0;
+}
Register* StoreStubCompiler::registers() {
- // receiver, name, value, scratch1, scratch2, scratch3.
- static Register registers[] = { a1, a2, a0, a3, t0, t1 };
+ // receiver, name, scratch1, scratch2, scratch3.
+ static Register registers[] = { a1, a2, a3, t0, t1 };
return registers;
}
Register* KeyedStoreStubCompiler::registers() {
- // receiver, name, value, scratch1, scratch2, scratch3.
- static Register registers[] = { a2, a1, a0, a3, t0, t1 };
+ // receiver, name, scratch1, scratch2, scratch3.
+ static Register registers[] = { a2, a1, a3, t0, t1 };
return registers;
}
--
--
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/d/optout.