Index: runtime/vm/assembler_arm.cc |
diff --git a/runtime/vm/assembler_arm.cc b/runtime/vm/assembler_arm.cc |
index 31824b1a8484a323c3a1130b7da93fba372e11c3..2b59966978a8094e93ec5a930ba3796b87f4d89a 100644 |
--- a/runtime/vm/assembler_arm.cc |
+++ b/runtime/vm/assembler_arm.cc |
@@ -1908,8 +1908,11 @@ void Assembler::StoreIntoObjectNoBarrierOffset(Register object, |
StoreIntoObjectNoBarrier(object, FieldAddress(object, offset), value, |
old_content); |
} else { |
- AddImmediate(IP, object, offset - kHeapObjectTag); |
- StoreIntoObjectNoBarrier(object, Address(IP), value, old_content); |
+ ASSERT(object != R9); |
Florian Schneider
2015/11/04 20:58:01
Not sure if this is always guaranteed: I think you
|
+ Push(R9); |
+ AddImmediate(R9, object, offset - kHeapObjectTag); |
+ StoreIntoObjectNoBarrier(object, Address(R9), value, old_content); |
+ Pop(R9); |
} |
} |