dart-sdk/runtime
Tess Strickland 324ba0c11f [vm/compiler] Extend Assembler::AddScaled to take a base register.
Add an additional base argument to Assembler::AddScaled so it now
computes:
  dest <- base + (index << scale) + offset

If base is kNoRegister (or ZR when available), then it emits
instructions optimized for computing:
  dest <- (index << scale) + offset
(i.e., its previous implementation)

Add AddScaled to AssemblerBase to ensure the same interface across all
architectures.

Rework the backend of CalculateElementAddress to use AddScaled
appropriately, which unifies it across architectures.

TEST=ci (refactoring)

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-linux-debug-ia32-try,vm-linux-debug-x64-try,vm-linux-debug-x64c-try,vm-linux-debug-simriscv64-try,vm-mac-debug-arm64-try,vm-aot-mac-release-arm64-try
Change-Id: I33c8f99604b68360f10b79050bd66ceb9d65ac9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/370504
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2024-06-11 08:33:29 +00:00
..
bin Roll Clang to 3809e20afc68d7d03821f0ec59b928dcf9befbf4. 2024-06-10 20:38:30 +00:00
docs [vm, gc] Incremental compaction, take 3. 2024-05-30 21:01:39 +00:00
include [vm/sendports] Introduce an api that can be safely used to rebuild SendPort. 2024-05-01 17:19:16 +00:00
lib [vm] Unsound mode cleanup: remove legacy types from the VM 2024-04-30 17:49:37 +00:00
observatory observatory: replace unsupported [this] comment references with this. 2024-05-16 19:24:38 +00:00
platform [vm, gc] Incremental compaction, take 3. 2024-05-30 21:01:39 +00:00
tests [vm] Remove --[no-]lazy-dispatchers flag. 2024-06-06 10:56:12 +00:00
tools [vm] Remove --[no-]lazy-dispatchers flag. 2024-06-06 10:56:12 +00:00
vm [vm/compiler] Extend Assembler::AddScaled to take a base register. 2024-06-11 08:33:29 +00:00
.clang-tidy
.gitignore
BUILD.gn [vm, compiler] Allow targeting TSAN or MSAN by passing a flag to gen_snapshot. 2024-05-08 17:03:59 +00:00
codereview.settings
configs.gni
CPPLINT.cfg
OWNERS
PRESUBMIT.py
runtime_args.gni Reland "[Fuchsia] Remove the legacy gn build rules for fuchsia" 2024-03-14 20:22:12 +00:00
vm-jit.shard.cml
vm.shard.cml [fuchsia][sysmem2] route fuchsia.sysmem2.Allocator 2024-05-10 17:00:29 +00:00