| 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 #if V8_TARGET_ARCH_MIPS | 5 #if V8_TARGET_ARCH_MIPS |
| 6 | 6 |
| 7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
| 8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
| 10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
| (...skipping 1203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1214 __ nop(); // Branch delay slot nop. | 1214 __ nop(); // Branch delay slot nop. |
| 1215 | 1215 |
| 1216 // Invoke: Link this frame into the handler chain. | 1216 // Invoke: Link this frame into the handler chain. |
| 1217 __ bind(&invoke); | 1217 __ bind(&invoke); |
| 1218 __ PushStackHandler(); | 1218 __ PushStackHandler(); |
| 1219 // If an exception not caught by another handler occurs, this handler | 1219 // If an exception not caught by another handler occurs, this handler |
| 1220 // returns control to the code after the bal(&invoke) above, which | 1220 // returns control to the code after the bal(&invoke) above, which |
| 1221 // restores all kCalleeSaved registers (including cp and fp) to their | 1221 // restores all kCalleeSaved registers (including cp and fp) to their |
| 1222 // saved values before returning a failure to C. | 1222 // saved values before returning a failure to C. |
| 1223 | 1223 |
| 1224 // Clear any pending exceptions. | |
| 1225 __ LoadRoot(t1, Heap::kTheHoleValueRootIndex); | |
| 1226 __ li(t0, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | |
| 1227 isolate))); | |
| 1228 __ sw(t1, MemOperand(t0)); | |
| 1229 | |
| 1230 // Invoke the function by calling through JS entry trampoline builtin. | 1224 // Invoke the function by calling through JS entry trampoline builtin. |
| 1231 // Notice that we cannot store a reference to the trampoline code directly in | 1225 // Notice that we cannot store a reference to the trampoline code directly in |
| 1232 // this stub, because runtime stubs are not traversed when doing GC. | 1226 // this stub, because runtime stubs are not traversed when doing GC. |
| 1233 | 1227 |
| 1234 // Registers: | 1228 // Registers: |
| 1235 // a0: entry_address | 1229 // a0: entry_address |
| 1236 // a1: function | 1230 // a1: function |
| 1237 // a2: receiver_pointer | 1231 // a2: receiver_pointer |
| 1238 // a3: argc | 1232 // a3: argc |
| 1239 // s0: argv | 1233 // s0: argv |
| (...skipping 4170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5410 kStackUnwindSpace, kInvalidStackOffset, | 5404 kStackUnwindSpace, kInvalidStackOffset, |
| 5411 return_value_operand, NULL); | 5405 return_value_operand, NULL); |
| 5412 } | 5406 } |
| 5413 | 5407 |
| 5414 #undef __ | 5408 #undef __ |
| 5415 | 5409 |
| 5416 } // namespace internal | 5410 } // namespace internal |
| 5417 } // namespace v8 | 5411 } // namespace v8 |
| 5418 | 5412 |
| 5419 #endif // V8_TARGET_ARCH_MIPS | 5413 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |