Index: src/arm/fast-codegen-arm.cc |
=================================================================== |
--- src/arm/fast-codegen-arm.cc (revision 3421) |
+++ src/arm/fast-codegen-arm.cc (working copy) |
@@ -863,7 +863,7 @@ |
void FastCodeGenerator::EmitVariableAssignment(Assignment* expr) { |
Variable* var = expr->target()->AsVariableProxy()->AsVariable(); |
ASSERT(var != NULL); |
- |
+ ASSERT(var->is_global() || var->slot() != NULL); |
if (var->is_global()) { |
// Assignment to a global variable. Use inline caching for the |
// assignment. Right-hand-side value is passed in r0, variable name in |
@@ -976,35 +976,6 @@ |
UNREACHABLE(); |
break; |
} |
- } else { |
- Property* property = var->rewrite()->AsProperty(); |
- ASSERT_NOT_NULL(property); |
- |
- // Load object and key onto the stack. |
- Slot* object_slot = property->obj()->AsSlot(); |
- ASSERT_NOT_NULL(object_slot); |
- Move(Expression::kValue, object_slot, r0); |
- |
- Literal* key_literal = property->key()->AsLiteral(); |
- ASSERT_NOT_NULL(key_literal); |
- Move(Expression::kValue, key_literal); |
- |
- // Value to store was pushed before object and key on the stack. |
- __ ldr(r0, MemOperand(sp, 2 * kPointerSize)); |
- |
- // Arguments to ic is value in r0, object and key on stack. |
- Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); |
- __ Call(ic, RelocInfo::CODE_TARGET); |
- |
- if (expr->context() == Expression::kEffect) { |
- __ add(sp, sp, Operand(3 * kPointerSize)); |
- } else if (expr->context() == Expression::kValue) { |
- // Value is still on the stack in esp[2 * kPointerSize] |
- __ add(sp, sp, Operand(2 * kPointerSize)); |
- } else { |
- __ ldr(r0, MemOperand(sp, 2 * kPointerSize)); |
- DropAndMove(expr->context(), r0, 3); |
- } |
} |
} |