< prev index next >

src/hotspot/cpu/s390/templateTable_s390.cpp

Print this page
rev 49172 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes, mdoerr, njian

*** 3740,3761 **** __ bind(no_such_method); // Throw exception. __ restore_bcp(); // Bcp must be correct for exception handler (was destroyed). __ restore_locals(); // Make sure locals pointer is correct as well (was destroyed). __ call_VM(noreg, ! CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError)); // The call_VM checks for exception, so we should never return here. __ should_not_reach_here(); __ bind(no_such_interface); // Throw exception. __ restore_bcp(); // Bcp must be correct for exception handler (was destroyed). __ restore_locals(); // Make sure locals pointer is correct as well (was destroyed). __ call_VM(noreg, ! CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_IncompatibleClassChangeError)); // The call_VM checks for exception, so we should never return here. __ should_not_reach_here(); BLOCK_COMMENT("} invokeinterface"); return; --- 3740,3768 ---- __ bind(no_such_method); // Throw exception. __ restore_bcp(); // Bcp must be correct for exception handler (was destroyed). __ restore_locals(); // Make sure locals pointer is correct as well (was destroyed). + // Pass arguments for generating a verbose error message. + __ z_lgr(Z_tmp_1, method); // Prevent register clash. __ call_VM(noreg, ! CAST_FROM_FN_PTR(address, ! InterpreterRuntime::throw_AbstractMethodErrorVerbose), ! klass, Z_tmp_1); // The call_VM checks for exception, so we should never return here. __ should_not_reach_here(); __ bind(no_such_interface); // Throw exception. __ restore_bcp(); // Bcp must be correct for exception handler (was destroyed). __ restore_locals(); // Make sure locals pointer is correct as well (was destroyed). + // Pass arguments for generating a verbose error message. __ call_VM(noreg, ! CAST_FROM_FN_PTR(address, ! InterpreterRuntime::throw_IncompatibleClassChangeErrorVerbose), ! klass, interface); // The call_VM checks for exception, so we should never return here. __ should_not_reach_here(); BLOCK_COMMENT("} invokeinterface"); return;
< prev index next >