| Index: src/ia32/full-codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/full-codegen-ia32.cc (revision 4686)
|
| +++ src/ia32/full-codegen-ia32.cc (working copy)
|
| @@ -806,8 +806,8 @@
|
| __ Check(equal, "Unexpected declaration in current context.");
|
| }
|
| if (mode == Variable::CONST) {
|
| - __ mov(CodeGenerator::ContextOperand(esi, slot->index()),
|
| - Immediate(Factory::the_hole_value()));
|
| + __ mov(eax, Immediate(Factory::the_hole_value()));
|
| + __ mov(CodeGenerator::ContextOperand(esi, slot->index()), eax);
|
| // No write barrier since the hole value is in old space.
|
| } else if (function != NULL) {
|
| VisitForValue(function, kAccumulator);
|
| @@ -823,8 +823,10 @@
|
| __ push(esi);
|
| __ push(Immediate(variable->name()));
|
| // Declaration nodes are always introduced in one of two modes.
|
| - ASSERT(mode == Variable::VAR || mode == Variable::CONST);
|
| - PropertyAttributes attr = (mode == Variable::VAR) ? NONE : READ_ONLY;
|
| + ASSERT(mode == Variable::VAR ||
|
| + mode == Variable::CONST);
|
| + PropertyAttributes attr =
|
| + (mode == Variable::VAR) ? NONE : READ_ONLY;
|
| __ push(Immediate(Smi::FromInt(attr)));
|
| // Push initial value, if any.
|
| // Note: For variables we must not push an initial value (such as
|
| @@ -1009,6 +1011,7 @@
|
| __ push(eax); // Map.
|
| __ push(edx); // Enumeration cache.
|
| __ mov(eax, FieldOperand(edx, FixedArray::kLengthOffset));
|
| + __ SmiTag(eax);
|
| __ push(eax); // Enumeration cache length (as smi).
|
| __ push(Immediate(Smi::FromInt(0))); // Initial index.
|
| __ jmp(&loop);
|
| @@ -1018,6 +1021,7 @@
|
| __ push(Immediate(Smi::FromInt(0))); // Map (0) - force slow check.
|
| __ push(eax);
|
| __ mov(eax, FieldOperand(eax, FixedArray::kLengthOffset));
|
| + __ SmiTag(eax);
|
| __ push(eax); // Fixed array length (as smi).
|
| __ push(Immediate(Smi::FromInt(0))); // Initial index.
|
|
|
| @@ -1066,8 +1070,8 @@
|
| __ StackLimitCheck(&stack_limit_hit);
|
| __ bind(&stack_check_done);
|
|
|
| - // Generate code for going to the next element by incrementing the
|
| - // index (smi) stored on top of the stack.
|
| + // Generate code for the going to the next element by incrementing
|
| + // the index (smi) stored on top of the stack.
|
| __ bind(loop_statement.continue_target());
|
| __ add(Operand(esp, 0 * kPointerSize), Immediate(Smi::FromInt(1)));
|
| __ jmp(&loop);
|
| @@ -2029,9 +2033,9 @@
|
| __ j(not_zero, if_false);
|
| __ movzx_b(ecx, FieldOperand(ebx, Map::kInstanceTypeOffset));
|
| __ cmp(ecx, FIRST_JS_OBJECT_TYPE);
|
| - __ j(below, if_false);
|
| + __ j(less, if_false);
|
| __ cmp(ecx, LAST_JS_OBJECT_TYPE);
|
| - __ j(below_equal, if_true);
|
| + __ j(less_equal, if_true);
|
| __ jmp(if_false);
|
|
|
| Apply(context_, if_true, if_false);
|
| @@ -2223,7 +2227,7 @@
|
| __ mov(eax, FieldOperand(eax, HeapObject::kMapOffset));
|
| __ movzx_b(ebx, FieldOperand(eax, Map::kInstanceTypeOffset));
|
| __ cmp(ebx, FIRST_JS_OBJECT_TYPE);
|
| - __ j(below, &null);
|
| + __ j(less, &null);
|
|
|
| // As long as JS_FUNCTION_TYPE is the last instance type and it is
|
| // right after LAST_JS_OBJECT_TYPE, we can avoid checking for
|
|
|