464 // compute exception handler into rbx |
464 // compute exception handler into rbx |
465 __ movptr(c_rarg0, Address(rsp, 0)); |
465 __ movptr(c_rarg0, Address(rsp, 0)); |
466 BLOCK_COMMENT("call exception_handler_for_return_address"); |
466 BLOCK_COMMENT("call exception_handler_for_return_address"); |
467 __ call_VM_leaf(CAST_FROM_FN_PTR(address, |
467 __ call_VM_leaf(CAST_FROM_FN_PTR(address, |
468 SharedRuntime::exception_handler_for_return_address), |
468 SharedRuntime::exception_handler_for_return_address), |
469 c_rarg0); |
469 r15_thread, c_rarg0); |
470 __ mov(rbx, rax); |
470 __ mov(rbx, rax); |
471 |
471 |
472 // setup rax & rdx, remove return address & clear pending exception |
472 // setup rax & rdx, remove return address & clear pending exception |
473 __ pop(rdx); |
473 __ pop(rdx); |
474 __ movptr(rax, Address(r15_thread, Thread::pending_exception_offset())); |
474 __ movptr(rax, Address(r15_thread, Thread::pending_exception_offset())); |