Files
sdk/runtime
Vyacheslav Egorov 2dae577c67 Reapply "[vm/compiler] Pass arguments in registers"
This reverts commit 63179aa49d.

See commit 1ab083ae48 for the original
description of the change.

The original change was reverted because it did not take
into account that in Dart it is legal to make some
parameters optional when you override a method. Such parameters
should not be passed in registers - which means for each
possible interface target we need to compute the minimum
number of direct parameters accepted by all overrides.

I have also added two comprehensive tests for different
combinations of direct, optional and named parameters.

TEST=vm/dart/calling_conventions_test.dart,vm/dart/calling_conventions2_test.dart

Cq-Include-Trybots: luci.dart.try:vm-aot-linux-debug-simarm_x64-try,vm-aot-linux-debug-simriscv64-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-linux-product-x64-try,vm-aot-linux-release-arm64-try,vm-aot-linux-release-simarm_x64-try,vm-aot-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try
Change-Id: Ib76e2512d3e4077a40265d315483ebe3b0f5551c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357862
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2024-03-18 20:56:24 +00:00
..
2024-02-29 11:18:51 +00:00
2024-02-14 00:08:30 +00:00