| Index: runtime/vm/intrinsifier_arm.cc
|
| diff --git a/runtime/vm/intrinsifier_arm.cc b/runtime/vm/intrinsifier_arm.cc
|
| index 342c284652b99cc322c90750898106d7e8df8c71..f608b5a23e16bb6c89455a362372f80057fa6b74 100644
|
| --- a/runtime/vm/intrinsifier_arm.cc
|
| +++ b/runtime/vm/intrinsifier_arm.cc
|
| @@ -1991,7 +1991,7 @@ void Intrinsifier::JSRegExp_ExecuteMatch(Assembler* assembler) {
|
| // Incoming registers:
|
| // R0: Function. (Will be reloaded with the specialized matcher function.)
|
| // R4: Arguments descriptor. (Will be preserved.)
|
| - // R5: IC-Data. (Will be preserved.)
|
| + // R5: Unknown. (Must be GC safe on tail call.)
|
|
|
| // Load the specialized function pointer into R0. Leverage the fact the
|
| // string CIDs as well as stored function pointers are in sequence.
|
| @@ -2006,6 +2006,7 @@ void Intrinsifier::JSRegExp_ExecuteMatch(Assembler* assembler) {
|
| // in R0, the argument descriptor in R4, and IC-Data in R5.
|
| static const intptr_t arg_count = RegExpMacroAssembler::kParamCount;
|
| __ LoadObject(R4, Array::Handle(ArgumentsDescriptor::New(arg_count)));
|
| + __ eor(R5, R5, Operand(R5));
|
|
|
| // Tail-call the function.
|
| __ ldr(R1, FieldAddress(R0, Function::instructions_offset()));
|
|
|