diff options
Diffstat (limited to 'deps/v8/src/regexp/ia32/regexp-macro-assembler-ia32.cc')
-rw-r--r-- | deps/v8/src/regexp/ia32/regexp-macro-assembler-ia32.cc | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/deps/v8/src/regexp/ia32/regexp-macro-assembler-ia32.cc b/deps/v8/src/regexp/ia32/regexp-macro-assembler-ia32.cc index 15b9e23692..af9237a264 100644 --- a/deps/v8/src/regexp/ia32/regexp-macro-assembler-ia32.cc +++ b/deps/v8/src/regexp/ia32/regexp-macro-assembler-ia32.cc @@ -17,7 +17,6 @@ namespace v8 { namespace internal { -#ifndef V8_INTERPRETED_REGEXP /* * This assembler uses the following register assignment convention * - edx : Current character. Must be loaded using LoadCurrentCharacter @@ -188,7 +187,7 @@ void RegExpMacroAssemblerIA32::CheckGreedyLoop(Label* on_equal) { Label fallthrough; __ cmp(edi, Operand(backtrack_stackpointer(), 0)); __ j(not_equal, &fallthrough); - __ add(backtrack_stackpointer(), Immediate(kPointerSize)); // Pop. + __ add(backtrack_stackpointer(), Immediate(kSystemPointerSize)); // Pop. BranchOrBacktrack(no_condition, on_equal); __ bind(&fallthrough); } @@ -279,7 +278,7 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( // Restore original value before continuing. __ pop(backtrack_stackpointer()); // Drop original value of character position. - __ add(esp, Immediate(kPointerSize)); + __ add(esp, Immediate(kSystemPointerSize)); // Compute new value of character position after the matched part. __ sub(edi, esi); if (read_backward) { @@ -307,15 +306,15 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( // Set isolate. #ifdef V8_INTL_SUPPORT if (unicode) { - __ mov(Operand(esp, 3 * kPointerSize), Immediate(0)); + __ mov(Operand(esp, 3 * kSystemPointerSize), Immediate(0)); } else // NOLINT #endif // V8_INTL_SUPPORT { - __ mov(Operand(esp, 3 * kPointerSize), + __ mov(Operand(esp, 3 * kSystemPointerSize), Immediate(ExternalReference::isolate_address(isolate()))); } // Set byte_length. - __ mov(Operand(esp, 2 * kPointerSize), ebx); + __ mov(Operand(esp, 2 * kSystemPointerSize), ebx); // Set byte_offset2. // Found by adding negative string-end offset of current position (edi) // to end of string. @@ -323,11 +322,11 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( if (read_backward) { __ sub(edi, ebx); // Offset by length when matching backwards. } - __ mov(Operand(esp, 1 * kPointerSize), edi); + __ mov(Operand(esp, 1 * kSystemPointerSize), edi); // Set byte_offset1. // Start of capture, where edx already holds string-end negative offset. __ add(edx, esi); - __ mov(Operand(esp, 0 * kPointerSize), edx); + __ mov(Operand(esp, 0 * kSystemPointerSize), edx); { AllowExternalCallThatCantCauseGC scope(masm_); @@ -692,7 +691,7 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { __ j(below_equal, &stack_limit_hit); // Check if there is room for the variable number of registers above // the stack limit. - __ cmp(ecx, num_registers_ * kPointerSize); + __ cmp(ecx, num_registers_ * kSystemPointerSize); __ j(above_equal, &stack_ok); // Exit with OutOfMemory exception. There is not enough space on the stack // for our working registers. @@ -710,7 +709,7 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { __ mov(ebx, Operand(ebp, kStartIndex)); // Allocate space on stack for registers. - __ sub(esp, Immediate(num_registers_ * kPointerSize)); + __ sub(esp, Immediate(num_registers_ * kSystemPointerSize)); // Load string length. __ mov(esi, Operand(ebp, kInputEnd)); // Load input position. @@ -734,7 +733,7 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { // Ensure that we write to each stack page, in order. Skipping a page // on Windows can cause segmentation faults. Assuming page size is 4k. const int kPageSize = 4096; - const int kRegistersPerPage = kPageSize / kPointerSize; + const int kRegistersPerPage = kPageSize / kSystemPointerSize; for (int i = num_saved_registers_ + kRegistersPerPage - 1; i < num_registers_; i += kRegistersPerPage) { @@ -765,8 +764,8 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { Label init_loop; __ bind(&init_loop); __ mov(Operand(ebp, ecx, times_1, 0), eax); - __ sub(ecx, Immediate(kPointerSize)); - __ cmp(ecx, kRegisterZero - num_saved_registers_ * kPointerSize); + __ sub(ecx, Immediate(kSystemPointerSize)); + __ cmp(ecx, kRegisterZero - num_saved_registers_ * kSystemPointerSize); __ j(greater, &init_loop); } else { // Unroll the loop. for (int i = 0; i < num_saved_registers_; i++) { @@ -806,7 +805,7 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { if (mode_ == UC16) { __ sar(eax, 1); // Convert byte index to character index. } - __ mov(Operand(ebx, i * kPointerSize), eax); + __ mov(Operand(ebx, i * kSystemPointerSize), eax); } } @@ -825,7 +824,7 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { __ mov(Operand(ebp, kNumOutputRegisters), ecx); // Advance the location for output. __ add(Operand(ebp, kRegisterOutput), - Immediate(num_saved_registers_ * kPointerSize)); + Immediate(num_saved_registers_ * kSystemPointerSize)); // Prepare eax to initialize registers with its value in the next run. __ mov(eax, Operand(ebp, kStringStartMinusOne)); @@ -905,7 +904,6 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { SafeCallTarget(&stack_overflow_label_); // Reached if the backtrack-stack limit has been hit. - Label grow_failed; // Save registers before calling C function __ push(esi); __ push(edi); @@ -913,11 +911,11 @@ Handle<HeapObject> RegExpMacroAssemblerIA32::GetCode(Handle<String> source) { // Call GrowStack(backtrack_stackpointer()) static const int num_arguments = 3; __ PrepareCallCFunction(num_arguments, ebx); - __ mov(Operand(esp, 2 * kPointerSize), + __ mov(Operand(esp, 2 * kSystemPointerSize), Immediate(ExternalReference::isolate_address(isolate()))); __ lea(eax, Operand(ebp, kStackHighEnd)); - __ mov(Operand(esp, 1 * kPointerSize), eax); - __ mov(Operand(esp, 0 * kPointerSize), backtrack_stackpointer()); + __ mov(Operand(esp, 1 * kSystemPointerSize), eax); + __ mov(Operand(esp, 0 * kSystemPointerSize), backtrack_stackpointer()); ExternalReference grow_stack = ExternalReference::re_grow_stack(isolate()); __ CallCFunction(grow_stack, num_arguments); @@ -1099,12 +1097,12 @@ void RegExpMacroAssemblerIA32::CallCheckStackGuardState(Register scratch) { static const int num_arguments = 3; __ PrepareCallCFunction(num_arguments, scratch); // RegExp code frame pointer. - __ mov(Operand(esp, 2 * kPointerSize), ebp); + __ mov(Operand(esp, 2 * kSystemPointerSize), ebp); // Code of self. - __ mov(Operand(esp, 1 * kPointerSize), Immediate(masm_->CodeObject())); + __ mov(Operand(esp, 1 * kSystemPointerSize), Immediate(masm_->CodeObject())); // Next address on the stack (will be address of return address). - __ lea(eax, Operand(esp, -kPointerSize)); - __ mov(Operand(esp, 0 * kPointerSize), eax); + __ lea(eax, Operand(esp, -kSystemPointerSize)); + __ mov(Operand(esp, 0 * kSystemPointerSize), eax); ExternalReference check_stack_guard = ExternalReference::re_check_stack_guard_state(isolate()); __ CallCFunction(check_stack_guard, num_arguments); @@ -1145,7 +1143,7 @@ Operand RegExpMacroAssemblerIA32::register_location(int register_index) { if (num_registers_ <= register_index) { num_registers_ = register_index + 1; } - return Operand(ebp, kRegisterZero - register_index * kPointerSize); + return Operand(ebp, kRegisterZero - register_index * kSystemPointerSize); } @@ -1203,14 +1201,14 @@ void RegExpMacroAssemblerIA32::SafeCallTarget(Label* name) { void RegExpMacroAssemblerIA32::Push(Register source) { DCHECK(source != backtrack_stackpointer()); // Notice: This updates flags, unlike normal Push. - __ sub(backtrack_stackpointer(), Immediate(kPointerSize)); + __ sub(backtrack_stackpointer(), Immediate(kSystemPointerSize)); __ mov(Operand(backtrack_stackpointer(), 0), source); } void RegExpMacroAssemblerIA32::Push(Immediate value) { // Notice: This updates flags, unlike normal Push. - __ sub(backtrack_stackpointer(), Immediate(kPointerSize)); + __ sub(backtrack_stackpointer(), Immediate(kSystemPointerSize)); __ mov(Operand(backtrack_stackpointer(), 0), value); } @@ -1219,7 +1217,7 @@ void RegExpMacroAssemblerIA32::Pop(Register target) { DCHECK(target != backtrack_stackpointer()); __ mov(target, Operand(backtrack_stackpointer(), 0)); // Notice: This updates flags, unlike normal Pop. - __ add(backtrack_stackpointer(), Immediate(kPointerSize)); + __ add(backtrack_stackpointer(), Immediate(kSystemPointerSize)); } @@ -1277,8 +1275,6 @@ void RegExpMacroAssemblerIA32::LoadCurrentCharacterUnchecked(int cp_offset, #undef __ -#endif // V8_INTERPRETED_REGEXP - } // namespace internal } // namespace v8 |