| Index: src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| diff --git a/src/regexp/arm64/regexp-macro-assembler-arm64.cc b/src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| index 9948597ca0e4b72ee064ab700d838afd05c960f6..b3da580ededd887a791f745157ad666d0bf14617 100644
|
| --- a/src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| +++ b/src/regexp/arm64/regexp-macro-assembler-arm64.cc
|
| @@ -274,7 +274,7 @@ void RegExpMacroAssemblerARM64::CheckGreedyLoop(Label* on_equal) {
|
|
|
|
|
| void RegExpMacroAssemblerARM64::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;
|
|
|
| Register capture_start_offset = w10;
|
| @@ -388,7 +388,7 @@ void RegExpMacroAssemblerARM64::CheckNotBackReferenceIgnoreCase(
|
| // x0: Address byte_offset1 - Address captured substring's start.
|
| // x1: Address byte_offset2 - Address of current character position.
|
| // w2: size_t byte_length - length of capture in bytes(!)
|
| - // x3: Isolate* isolate
|
| + // x3: Isolate* isolate or 0 if unicode flag
|
|
|
| // Address of start of capture.
|
| __ Add(x0, input_end(), Operand(capture_start_offset, SXTW));
|
| @@ -400,7 +400,14 @@ void RegExpMacroAssemblerARM64::CheckNotBackReferenceIgnoreCase(
|
| __ Sub(x1, x1, Operand(capture_length, SXTW));
|
| }
|
| // Isolate.
|
| - __ Mov(x3, ExternalReference::isolate_address(isolate()));
|
| +#ifdef V8_I18N_SUPPORT
|
| + if (unicode) {
|
| + __ Mov(x3, Operand(0));
|
| + } else // NOLINT
|
| +#endif // V8_I18N_SUPPORT
|
| + {
|
| + __ Mov(x3, ExternalReference::isolate_address(isolate()));
|
| + }
|
|
|
| {
|
| AllowExternalCallThatCantCauseGC scope(masm_);
|
|
|