| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 3436 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3447   // Check if we should retry or throw exception. | 3447   // Check if we should retry or throw exception. | 
| 3448   Label retry; | 3448   Label retry; | 
| 3449   __ bind(&failure_returned); | 3449   __ bind(&failure_returned); | 
| 3450   STATIC_ASSERT(Failure::RETRY_AFTER_GC == 0); | 3450   STATIC_ASSERT(Failure::RETRY_AFTER_GC == 0); | 
| 3451   __ andi(t0, v0, ((1 << kFailureTypeTagSize) - 1) << kFailureTagSize); | 3451   __ andi(t0, v0, ((1 << kFailureTypeTagSize) - 1) << kFailureTagSize); | 
| 3452   __ Branch(&retry, eq, t0, Operand(zero_reg)); | 3452   __ Branch(&retry, eq, t0, Operand(zero_reg)); | 
| 3453 | 3453 | 
| 3454   // Special handling of out of memory exceptions. | 3454   // Special handling of out of memory exceptions. | 
| 3455   JumpIfOOM(masm, v0, t0, throw_out_of_memory_exception); | 3455   JumpIfOOM(masm, v0, t0, throw_out_of_memory_exception); | 
| 3456 | 3456 | 
| 3457   // Retrieve the pending exception and clear the variable. | 3457   // Retrieve the pending exception. | 
| 3458   __ LoadRoot(a3, Heap::kTheHoleValueRootIndex); |  | 
| 3459   __ li(t0, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | 3458   __ li(t0, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | 
| 3460                                       isolate))); | 3459                                       isolate))); | 
| 3461   __ lw(v0, MemOperand(t0)); | 3460   __ lw(v0, MemOperand(t0)); | 
|  | 3461 | 
|  | 3462   // See if we just retrieved an OOM exception. | 
|  | 3463   JumpIfOOM(masm, v0, t0, throw_out_of_memory_exception); | 
|  | 3464 | 
|  | 3465   // Clear the pending exception. | 
|  | 3466   __ li(a3, Operand(isolate->factory()->the_hole_value())); | 
|  | 3467   __ li(t0, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | 
|  | 3468                                       isolate))); | 
| 3462   __ sw(a3, MemOperand(t0)); | 3469   __ sw(a3, MemOperand(t0)); | 
| 3463 | 3470 | 
| 3464   // Special handling of termination exceptions which are uncatchable | 3471   // Special handling of termination exceptions which are uncatchable | 
| 3465   // by javascript code. | 3472   // by javascript code. | 
| 3466   __ LoadRoot(t0, Heap::kTerminationExceptionRootIndex); | 3473   __ LoadRoot(t0, Heap::kTerminationExceptionRootIndex); | 
| 3467   __ Branch(throw_termination_exception, eq, v0, Operand(t0)); | 3474   __ Branch(throw_termination_exception, eq, v0, Operand(t0)); | 
| 3468 | 3475 | 
| 3469   // Handle normal exception. | 3476   // Handle normal exception. | 
| 3470   __ jmp(throw_normal_exception); | 3477   __ jmp(throw_normal_exception); | 
| 3471 | 3478 | 
| (...skipping 4043 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7515   __ Pop(ra, t1, a1); | 7522   __ Pop(ra, t1, a1); | 
| 7516   __ Ret(); | 7523   __ Ret(); | 
| 7517 } | 7524 } | 
| 7518 | 7525 | 
| 7519 | 7526 | 
| 7520 #undef __ | 7527 #undef __ | 
| 7521 | 7528 | 
| 7522 } }  // namespace v8::internal | 7529 } }  // namespace v8::internal | 
| 7523 | 7530 | 
| 7524 #endif  // V8_TARGET_ARCH_MIPS | 7531 #endif  // V8_TARGET_ARCH_MIPS | 
| OLD | NEW | 
|---|