diff -r f95ef5511e1f -r 2ed1c37df3a5 src/hotspot/cpu/s390/templateTable_s390.cpp --- a/src/hotspot/cpu/s390/templateTable_s390.cpp Fri Mar 09 12:03:20 2018 -0500 +++ b/src/hotspot/cpu/s390/templateTable_s390.cpp Thu Feb 08 09:23:49 2018 +0100 @@ -3742,8 +3742,12 @@ // 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_AbstractMethodError)); + 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(); @@ -3752,8 +3756,11 @@ // 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_IncompatibleClassChangeError)); + 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();