| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/v8.h" | 5 #include "src/v8.h" | 
| 6 | 6 | 
| 7 #if V8_TARGET_ARCH_MIPS | 7 #if V8_TARGET_ARCH_MIPS | 
| 8 | 8 | 
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" | 
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" | 
| (...skipping 2652 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2663   // last_match_info_elements: Last match info elements (callee saved) | 2663   // last_match_info_elements: Last match info elements (callee saved) | 
| 2664   // Check the result. | 2664   // Check the result. | 
| 2665   Label success; | 2665   Label success; | 
| 2666   __ Branch(&success, eq, v0, Operand(1)); | 2666   __ Branch(&success, eq, v0, Operand(1)); | 
| 2667   // We expect exactly one result since we force the called regexp to behave | 2667   // We expect exactly one result since we force the called regexp to behave | 
| 2668   // as non-global. | 2668   // as non-global. | 
| 2669   Label failure; | 2669   Label failure; | 
| 2670   __ Branch(&failure, eq, v0, Operand(NativeRegExpMacroAssembler::FAILURE)); | 2670   __ Branch(&failure, eq, v0, Operand(NativeRegExpMacroAssembler::FAILURE)); | 
| 2671   // If not exception it can only be retry. Handle that in the runtime system. | 2671   // If not exception it can only be retry. Handle that in the runtime system. | 
| 2672   __ Branch(&runtime, ne, v0, Operand(NativeRegExpMacroAssembler::EXCEPTION)); | 2672   __ Branch(&runtime, ne, v0, Operand(NativeRegExpMacroAssembler::EXCEPTION)); | 
| 2673 | 2673   // Result must now be exception. If there is no pending exception already a | 
| 2674   // Result must now be exception. | 2674   // stack overflow (on the backtrack stack) was detected in RegExp code but | 
|  | 2675   // haven't created the exception yet. Handle that in the runtime system. | 
|  | 2676   // TODO(592): Rerunning the RegExp to get the stack overflow exception. | 
| 2675   __ li(a1, Operand(isolate()->factory()->the_hole_value())); | 2677   __ li(a1, Operand(isolate()->factory()->the_hole_value())); | 
| 2676   __ li(a2, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | 2678   __ li(a2, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | 
| 2677                                       isolate()))); | 2679                                       isolate()))); | 
| 2678   __ lw(v0, MemOperand(a2, 0)); | 2680   __ lw(v0, MemOperand(a2, 0)); | 
|  | 2681   __ Branch(&runtime, eq, v0, Operand(a1)); | 
|  | 2682 | 
| 2679   __ sw(a1, MemOperand(a2, 0));  // Clear pending exception. | 2683   __ sw(a1, MemOperand(a2, 0));  // Clear pending exception. | 
| 2680 | 2684 | 
| 2681   // Check if the exception is a termination. If so, throw as uncatchable. | 2685   // Check if the exception is a termination. If so, throw as uncatchable. | 
| 2682   __ LoadRoot(a0, Heap::kTerminationExceptionRootIndex); | 2686   __ LoadRoot(a0, Heap::kTerminationExceptionRootIndex); | 
| 2683   Label termination_exception; | 2687   Label termination_exception; | 
| 2684   __ Branch(&termination_exception, eq, v0, Operand(a0)); | 2688   __ Branch(&termination_exception, eq, v0, Operand(a0)); | 
| 2685 | 2689 | 
| 2686   __ Throw(v0); | 2690   __ Throw(v0); | 
| 2687 | 2691 | 
| 2688   __ bind(&termination_exception); | 2692   __ bind(&termination_exception); | 
| (...skipping 2606 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5295                               MemOperand(fp, 6 * kPointerSize), | 5299                               MemOperand(fp, 6 * kPointerSize), | 
| 5296                               NULL); | 5300                               NULL); | 
| 5297 } | 5301 } | 
| 5298 | 5302 | 
| 5299 | 5303 | 
| 5300 #undef __ | 5304 #undef __ | 
| 5301 | 5305 | 
| 5302 } }  // namespace v8::internal | 5306 } }  // namespace v8::internal | 
| 5303 | 5307 | 
| 5304 #endif  // V8_TARGET_ARCH_MIPS | 5308 #endif  // V8_TARGET_ARCH_MIPS | 
| OLD | NEW | 
|---|