Chromium Code Reviews| Index: runtime/vm/intrinsifier_x64.cc |
| diff --git a/runtime/vm/intrinsifier_x64.cc b/runtime/vm/intrinsifier_x64.cc |
| index 2cb9d36d92c51c1b19641e71a7a31c5c111d06da..93457fbab92e0044cd366c1f5267901d274c8b17 100644 |
| --- a/runtime/vm/intrinsifier_x64.cc |
| +++ b/runtime/vm/intrinsifier_x64.cc |
| @@ -1929,7 +1929,7 @@ void Intrinsifier::JSRegExp_ExecuteMatch(Assembler* assembler) { |
| // Incoming registers: |
| // RAX: Function. (Will be loaded with the specialized matcher function.) |
| - // RCX: IC-Data. (Will be preserved.) |
| + // RCX: Unknown. (Must be GC safe on tail call.) |
| // R10: Arguments descriptor. (Will be preserved.) |
| // Load the specialized function pointer into RAX. Leverage the fact the |
| @@ -1945,6 +1945,7 @@ void Intrinsifier::JSRegExp_ExecuteMatch(Assembler* assembler) { |
| // in RAX, the argument descriptor in R10, and IC-Data in RCX. |
| static const intptr_t arg_count = RegExpMacroAssembler::kParamCount; |
| __ LoadObject(R10, Array::Handle(ArgumentsDescriptor::New(arg_count)), PP); |
| + __ xorl(RCX, RCX); |
|
Vyacheslav Egorov (Google)
2014/11/26 14:26:17
xor*q*
zerny-google
2014/11/26 14:33:55
Thanks!
|
| // Tail-call the function. |
| __ movq(RDI, FieldAddress(RAX, Function::instructions_offset())); |