| Index: src/ia32/code-stubs-ia32.cc | 
| =================================================================== | 
| --- src/ia32/code-stubs-ia32.cc	(revision 10216) | 
| +++ src/ia32/code-stubs-ia32.cc	(working copy) | 
| @@ -6670,45 +6670,33 @@ | 
| } | 
|  | 
|  | 
| -void ICCompareStub::GenerateKnownObjects(MacroAssembler* masm) { | 
| -  Label miss; | 
| -  __ mov(ecx, edx); | 
| -  __ and_(ecx, eax); | 
| -  __ JumpIfSmi(ecx, &miss, Label::kNear); | 
| - | 
| -  __ mov(ecx, FieldOperand(eax, HeapObject::kMapOffset)); | 
| -  __ mov(ebx, FieldOperand(edx, HeapObject::kMapOffset)); | 
| -  __ cmp(ecx, known_map_); | 
| -  __ j(not_equal, &miss, Label::kNear); | 
| -  __ cmp(ebx, known_map_); | 
| -  __ j(not_equal, &miss, Label::kNear); | 
| - | 
| -  __ sub(eax, edx); | 
| -  __ ret(0); | 
| - | 
| -  __ bind(&miss); | 
| -  GenerateMiss(masm); | 
| -} | 
| - | 
| - | 
| void ICCompareStub::GenerateMiss(MacroAssembler* masm) { | 
| +  // Save the registers. | 
| +  __ pop(ecx); | 
| +  __ push(edx); | 
| +  __ push(eax); | 
| +  __ push(ecx); | 
| + | 
| { | 
| // Call the runtime system in a fresh internal frame. | 
| ExternalReference miss = ExternalReference(IC_Utility(IC::kCompareIC_Miss), | 
| masm->isolate()); | 
| FrameScope scope(masm, StackFrame::INTERNAL); | 
| -    __ push(edx);  // Preserve edx and eax. | 
| +    __ push(edx); | 
| __ push(eax); | 
| -    __ push(edx);  // And also use them as the arguments. | 
| -    __ push(eax); | 
| __ push(Immediate(Smi::FromInt(op_))); | 
| __ CallExternalReference(miss, 3); | 
| -    // Compute the entry point of the rewritten stub. | 
| -    __ lea(edi, FieldOperand(eax, Code::kHeaderSize)); | 
| -    __ pop(eax); | 
| -    __ pop(edx); | 
| } | 
|  | 
| +  // Compute the entry point of the rewritten stub. | 
| +  __ lea(edi, FieldOperand(eax, Code::kHeaderSize)); | 
| + | 
| +  // Restore registers. | 
| +  __ pop(ecx); | 
| +  __ pop(eax); | 
| +  __ pop(edx); | 
| +  __ push(ecx); | 
| + | 
| // Do a tail call to the rewritten stub. | 
| __ jmp(edi); | 
| } | 
|  |