[vm] Fix mismatch between ARM64 Simulator::JumpToFrame and StubCode::JumpToFrame.
In 67f93d3840981ad81b44bceb0b755fbab50f13bd, the simulator was extended to simulate signal handlers clobbering below CSP, but Simulator::JumpToFrame didn't kick CSP back near the stack limit.
TEST=fuzzer (anything with exceptions in debug simarm64)
Change-Id: I233388c9a73181521d6760e7a2f9c9dfe57e33ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/238463
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index d4f8fbc..4f34a91 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -3810,6 +3810,7 @@
set_register(NULL, SP, static_cast<int64_t>(sp));
set_register(NULL, FP, static_cast<int64_t>(fp));
set_register(NULL, THR, reinterpret_cast<int64_t>(thread));
+ set_register(NULL, R31, thread->saved_stack_limit() - 4096);
// Set the tag.
thread->set_vm_tag(VMTag::kDartTagId);
// Clear top exit frame.