| Index: src/regexp/x87/regexp-macro-assembler-x87.cc
|
| diff --git a/src/regexp/x87/regexp-macro-assembler-x87.cc b/src/regexp/x87/regexp-macro-assembler-x87.cc
|
| index 01d0b249b6fe15b9f0d56e65742d6b0d6910c5f9..ed4006b0bfe3edd894dfbbf3385ec7c66f3ef6f0 100644
|
| --- a/src/regexp/x87/regexp-macro-assembler-x87.cc
|
| +++ b/src/regexp/x87/regexp-macro-assembler-x87.cc
|
| @@ -187,9 +187,8 @@ void RegExpMacroAssemblerX87::CheckGreedyLoop(Label* on_equal) {
|
| __ bind(&fallthrough);
|
| }
|
|
|
| -
|
| void RegExpMacroAssemblerX87::CheckNotBackReferenceIgnoreCase(
|
| - int start_reg, bool read_backward, Label* on_no_match) {
|
| + int start_reg, bool read_backward, bool unicode, Label* on_no_match) {
|
| Label fallthrough;
|
| __ mov(edx, register_location(start_reg)); // Index of start of capture
|
| __ mov(ebx, register_location(start_reg + 1)); // Index of end of capture
|
| @@ -296,11 +295,18 @@ void RegExpMacroAssemblerX87::CheckNotBackReferenceIgnoreCase(
|
| // 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
|
| +// Isolate* isolate or 0 if unicode flag.
|
|
|
| // Set isolate.
|
| - __ mov(Operand(esp, 3 * kPointerSize),
|
| - Immediate(ExternalReference::isolate_address(isolate())));
|
| +#ifdef V8_I18N_SUPPORT
|
| + if (unicode) {
|
| + __ mov(Operand(esp, 3 * kPointerSize), Immediate(0));
|
| + } else // NOLINT
|
| +#endif // V8_I18N_SUPPORT
|
| + {
|
| + __ mov(Operand(esp, 3 * kPointerSize),
|
| + Immediate(ExternalReference::isolate_address(isolate())));
|
| + }
|
| // Set byte_length.
|
| __ mov(Operand(esp, 2 * kPointerSize), ebx);
|
| // Set byte_offset2.
|
|
|