8209415: Fix JVMTI test failure HS202

Fix test for static method in exception throw handler

Reviewed-by: adinn
This commit is contained in:
Andrew Haley 2018-11-13 11:21:32 -05:00
parent 8c361a3e74
commit 53e8899129

View File

@ -1902,8 +1902,8 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
Label L_done;
__ ldrb(rscratch1, Address(rbcp, 0));
__ cmpw(r1, Bytecodes::_invokestatic);
__ br(Assembler::EQ, L_done);
__ cmpw(rscratch1, Bytecodes::_invokestatic);
__ br(Assembler::NE, L_done);
// The member name argument must be restored if _invokestatic is re-executed after a PopFrame call.
// Detect such a case in the InterpreterRuntime function and return the member name argument, or NULL.
@ -1938,7 +1938,6 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
// remove the activation (without doing throws on illegalMonitorExceptions)
__ remove_activation(vtos, false, true, false);
// restore exception
// restore exception
__ get_vm_result(r0, rthread);
// In between activations - previous activation type unknown yet
@ -1947,9 +1946,8 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
//
// r0: exception
// lr: return address/pc that threw exception
// rsp: expression stack of caller
// esp: expression stack of caller
// rfp: fp of caller
// FIXME: There's no point saving LR here because VM calls don't trash it
__ stp(r0, lr, Address(__ pre(sp, -2 * wordSize))); // save exception & return address
__ super_call_VM_leaf(CAST_FROM_FN_PTR(address,
SharedRuntime::exception_handler_for_return_address),