Index: runtime/vm/assembler_ia32.cc |
diff --git a/runtime/vm/assembler_ia32.cc b/runtime/vm/assembler_ia32.cc |
index dbba71ba15573a8d6a528d576e198817b8a2834a..807401c589f29d357eda86c58df69c4b60a17f2f 100644 |
--- a/runtime/vm/assembler_ia32.cc |
+++ b/runtime/vm/assembler_ia32.cc |
@@ -1422,10 +1422,9 @@ void Assembler::StoreIntoObjectFilter(Register object, |
void Assembler::StoreIntoObject(Register object, |
const FieldAddress& dest, |
Register value) { |
- // TODO(kmillikin): pass temp registers to avoid pushing registers. |
+ ASSERT(object != value); |
movl(dest, value); |
Label done; |
- pushl(value); |
StoreIntoObjectFilter(object, value, &done); |
// A store buffer update is required. |
if (value != EAX) pushl(EAX); // Preserve EAX. |
@@ -1433,7 +1432,6 @@ void Assembler::StoreIntoObject(Register object, |
call(&StubCode::UpdateStoreBufferLabel()); |
if (value != EAX) popl(EAX); // Restore EAX. |
Bind(&done); |
- popl(value); |
} |