< prev index next >

src/hotspot/cpu/ppc/templateTable_ppc_64.cpp

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

*** 3686,3700 **** //__ profile_called_method(Rindex, Rscratch1); __ call_from_interpreter(Rmethod2, Rret_addr, Rscratch1, Rscratch2); // Vtable entry was NULL => Throw abstract method error. __ bind(Lthrow_ame); ! call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError)); // Interface was not found => Throw incompatible class change error. __ bind(L_no_such_interface); ! call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_IncompatibleClassChangeError)); DEBUG_ONLY( __ should_not_reach_here(); ) // Special case of invokeinterface called for virtual method of // java.lang.Object. See ConstantPoolCacheEntry::set_method() for details: // The invokeinterface was rewritten to a invokevirtual, hence we have --- 3686,3704 ---- //__ profile_called_method(Rindex, Rscratch1); __ call_from_interpreter(Rmethod2, Rret_addr, Rscratch1, Rscratch2); // Vtable entry was NULL => Throw abstract method error. __ bind(Lthrow_ame); ! // Pass arguments for generating a verbose error message. ! call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodErrorVerbose), ! Rrecv_klass, Rmethod); // Interface was not found => Throw incompatible class change error. __ bind(L_no_such_interface); ! // Pass arguments for generating a verbose error message. ! call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_IncompatibleClassChangeErrorVerbose), ! Rrecv_klass, Rinterface_klass); DEBUG_ONLY( __ should_not_reach_here(); ) // Special case of invokeinterface called for virtual method of // java.lang.Object. See ConstantPoolCacheEntry::set_method() for details: // The invokeinterface was rewritten to a invokevirtual, hence we have
< prev index next >