@@ -1188,17 +1188,16 @@ void FlowGraphCompiler::EmitEdgeCounter(intptr_t edge_id) {
1188
1188
// optimization/deoptimization cycles we will attempt.
1189
1189
ASSERT (!edge_counters_array_.IsNull ());
1190
1190
ASSERT (assembler_->constant_pool_allowed ());
1191
- const Array& counter = Array::ZoneHandle (zone (), Array::New (1 , Heap::kOld ));
1192
- counter.SetAt (0 , Smi::Handle (zone (), Smi::New (0 )));
1193
1191
__ Comment (" Edge counter" );
1194
1192
__ LoadObject (R0, edge_counters_array_);
1195
1193
#if defined(DEBUG)
1196
1194
bool old_use_far_branches = assembler_->use_far_branches ();
1197
1195
assembler_->set_use_far_branches (true );
1198
1196
#endif // DEBUG
1199
- __ ldr (IP, FieldAddress (R0, Array::element_offset (edge_id)));
1200
- __ add (IP, IP, Operand (Smi::RawValue (1 )));
1201
- __ StoreIntoSmiField (FieldAddress (R0, Array::element_offset (edge_id)), IP);
1197
+ __ LoadFieldFromOffset (kWord , R1, R0, Array::element_offset (edge_id));
1198
+ __ add (R1, R1, Operand (Smi::RawValue (1 )));
1199
+ __ StoreIntoObjectNoBarrierOffset (
1200
+ R0, Array::element_offset (edge_id), R1, Assembler::kOnlySmi );
1202
1201
#if defined(DEBUG)
1203
1202
assembler_->set_use_far_branches (old_use_far_branches);
1204
1203
#endif // DEBUG
0 commit comments