| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
| 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/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 1196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1207 __ B(&exit); | 1207 __ B(&exit); |
| 1208 | 1208 |
| 1209 // Invoke: Link this frame into the handler chain. | 1209 // Invoke: Link this frame into the handler chain. |
| 1210 __ Bind(&invoke); | 1210 __ Bind(&invoke); |
| 1211 __ PushStackHandler(); | 1211 __ PushStackHandler(); |
| 1212 // If an exception not caught by another handler occurs, this handler | 1212 // If an exception not caught by another handler occurs, this handler |
| 1213 // returns control to the code after the B(&invoke) above, which | 1213 // returns control to the code after the B(&invoke) above, which |
| 1214 // restores all callee-saved registers (including cp and fp) to their | 1214 // restores all callee-saved registers (including cp and fp) to their |
| 1215 // saved values before returning a failure to C. | 1215 // saved values before returning a failure to C. |
| 1216 | 1216 |
| 1217 // Clear any pending exceptions. | |
| 1218 __ Mov(x10, Operand(isolate()->factory()->the_hole_value())); | |
| 1219 __ Mov(x11, Operand(ExternalReference(Isolate::kPendingExceptionAddress, | |
| 1220 isolate()))); | |
| 1221 __ Str(x10, MemOperand(x11)); | |
| 1222 | |
| 1223 // Invoke the function by calling through the JS entry trampoline builtin. | 1217 // Invoke the function by calling through the JS entry trampoline builtin. |
| 1224 // Notice that we cannot store a reference to the trampoline code directly in | 1218 // Notice that we cannot store a reference to the trampoline code directly in |
| 1225 // this stub, because runtime stubs are not traversed when doing GC. | 1219 // this stub, because runtime stubs are not traversed when doing GC. |
| 1226 | 1220 |
| 1227 // Expected registers by Builtins::JSEntryTrampoline | 1221 // Expected registers by Builtins::JSEntryTrampoline |
| 1228 // x0: code entry. | 1222 // x0: code entry. |
| 1229 // x1: function. | 1223 // x1: function. |
| 1230 // x2: receiver. | 1224 // x2: receiver. |
| 1231 // x3: argc. | 1225 // x3: argc. |
| 1232 // x4: argv. | 1226 // x4: argv. |
| (...skipping 4348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5581 kStackUnwindSpace, NULL, spill_offset, | 5575 kStackUnwindSpace, NULL, spill_offset, |
| 5582 return_value_operand, NULL); | 5576 return_value_operand, NULL); |
| 5583 } | 5577 } |
| 5584 | 5578 |
| 5585 #undef __ | 5579 #undef __ |
| 5586 | 5580 |
| 5587 } // namespace internal | 5581 } // namespace internal |
| 5588 } // namespace v8 | 5582 } // namespace v8 |
| 5589 | 5583 |
| 5590 #endif // V8_TARGET_ARCH_ARM64 | 5584 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |