| Index: src/ia32/regexp-macro-assembler-ia32.cc
|
| diff --git a/src/ia32/regexp-macro-assembler-ia32.cc b/src/ia32/regexp-macro-assembler-ia32.cc
|
| index f1c773b8374fbf6821cf020e7c6946e6c4a44a80..866c8a2bc143bb446c7d6352caedf3eae6fed851 100644
|
| --- a/src/ia32/regexp-macro-assembler-ia32.cc
|
| +++ b/src/ia32/regexp-macro-assembler-ia32.cc
|
| @@ -372,14 +372,18 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase(
|
| __ push(backtrack_stackpointer());
|
| __ push(ebx);
|
|
|
| - static const int argument_count = 3;
|
| + static const int argument_count = 4;
|
| __ PrepareCallCFunction(argument_count, ecx);
|
| // Put arguments into allocated stack area, last argument highest on stack.
|
| // Parameters are
|
| // Address byte_offset1 - Address captured substring's start.
|
| // Address byte_offset2 - Address of current character position.
|
| // size_t byte_length - length of capture in bytes(!)
|
| + // Isolate* isolate
|
|
|
| + // Set isolate.
|
| + __ mov(Operand(esp, 3 * kPointerSize),
|
| + Immediate(ExternalReference::isolate_address()));
|
| // Set byte_length.
|
| __ mov(Operand(esp, 2 * kPointerSize), ebx);
|
| // Set byte_offset2.
|
| @@ -838,8 +842,10 @@ Handle<Object> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) {
|
| __ push(edi);
|
|
|
| // Call GrowStack(backtrack_stackpointer())
|
| - static const int num_arguments = 2;
|
| + static const int num_arguments = 3;
|
| __ PrepareCallCFunction(num_arguments, ebx);
|
| + __ mov(Operand(esp, 2 * kPointerSize),
|
| + Immediate(ExternalReference::isolate_address()));
|
| __ lea(eax, Operand(ebp, kStackHighEnd));
|
| __ mov(Operand(esp, 1 * kPointerSize), eax);
|
| __ mov(Operand(esp, 0 * kPointerSize), backtrack_stackpointer());
|
|
|