Index: src/mips64/builtins-mips64.cc |
diff --git a/src/mips64/builtins-mips64.cc b/src/mips64/builtins-mips64.cc |
index 24f25e1b60d0d8c5c7cc67c37c4dfcb01a52c40b..389d39be6c824ae1659a696ab04eaa58a13e21cb 100644 |
--- a/src/mips64/builtins-mips64.cc |
+++ b/src/mips64/builtins-mips64.cc |
@@ -224,7 +224,6 @@ |
// ----------- S t a t e ------------- |
// -- a0 : number of arguments |
// -- a1 : constructor function |
- // -- a3 : original constructor |
// -- ra : return address |
// -- sp[(argc - n - 1) * 8] : arg[n] (zero based) |
// -- sp[argc * 8] : receiver |
@@ -258,10 +257,10 @@ |
{ |
FrameScope scope(masm, StackFrame::INTERNAL); |
ToStringStub stub(masm->isolate()); |
- __ Push(a1, a3); |
+ __ Push(a1); |
__ CallStub(&stub); |
__ Move(a0, v0); |
- __ Pop(a1, a3); |
+ __ Pop(a1); |
} |
__ bind(&done_convert); |
} |
@@ -271,15 +270,10 @@ |
// ----------- S t a t e ------------- |
// -- a0 : the first argument |
// -- a1 : constructor function |
- // -- a3 : original constructor |
// -- ra : return address |
// ----------------------------------- |
- Label allocate, done_allocate, rt_call; |
- |
- // Fall back to runtime if the original constructor and function differ. |
- __ Branch(&rt_call, ne, a1, Operand(a3)); |
- |
+ Label allocate, done_allocate; |
__ Allocate(JSValue::kSize, v0, a2, a3, &allocate, TAG_OBJECT); |
__ bind(&done_allocate); |
@@ -303,17 +297,6 @@ |
__ Pop(a0, a1); |
} |
__ jmp(&done_allocate); |
- |
- // Fallback to the runtime to create new object. |
- __ bind(&rt_call); |
- { |
- FrameScope scope(masm, StackFrame::INTERNAL); |
- __ Push(a0, a1, a1, a3); // constructor function, original constructor |
- __ CallRuntime(Runtime::kNewObject, 2); |
- __ Pop(a0, a1); |
- } |
- __ sd(a0, FieldMemOperand(v0, JSValue::kValueOffset)); |
- __ Ret(); |
} |
} |
@@ -525,7 +508,7 @@ |
// a3: original constructor |
__ bind(&rt_call); |
- __ Push(a1, a3); // constructor function, original constructor |
+ __ Push(a1, a3); // arguments 2-3 / 1-2 |
__ CallRuntime(Runtime::kNewObject, 2); |
__ mov(t0, v0); |