Chromium Code Reviews| Index: runtime/vm/intrinsifier_mips.cc |
| diff --git a/runtime/vm/intrinsifier_mips.cc b/runtime/vm/intrinsifier_mips.cc |
| index 0b95c5372e787499d686b7e190ad2c8e6a5e746d..d45f6b7d17f7e0cc4b8642d4c5f624acbf5c07b8 100644 |
| --- a/runtime/vm/intrinsifier_mips.cc |
| +++ b/runtime/vm/intrinsifier_mips.cc |
| @@ -2080,7 +2080,7 @@ void Intrinsifier::JSRegExp_ExecuteMatch(Assembler* assembler) { |
| // Incoming registers: |
| // T0: Function. (Will be reloaded with the specialized matcher function.) |
| // S4: Arguments descriptor. (Will be preserved.) |
| - // S5: IC-Data. (Will be preserved.) |
| + // S5: Unknown. (Must be GC safe on tail call.) |
| // Load the specialized function pointer into T0. Leverage the fact the |
| // string CIDs as well as stored function pointers are in sequence. |
| @@ -2096,6 +2096,7 @@ void Intrinsifier::JSRegExp_ExecuteMatch(Assembler* assembler) { |
| // in T0, the argument descriptor in S4, and IC-Data in S5. |
| static const intptr_t arg_count = RegExpMacroAssembler::kParamCount; |
| __ LoadObject(S4, Array::Handle(ArgumentsDescriptor::New(arg_count))); |
| + __ xor_(S5, S5, S5); |
|
Vyacheslav Egorov (Google)
2014/11/26 14:26:17
mov(S5, ZR) maybe?
zerny-google
2014/11/26 14:33:55
Done.
|
| // Tail-call the function. |
| __ lw(T3, FieldAddress(T0, Function::instructions_offset())); |