commit | 4a621f5c4860038f437b649dc68bb2cd7f203eb3 | [log] [tgz] |
---|---|---|
author | Ryan Macnak <rmacnak@google.com> | Thu Aug 18 20:28:26 2022 +0000 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Aug 18 20:28:26 2022 +0000 |
tree | 4949eb6bfe9d7d1e9c3f3e751bc5913f7a4b0c61 | |
parent | 1f3ff13d985e40d4c88344c151cd9481d120dd81 [diff] |
[vm, compiler] Don't clobber R18 during CCallInstr on Fuchsia ARM64. Cf. 5380fa5d400852d5ab6da80f69afd5b1892eec24. TEST=local Bug: https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=105336 Change-Id: Id025e40e6153570ee88f2daa47be6f12ff9b5822 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255548 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc index 9cc43f7..112d9bf 100644 --- a/runtime/vm/compiler/backend/il_arm64.cc +++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -1582,7 +1582,8 @@ LocationSummary* CCallInstr::MakeLocationSummary(Zone* zone, bool is_optimizing) const { - constexpr Register saved_csp = kAbiFirstPreservedCpuReg; + // Compare FfiCallInstr's use of kFfiAnyNonAbiRegister. + constexpr Register saved_csp = CallingConventions::kFfiAnyNonAbiRegister; ASSERT(IsAbiPreservedRegister(saved_csp)); return MakeLocationSummaryInternal(zone, (R(saved_csp))); }