| Index: runtime/vm/intermediate_language_arm64.cc
|
| diff --git a/runtime/vm/intermediate_language_arm64.cc b/runtime/vm/intermediate_language_arm64.cc
|
| index e8bd7597d3008cd8dd183741aa604c70c5e6284f..c62dad85f2b727b3371ef715cfc1e050cd8699af 100644
|
| --- a/runtime/vm/intermediate_language_arm64.cc
|
| +++ b/runtime/vm/intermediate_language_arm64.cc
|
| @@ -2593,10 +2593,15 @@ class CheckStackOverflowSlowPath : public SlowPathCode {
|
| const Register value = instruction_->locs()->temp(0).reg();
|
| __ Comment("CheckStackOverflowSlowPathOsr");
|
| __ Bind(osr_entry_label());
|
| - ASSERT(FLAG_allow_absolute_addresses);
|
| - __ LoadImmediate(TMP, flags_address);
|
| - __ LoadImmediate(value, Isolate::kOsrRequest);
|
| - __ str(value, Address(TMP));
|
| + if (FLAG_allow_absolute_addresses) {
|
| + __ LoadImmediate(TMP, flags_address);
|
| + __ LoadImmediate(value, Isolate::kOsrRequest);
|
| + __ str(value, Address(TMP));
|
| + } else {
|
| + __ LoadIsolate(TMP);
|
| + __ LoadImmediate(value, Isolate::kOsrRequest);
|
| + __ str(value, Address(TMP, Isolate::stack_overflow_flags_offset()));
|
| + }
|
| }
|
| __ Comment("CheckStackOverflowSlowPath");
|
| __ Bind(entry_label());
|
|
|