Index: runtime/vm/intermediate_language_arm.cc |
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc |
index 269b18933ea56b29677c8fef785f3f864602c3a3..6b180bd47e97a2cca9ed5e5717431abe8ee1a58c 100644 |
--- a/runtime/vm/intermediate_language_arm.cc |
+++ b/runtime/vm/intermediate_language_arm.cc |
@@ -2874,19 +2874,11 @@ class CheckStackOverflowSlowPath : public SlowPathCode { |
virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
if (FLAG_use_osr && osr_entry_label()->IsLinked()) { |
- uword flags_address = Isolate::Current()->stack_overflow_flags_address(); |
const Register value = instruction_->locs()->temp(0).reg(); |
__ Comment("CheckStackOverflowSlowPathOsr"); |
__ Bind(osr_entry_label()); |
- if (FLAG_allow_absolute_addresses) { |
- __ LoadImmediate(IP, flags_address); |
- __ LoadImmediate(value, Isolate::kOsrRequest); |
- __ str(value, Address(IP)); |
- } else { |
- __ LoadIsolate(IP); |
- __ LoadImmediate(value, Isolate::kOsrRequest); |
- __ str(value, Address(IP, Isolate::stack_overflow_flags_offset())); |
- } |
+ __ LoadImmediate(value, Thread::kOsrRequest); |
+ __ str(value, Address(THR, Thread::stack_overflow_flags_offset())); |
} |
__ Comment("CheckStackOverflowSlowPath"); |
__ Bind(entry_label()); |
@@ -2928,13 +2920,7 @@ void CheckStackOverflowInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
CheckStackOverflowSlowPath* slow_path = new CheckStackOverflowSlowPath(this); |
compiler->AddSlowPathCode(slow_path); |
- if (compiler->is_optimizing() && FLAG_allow_absolute_addresses) { |
- __ LoadImmediate(IP, Isolate::Current()->stack_limit_address()); |
- __ ldr(IP, Address(IP)); |
- } else { |
- __ LoadIsolate(IP); |
- __ ldr(IP, Address(IP, Isolate::stack_limit_offset())); |
- } |
+ __ ldr(IP, Address(THR, Thread::stack_limit_offset())); |
rmacnak
2016/03/17 17:08:26
Nice!
|
__ cmp(SP, Operand(IP)); |
__ b(slow_path->entry_label(), LS); |
if (compiler->CanOSRFunction() && in_loop()) { |