[vm] Avoid clobbering array length in AllocateArray stub on ARM
It was calling EnsureIsNewOrRemembered on the slow path which was forgetting to preserve registers around a runtime call. Fixes https://github.com/flutter/flutter/issues/106510 TEST=vm/dart{,_2}/flutter_regress_106510 Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm-try Change-Id: I621e392304fcd1fd643c009fbcde3f88b6f19b7f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/250168 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Slava Egorov <vegorov@google.com>
This commit is contained in:
committed by
Commit Bot
parent
1f7c392ee5
commit
ec9a660ccc
@@ -46,7 +46,7 @@ void StubCodeCompiler::EnsureIsNewOrRemembered(Assembler* assembler,
|
||||
{
|
||||
LeafRuntimeScope rt(assembler,
|
||||
/*frame_size=*/0,
|
||||
/*preserve_registers=*/false);
|
||||
/*preserve_registers=*/preserve_registers);
|
||||
// [R0] already contains first argument.
|
||||
__ mov(R1, Operand(THR));
|
||||
rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
|
||||
|
||||
Reference in New Issue
Block a user