Chromium Code Reviews| Index: src/arm/builtins-arm.cc |
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc |
| index d08216c74adb878f70dbfe0dc9f87eaac1ef7c0a..7607326b34c3df7642b383350f784e43412b994b 100644 |
| --- a/src/arm/builtins-arm.cc |
| +++ b/src/arm/builtins-arm.cc |
| @@ -332,12 +332,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
| { |
| FrameAndConstantPoolScope scope(masm, StackFrame::CONSTRUCT); |
| - if (create_memento) { |
| - __ AssertUndefinedOrAllocationSite(r2, r4); |
| - __ push(r2); |
| - } |
| - |
| // Preserve the incoming parameters on the stack. |
| + __ AssertUndefinedOrAllocationSite(r2, r4); |
| + __ push(r2); |
| __ SmiTag(r0); |
| __ push(r0); |
| __ push(r1); |
| @@ -476,7 +473,8 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
| DCHECK_EQ(0 * kPointerSize, AllocationMemento::kMapOffset); |
| __ str(r6, MemOperand(r5, kPointerSize, PostIndex)); |
| // Load the AllocationSite |
| - __ ldr(r6, MemOperand(sp, 2 * kPointerSize)); |
| + __ ldr(r6, MemOperand(sp, 3 * kPointerSize)); |
| + __ AssertUndefinedOrAllocationSite(r6, r4); |
|
Michael Starzinger
2015/07/16 15:40:12
This will clobber r4, which contains the untagged
Michael Lippautz
2015/07/16 16:55:11
Done.
|
| DCHECK_EQ(1 * kPointerSize, AllocationMemento::kAllocationSiteOffset); |
| __ str(r6, MemOperand(r5, kPointerSize, PostIndex)); |
| } else { |
| @@ -664,12 +662,12 @@ void Builtins::Generate_JSConstructStubForDerived(MacroAssembler* masm) { |
| // -- sp[...]: constructor arguments |
| // ----------------------------------- |
| - // TODO(dslomov): support pretenuring |
| - CHECK(!FLAG_pretenuring_call_new); |
| - |
| { |
| FrameScope frame_scope(masm, StackFrame::CONSTRUCT); |
| + __ AssertUndefinedOrAllocationSite(r2, r4); |
| + __ push(r2); |
| + |
| __ mov(r4, r0); |
| __ SmiTag(r4); |
| __ push(r4); // Smi-tagged arguments count. |