Chromium Code Reviews| Index: src/ia32/codegen-ia32.cc | 
| =================================================================== | 
| --- src/ia32/codegen-ia32.cc (revision 1807) | 
| +++ src/ia32/codegen-ia32.cc (working copy) | 
| @@ -5265,9 +5265,10 @@ | 
| // The call must be followed by a test eax instruction to indicate | 
| // that the inobject property case was inlined. | 
| ASSERT(answer.is_register() && answer.reg().is(eax)); | 
| - // Store the delta to the map check instruction here in the test | 
| - // instruction. | 
| - int delta_to_patch_site = __ SizeOfCodeGeneratedSince(patch_site()); | 
| + // Store the delta to the map check instruction here in the test instruction. | 
| + // Use masm_-> instead of the double underscore macro since the latter can't | 
| + // return a value. | 
| + int delta_to_patch_site = masm_->SizeOfCodeGeneratedSince(patch_site()); | 
| // Here we use masm_-> instead of the double underscore macro because | 
| // this is the instruction that gets patched and coverage code gets in | 
| // the way. | 
| @@ -5417,8 +5418,10 @@ | 
| __ bind(deferred->patch_site()); | 
| // This is the map check instruction that will be patched. | 
| // Initially use an invalid map to force a failure. | 
| - __ cmp(FieldOperand(receiver.reg(), HeapObject::kMapOffset), | 
| - Immediate(Factory::null_value())); | 
| + masm->cmp(FieldOperand(receiver.reg(), HeapObject::kMapOffset), | 
| + Immediate(Factory::null_value())); | 
| + // This branch is always a forwards branch so it's always a fixed | 
| + // size which allows the assert below to succeed and patching to work. | 
| 
 
William Hesse
2009/04/29 09:56:46
Should you explain the motivation for these other
 
 | 
| deferred->enter()->Branch(not_equal, &receiver, not_taken); | 
| // The delta from the patch label to the load offset must be | 
| @@ -5429,7 +5432,7 @@ | 
| // a 32-bit instruction encoding to allow patching with an | 
| // arbitrary offset. Use kMaxInt (minus kHeapObjectTag). | 
| int offset = kMaxInt; | 
| - __ mov(value.reg(), FieldOperand(receiver.reg(), offset)); | 
| + masm->mov(value.reg(), FieldOperand(receiver.reg(), offset)); | 
| __ IncrementCounter(&Counters::named_load_inline, 1); | 
| deferred->BindExit(&receiver, &value); |