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 |