Index: runtime/vm/simulator_arm64.cc |
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc |
index ac6fe18793d7ac90b766cb5dfc224e8604cf30a6..eca82f33b1be779908b99fb0bf4c00a15b45bc8e 100644 |
--- a/runtime/vm/simulator_arm64.cc |
+++ b/runtime/vm/simulator_arm64.cc |
@@ -900,6 +900,7 @@ void Simulator::set_register( |
Instr* instr, Register reg, int64_t value, R31Type r31t) { |
// Register is in range. |
ASSERT((reg >= 0) && (reg < kNumberOfCpuRegisters)); |
+ ASSERT(instr == NULL || reg != R18); // R18 is globally reserved on iOS. |
if ((reg != R31) || (r31t != R31IsZR)) { |
registers_[reg] = value; |
// If we're setting CSP, make sure it is 16-byte aligned. In truth, CSP |
@@ -1666,7 +1667,7 @@ void Simulator::DoRedirectedCall(Instr* instr) { |
set_register(instr, R15, icount_); |
set_register(instr, IP0, icount_); |
set_register(instr, IP1, icount_); |
- set_register(instr, R18, icount_); |
+ set_register(NULL, R18, icount_); |
set_register(instr, LR, icount_); |
// TODO(zra): Zap caller-saved fpu registers. |