404 __ verify_not_null_oop(rax); |
404 __ verify_not_null_oop(rax); |
405 |
405 |
406 // search an exception handler (rax: exception oop, rdx: throwing pc) |
406 // search an exception handler (rax: exception oop, rdx: throwing pc) |
407 __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id))); |
407 __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id))); |
408 __ should_not_reach_here(); |
408 __ should_not_reach_here(); |
409 assert(code_offset() - offset <= exception_handler_size, "overflow"); |
409 guarantee(code_offset() - offset <= exception_handler_size, "overflow"); |
410 __ end_a_stub(); |
410 __ end_a_stub(); |
411 |
411 |
412 return offset; |
412 return offset; |
413 } |
413 } |
414 |
414 |
488 int offset = code_offset(); |
488 int offset = code_offset(); |
489 InternalAddress here(__ pc()); |
489 InternalAddress here(__ pc()); |
490 |
490 |
491 __ pushptr(here.addr()); |
491 __ pushptr(here.addr()); |
492 __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); |
492 __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); |
493 |
493 guarantee(code_offset() - offset <= deopt_handler_size, "overflow"); |
494 assert(code_offset() - offset <= deopt_handler_size, "overflow"); |
|
495 __ end_a_stub(); |
494 __ end_a_stub(); |
496 |
495 |
497 return offset; |
496 return offset; |
498 } |
497 } |
499 |
498 |