| Index: src/regexp/arm/regexp-macro-assembler-arm.cc
|
| diff --git a/src/regexp/arm/regexp-macro-assembler-arm.cc b/src/regexp/arm/regexp-macro-assembler-arm.cc
|
| index 6fafdfb4ad43cff4ba7068aa22006da4d414af21..9bdcee8938fcdb50d94419252487d68c76645c1d 100644
|
| --- a/src/regexp/arm/regexp-macro-assembler-arm.cc
|
| +++ b/src/regexp/arm/regexp-macro-assembler-arm.cc
|
| @@ -210,7 +210,7 @@ void RegExpMacroAssemblerARM::CheckGreedyLoop(Label* on_equal) {
|
|
|
|
|
| void RegExpMacroAssemblerARM::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;
|
| __ ldr(r0, register_location(start_reg)); // Index of start of capture
|
| __ ldr(r1, register_location(start_reg + 1)); // Index of end of capture
|
| @@ -302,7 +302,7 @@ void RegExpMacroAssemblerARM::CheckNotBackReferenceIgnoreCase(
|
| // r0: Address byte_offset1 - Address captured substring's start.
|
| // r1: Address byte_offset2 - Address of current character position.
|
| // r2: size_t byte_length - length of capture in bytes(!)
|
| - // r3: Isolate* isolate
|
| + // r3: Isolate* isolate or 0 if unicode flag.
|
|
|
| // Address of start of capture.
|
| __ add(r0, r0, Operand(end_of_input_address()));
|
| @@ -316,7 +316,14 @@ void RegExpMacroAssemblerARM::CheckNotBackReferenceIgnoreCase(
|
| __ sub(r1, r1, r4);
|
| }
|
| // Isolate.
|
| - __ mov(r3, Operand(ExternalReference::isolate_address(isolate())));
|
| +#ifdef V8_I18N_SUPPORT
|
| + if (unicode) {
|
| + __ mov(r3, Operand(0));
|
| + } else // NOLINT
|
| +#endif // V8_I18N_SUPPORT
|
| + {
|
| + __ mov(r3, Operand(ExternalReference::isolate_address(isolate())));
|
| + }
|
|
|
| {
|
| AllowExternalCallThatCantCauseGC scope(masm_);
|
|
|