2dae577c67
This reverts commit63179aa49d. See commit1ab083ae48for 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>