377 __ ld_ptr(exception_addr, Oexception); |
377 __ ld_ptr(exception_addr, Oexception); |
378 __ verify_oop(Oexception); |
378 __ verify_oop(Oexception); |
379 __ save_frame(0); // compensates for compiler weakness |
379 __ save_frame(0); // compensates for compiler weakness |
380 __ add(O7->after_save(), frame::pc_return_offset, Lscratch); // save the issuing PC |
380 __ add(O7->after_save(), frame::pc_return_offset, Lscratch); // save the issuing PC |
381 BLOCK_COMMENT("call exception_handler_for_return_address"); |
381 BLOCK_COMMENT("call exception_handler_for_return_address"); |
382 __ call_VM_leaf(L7_thread_cache, CAST_FROM_FN_PTR(address, SharedRuntime::exception_handler_for_return_address), Lscratch); |
382 __ call_VM_leaf(L7_thread_cache, CAST_FROM_FN_PTR(address, SharedRuntime::exception_handler_for_return_address), G2_thread, Lscratch); |
383 __ mov(O0, handler_reg); |
383 __ mov(O0, handler_reg); |
384 __ restore(); // compensates for compiler weakness |
384 __ restore(); // compensates for compiler weakness |
385 |
385 |
386 __ ld_ptr(exception_addr, Oexception); |
386 __ ld_ptr(exception_addr, Oexception); |
387 __ add(O7, frame::pc_return_offset, Oissuing_pc); // save the issuing PC |
387 __ add(O7, frame::pc_return_offset, Oissuing_pc); // save the issuing PC |