| Index: src/arm/code-stubs-arm.cc
|
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
|
| index 74d13e01961200520d6dc30b89baba56cff8f798..e5471fd540b2272f5c99209c5edbf9b8b7f39a11 100644
|
| --- a/src/arm/code-stubs-arm.cc
|
| +++ b/src/arm/code-stubs-arm.cc
|
| @@ -486,68 +486,6 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| -void FastNewBlockContextStub::Generate(MacroAssembler* masm) {
|
| - // Stack layout on entry:
|
| - //
|
| - // [sp]: function.
|
| - // [sp + kPointerSize]: serialized scope info
|
| -
|
| - // Try to allocate the context in new space.
|
| - Label gc;
|
| - int length = slots_ + Context::MIN_CONTEXT_SLOTS;
|
| - __ Allocate(FixedArray::SizeFor(length), r0, r1, r2, &gc, TAG_OBJECT);
|
| -
|
| - // Load the function from the stack.
|
| - __ ldr(r3, MemOperand(sp, 0));
|
| -
|
| - // Load the serialized scope info from the stack.
|
| - __ ldr(r1, MemOperand(sp, 1 * kPointerSize));
|
| -
|
| - // Set up the object header.
|
| - __ LoadRoot(r2, Heap::kBlockContextMapRootIndex);
|
| - __ str(r2, FieldMemOperand(r0, HeapObject::kMapOffset));
|
| - __ mov(r2, Operand(Smi::FromInt(length)));
|
| - __ str(r2, FieldMemOperand(r0, FixedArray::kLengthOffset));
|
| -
|
| - // If this block context is nested in the native context we get a smi
|
| - // sentinel instead of a function. The block context should get the
|
| - // canonical empty function of the native context as its closure which
|
| - // we still have to look up.
|
| - Label after_sentinel;
|
| - __ JumpIfNotSmi(r3, &after_sentinel);
|
| - if (FLAG_debug_code) {
|
| - __ cmp(r3, Operand::Zero());
|
| - __ Assert(eq, kExpected0AsASmiSentinel);
|
| - }
|
| - __ ldr(r3, GlobalObjectOperand());
|
| - __ ldr(r3, FieldMemOperand(r3, GlobalObject::kNativeContextOffset));
|
| - __ ldr(r3, ContextOperand(r3, Context::CLOSURE_INDEX));
|
| - __ bind(&after_sentinel);
|
| -
|
| - // Set up the fixed slots, copy the global object from the previous context.
|
| - __ ldr(r2, ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX));
|
| - __ str(r3, ContextOperand(r0, Context::CLOSURE_INDEX));
|
| - __ str(cp, ContextOperand(r0, Context::PREVIOUS_INDEX));
|
| - __ str(r1, ContextOperand(r0, Context::EXTENSION_INDEX));
|
| - __ str(r2, ContextOperand(r0, Context::GLOBAL_OBJECT_INDEX));
|
| -
|
| - // Initialize the rest of the slots to the hole value.
|
| - __ LoadRoot(r1, Heap::kTheHoleValueRootIndex);
|
| - for (int i = 0; i < slots_; i++) {
|
| - __ str(r1, ContextOperand(r0, i + Context::MIN_CONTEXT_SLOTS));
|
| - }
|
| -
|
| - // Remove the on-stack argument and return.
|
| - __ mov(cp, r0);
|
| - __ add(sp, sp, Operand(2 * kPointerSize));
|
| - __ Ret();
|
| -
|
| - // Need to collect. Call into runtime system.
|
| - __ bind(&gc);
|
| - __ TailCallRuntime(Runtime::kPushBlockContext, 2, 1);
|
| -}
|
| -
|
| -
|
| // Takes a Smi and converts to an IEEE 64 bit floating point value in two
|
| // registers. The format is 1 sign bit, 11 exponent bits (biased 1023) and
|
| // 52 fraction bits (20 in the first word, 32 in the second). Zeros is a
|
|
|