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); |