diff options
Diffstat (limited to 'deps/v8/src/regexp/arm64/regexp-macro-assembler-arm64.cc')
-rw-r--r-- | deps/v8/src/regexp/arm64/regexp-macro-assembler-arm64.cc | 51 |
1 files changed, 21 insertions, 30 deletions
diff --git a/deps/v8/src/regexp/arm64/regexp-macro-assembler-arm64.cc b/deps/v8/src/regexp/arm64/regexp-macro-assembler-arm64.cc index 54ad44d68a..70521f2603 100644 --- a/deps/v8/src/regexp/arm64/regexp-macro-assembler-arm64.cc +++ b/deps/v8/src/regexp/arm64/regexp-macro-assembler-arm64.cc @@ -18,7 +18,6 @@ namespace v8 { namespace internal { -#ifndef V8_INTERPRETED_REGEXP /* * This assembler uses the following register assignment convention: * - w19 : Used to temporarely store a value before a call to C code. @@ -723,7 +722,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM64::GetCode(Handle<String> source) { __ PushCPURegList(argument_registers); // Set frame pointer in place. - __ Add(frame_pointer(), sp, argument_registers.Count() * kPointerSize); + __ Add(frame_pointer(), sp, argument_registers.Count() * kSystemPointerSize); // Initialize callee-saved registers. __ Mov(start_offset(), w1); @@ -881,9 +880,8 @@ Handle<HeapObject> RegExpMacroAssemblerARM64::GetCode(Handle<String> source) { __ Add(capture_end, input_length, capture_end); } // The output pointer advances for a possible global match. - __ Stp(capture_start, - capture_end, - MemOperand(output_array(), kPointerSize, PostIndex)); + __ Stp(capture_start, capture_end, + MemOperand(output_array(), kSystemPointerSize, PostIndex)); } // Only carry on if there are more than kNumCachedRegisters capture @@ -902,9 +900,8 @@ Handle<HeapObject> RegExpMacroAssemblerARM64::GetCode(Handle<String> source) { STATIC_ASSERT(kNumRegistersToUnroll > 2); if (num_registers_left_on_stack <= kNumRegistersToUnroll) { for (int i = 0; i < num_registers_left_on_stack / 2; i++) { - __ Ldp(capture_end, - capture_start, - MemOperand(base, -kPointerSize, PostIndex)); + __ Ldp(capture_end, capture_start, + MemOperand(base, -kSystemPointerSize, PostIndex)); if ((i == 0) && global_with_zero_length_check()) { // Keep capture start for the zero-length check later. __ Mov(first_capture_start, capture_start); @@ -920,26 +917,23 @@ Handle<HeapObject> RegExpMacroAssemblerARM64::GetCode(Handle<String> source) { __ Add(capture_end, input_length, capture_end); } // The output pointer advances for a possible global match. - __ Stp(capture_start, - capture_end, - MemOperand(output_array(), kPointerSize, PostIndex)); + __ Stp(capture_start, capture_end, + MemOperand(output_array(), kSystemPointerSize, PostIndex)); } } else { Label loop, start; __ Mov(x11, num_registers_left_on_stack); - __ Ldp(capture_end, - capture_start, - MemOperand(base, -kPointerSize, PostIndex)); + __ Ldp(capture_end, capture_start, + MemOperand(base, -kSystemPointerSize, PostIndex)); if (global_with_zero_length_check()) { __ Mov(first_capture_start, capture_start); } __ B(&start); __ Bind(&loop); - __ Ldp(capture_end, - capture_start, - MemOperand(base, -kPointerSize, PostIndex)); + __ Ldp(capture_end, capture_start, + MemOperand(base, -kSystemPointerSize, PostIndex)); __ Bind(&start); if (mode_ == UC16) { __ Add(capture_start, input_length, Operand(capture_start, ASR, 1)); @@ -949,9 +943,8 @@ Handle<HeapObject> RegExpMacroAssemblerARM64::GetCode(Handle<String> source) { __ Add(capture_end, input_length, capture_end); } // The output pointer advances for a possible global match. - __ Stp(capture_start, - capture_end, - MemOperand(output_array(), kPointerSize, PostIndex)); + __ Stp(capture_start, capture_end, + MemOperand(output_array(), kSystemPointerSize, PostIndex)); __ Sub(x11, x11, 2); __ Cbnz(x11, &loop); } @@ -1289,7 +1282,7 @@ void RegExpMacroAssemblerARM64::ClearRegisters(int reg_from, int reg_to) { __ Mov(x11, num_registers); __ Bind(&loop); __ Str(twice_non_position_value(), - MemOperand(base, -kPointerSize, PostIndex)); + MemOperand(base, -kSystemPointerSize, PostIndex)); __ Sub(x11, x11, 2); __ Cbnz(x11, &loop); } else { @@ -1354,7 +1347,7 @@ void RegExpMacroAssemblerARM64::CheckPosition(int cp_offset, // Private methods: void RegExpMacroAssemblerARM64::CallCheckStackGuardState(Register scratch) { - DCHECK(!isolate()->ShouldLoadConstantsFromRootList()); + DCHECK(!isolate()->IsGeneratingEmbeddedBuiltins()); DCHECK(!masm_->options().isolate_independent_code); // Allocate space on the stack to store the return address. The @@ -1369,10 +1362,10 @@ void RegExpMacroAssemblerARM64::CallCheckStackGuardState(Register scratch) { __ Claim(xreg_to_claim); // CheckStackGuardState needs the end and start addresses of the input string. - __ Poke(input_end(), 2 * kPointerSize); - __ Add(x5, sp, 2 * kPointerSize); - __ Poke(input_start(), kPointerSize); - __ Add(x4, sp, kPointerSize); + __ Poke(input_end(), 2 * kSystemPointerSize); + __ Add(x5, sp, 2 * kSystemPointerSize); + __ Poke(input_start(), kSystemPointerSize); + __ Add(x4, sp, kSystemPointerSize); __ Mov(w3, start_offset()); // RegExp code frame pointer. @@ -1407,8 +1400,8 @@ void RegExpMacroAssemblerARM64::CallCheckStackGuardState(Register scratch) { } // The input string may have been moved in memory, we need to reload it. - __ Peek(input_start(), kPointerSize); - __ Peek(input_end(), 2 * kPointerSize); + __ Peek(input_start(), kSystemPointerSize); + __ Peek(input_end(), 2 * kSystemPointerSize); __ Drop(xreg_to_claim); @@ -1658,8 +1651,6 @@ void RegExpMacroAssemblerARM64::LoadCurrentCharacterUnchecked(int cp_offset, } } -#endif // V8_INTERPRETED_REGEXP - } // namespace internal } // namespace v8 |