< prev index next >
src/hotspot/cpu/aarch64/vtableStubs_aarch64.cpp
Print this page
rev 49103 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes, mdoerr, njian
*** 199,209 ****
address ame_addr = __ pc();
__ ldr(rscratch1, Address(rmethod, Method::from_compiled_offset()));
__ br(rscratch1);
__ bind(L_no_such_interface);
! __ far_jump(RuntimeAddress(StubRoutines::throw_IncompatibleClassChangeError_entry()));
__ flush();
if (PrintMiscellaneous && (WizardMode || Verbose)) {
tty->print_cr("itable #%d at " PTR_FORMAT "[%d] left over: %d",
--- 199,214 ----
address ame_addr = __ pc();
__ ldr(rscratch1, Address(rmethod, Method::from_compiled_offset()));
__ br(rscratch1);
__ bind(L_no_such_interface);
! // Handle IncompatibleClassChangeError in itable stubs.
! // More detailed error message.
! // We force resolving of the call site by jumping to the "handle
! // wrong method" stub, and so let the interpreter runtime do all the
! // dirty work.
! __ far_jump(RuntimeAddress(SharedRuntime::get_handle_wrong_method_stub()));
__ flush();
if (PrintMiscellaneous && (WizardMode || Verbose)) {
tty->print_cr("itable #%d at " PTR_FORMAT "[%d] left over: %d",
< prev index next >