< prev index next >
src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp
Print this page
rev 49017 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes
*** 456,466 ****
// Implement call of InterpreterRuntime::throw_AbstractMethodError.
__ set_top_ijava_frame_at_SP_as_last_Java_frame(Z_SP, Z_R1);
__ save_return_pc(); // Save Z_R14.
__ push_frame_abi160(0); // Without new frame the RT call could overwrite the saved Z_R14.
! __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError), Z_thread);
__ pop_frame();
__ restore_return_pc(); // Restore Z_R14.
__ reset_last_Java_frame();
--- 456,467 ----
// Implement call of InterpreterRuntime::throw_AbstractMethodError.
__ set_top_ijava_frame_at_SP_as_last_Java_frame(Z_SP, Z_R1);
__ save_return_pc(); // Save Z_R14.
__ push_frame_abi160(0); // Without new frame the RT call could overwrite the saved Z_R14.
! __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodErrorWithMethod),
! Z_thread, Z_method);
__ pop_frame();
__ restore_return_pc(); // Restore Z_R14.
__ reset_last_Java_frame();
*** 684,694 ****
BLOCK_COMMENT("} return_entry");
return entry;
}
! address TemplateInterpreterGenerator::generate_deopt_entry_for (TosState state,
int step,
address continuation) {
address entry = __ pc();
BLOCK_COMMENT("deopt_entry {");
--- 685,695 ----
BLOCK_COMMENT("} return_entry");
return entry;
}
! address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state,
int step,
address continuation) {
address entry = __ pc();
BLOCK_COMMENT("deopt_entry {");
< prev index next >