8253842: [JVMCI] Allow implicit exception to dispatch to other address in jvmci compilers.

Reviewed-by: kvn
This commit is contained in:
Yudi Zheng 2020-10-05 12:21:33 +00:00 committed by Doug Simon
parent 289ae798f4
commit 5d4a1350d0
4 changed files with 91 additions and 2 deletions

View file

@ -897,8 +897,14 @@ JVMCI::CodeInstallResult CodeInstaller::initialize_buffer(CodeBuffer& buffer, bo
JVMCI_ERROR_OK("method contains safepoint, but has no deopt rescue slot");
}
if (JVMCIENV->equals(reason, jvmci_env()->get_site_InfopointReason_IMPLICIT_EXCEPTION())) {
JVMCI_event_4("implicit exception at %i", pc_offset);
_implicit_exception_table.add_deoptimize(pc_offset);
if (jvmci_env()->isa_site_ImplicitExceptionDispatch(site)) {
jint dispatch_offset = jvmci_env()->get_site_ImplicitExceptionDispatch_dispatchOffset(site);
JVMCI_event_4("implicit exception at %i, dispatch to %i", pc_offset, dispatch_offset);
_implicit_exception_table.append(pc_offset, dispatch_offset);
} else {
JVMCI_event_4("implicit exception at %i", pc_offset);
_implicit_exception_table.add_deoptimize(pc_offset);
}
}
} else {
JVMCI_event_4("infopoint at %i", pc_offset);