Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index a1c6edd0fab30080f0c6d2480ccfd33281b386c7..fc322f6f8ac73d5a27a708779d6f9e89f89e4610 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -3822,20 +3822,23 @@ void RegExpExecStub::Generate(MacroAssembler* masm) { |
__ IncrementCounter(counters->regexp_entry_native(), 1); |
// Isolates: note we add an additional parameter here (isolate pointer). |
- static const int kRegExpExecuteArguments = 8; |
+ static const int kRegExpExecuteArguments = 9; |
__ EnterApiExitFrame(kRegExpExecuteArguments); |
- // Argument 8: Pass current isolate address. |
- __ mov(Operand(esp, 7 * kPointerSize), |
+ // Argument 9: Pass current isolate address. |
+ __ mov(Operand(esp, 8 * kPointerSize), |
Immediate(ExternalReference::isolate_address())); |
- // Argument 7: Indicate that this is a direct call from JavaScript. |
- __ mov(Operand(esp, 6 * kPointerSize), Immediate(1)); |
+ // Argument 8: Indicate that this is a direct call from JavaScript. |
+ __ mov(Operand(esp, 7 * kPointerSize), Immediate(1)); |
- // Argument 6: Start (high end) of backtracking stack memory area. |
+ // Argument 7: Start (high end) of backtracking stack memory area. |
__ mov(esi, Operand::StaticVariable(address_of_regexp_stack_memory_address)); |
__ add(esi, Operand::StaticVariable(address_of_regexp_stack_memory_size)); |
- __ mov(Operand(esp, 5 * kPointerSize), esi); |
+ __ mov(Operand(esp, 6 * kPointerSize), esi); |
+ |
+ // Argument 6: Clear the number of capture registers for non-global capture. |
+ __ mov(Operand(esp, 5 * kPointerSize), Immediate(0)); |
// Argument 5: static offsets vector buffer. |
__ mov(Operand(esp, 4 * kPointerSize), |
@@ -3899,6 +3902,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) { |
// Check the result. |
Label success; |
__ cmp(eax, NativeRegExpMacroAssembler::SUCCESS); |
+ // We do not expect multiple results. |
__ j(equal, &success); |
Label failure; |
__ cmp(eax, NativeRegExpMacroAssembler::FAILURE); |