Chromium Code Reviews| Index: vm/assembler_ia32.cc |
| =================================================================== |
| --- vm/assembler_ia32.cc (revision 16624) |
| +++ vm/assembler_ia32.cc (working copy) |
| @@ -1553,7 +1553,7 @@ |
| void Assembler::LoadObject(Register dst, const Object& object) { |
| - if (object.IsSmi() || object.IsNull()) { |
| + if (object.IsSmi() || object.IsNull() || object.InVMHeap()) { |
|
Ivan Posva
2013/01/04 06:42:07
Isn't the null object in the VM heap? Which would
siva
2013/01/04 18:36:10
Good point. Removed the IsNull() check.
On 2013/
|
| movl(dst, Immediate(reinterpret_cast<int32_t>(object.raw()))); |
| } else { |
| ASSERT(object.IsNotTemporaryScopedHandle()); |
| @@ -1566,7 +1566,7 @@ |
| void Assembler::PushObject(const Object& object) { |
| - if (object.IsSmi() || object.IsNull()) { |
| + if (object.IsSmi() || object.IsNull() || object.InVMHeap()) { |
| pushl(Immediate(reinterpret_cast<int32_t>(object.raw()))); |
| } else { |
| ASSERT(object.IsNotTemporaryScopedHandle()); |
| @@ -1579,7 +1579,7 @@ |
| void Assembler::CompareObject(Register reg, const Object& object) { |
| - if (object.IsSmi() || object.IsNull()) { |
| + if (object.IsSmi() || object.IsNull() || object.InVMHeap()) { |
| cmpl(reg, Immediate(reinterpret_cast<int32_t>(object.raw()))); |
| } else { |
| ASSERT(object.IsNotTemporaryScopedHandle()); |
| @@ -1655,7 +1655,7 @@ |
| void Assembler::StoreIntoObjectNoBarrier(Register object, |
| const FieldAddress& dest, |
| const Object& value) { |
| - if (value.IsSmi()) { |
| + if (value.IsSmi() || value.IsNull() || value.InVMHeap()) { |
| movl(dest, Immediate(reinterpret_cast<int32_t>(value.raw()))); |
| } else { |
| // No heap trace for an old object store. |