1739 // rbp: ebp of caller |
1739 // rbp: ebp of caller |
1740 __ push(rax); // save exception |
1740 __ push(rax); // save exception |
1741 __ push(rdx); // save return address |
1741 __ push(rdx); // save return address |
1742 __ super_call_VM_leaf(CAST_FROM_FN_PTR(address, |
1742 __ super_call_VM_leaf(CAST_FROM_FN_PTR(address, |
1743 SharedRuntime::exception_handler_for_return_address), |
1743 SharedRuntime::exception_handler_for_return_address), |
1744 rdx); |
1744 r15_thread, rdx); |
1745 __ mov(rbx, rax); // save exception handler |
1745 __ mov(rbx, rax); // save exception handler |
1746 __ pop(rdx); // restore return address |
1746 __ pop(rdx); // restore return address |
1747 __ pop(rax); // restore exception |
1747 __ pop(rax); // restore exception |
1748 // Note that an "issuing PC" is actually the next PC after the call |
1748 // Note that an "issuing PC" is actually the next PC after the call |
1749 __ jmp(rbx); // jump to exception |
1749 __ jmp(rbx); // jump to exception |