Some clean up
This commit is contained in:
parent
fcf838bd3e
commit
1f3c2598ae
@ -1404,9 +1404,9 @@ C2V_VMENTRY(void, reprofile, (JNIEnv* env, jobject, ARGUMENT_PAIR(method)))
|
|||||||
C2V_END
|
C2V_END
|
||||||
|
|
||||||
|
|
||||||
C2V_VMENTRY(void, invalidateHotSpotNmethod, (JNIEnv* env, jobject, jobject hs_nmethod, jboolean deoptimize, jint change_reason))
|
C2V_VMENTRY(void, invalidateHotSpotNmethod, (JNIEnv* env, jobject, jobject hs_nmethod, jboolean deoptimize, jint invalidation_reason))
|
||||||
JVMCIObject nmethod_mirror = JVMCIENV->wrap(hs_nmethod);
|
JVMCIObject nmethod_mirror = JVMCIENV->wrap(hs_nmethod);
|
||||||
JVMCIENV->invalidate_nmethod_mirror(nmethod_mirror, deoptimize, static_cast<nmethod::ChangeReason>(change_reason), JVMCI_CHECK);
|
JVMCIENV->invalidate_nmethod_mirror(nmethod_mirror, deoptimize, static_cast<nmethod::ChangeReason>(invalidation_reason), JVMCI_CHECK);
|
||||||
C2V_END
|
C2V_END
|
||||||
|
|
||||||
C2V_VMENTRY_NULL(jlongArray, collectCounters, (JNIEnv* env, jobject))
|
C2V_VMENTRY_NULL(jlongArray, collectCounters, (JNIEnv* env, jobject))
|
||||||
|
@ -797,7 +797,7 @@ void JVMCINMethodData::set_nmethod_mirror(nmethod* nm, oop new_mirror) {
|
|||||||
Universe::heap()->register_nmethod(nm);
|
Universe::heap()->register_nmethod(nm);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JVMCINMethodData::invalidate_nmethod_mirror(nmethod* nm, nmethod::ChangeReason change_reason) {
|
void JVMCINMethodData::invalidate_nmethod_mirror(nmethod* nm, nmethod::ChangeReason invalidation_reason) {
|
||||||
oop nmethod_mirror = get_nmethod_mirror(nm);
|
oop nmethod_mirror = get_nmethod_mirror(nm);
|
||||||
if (nmethod_mirror == nullptr) {
|
if (nmethod_mirror == nullptr) {
|
||||||
return;
|
return;
|
||||||
@ -815,14 +815,14 @@ void JVMCINMethodData::invalidate_nmethod_mirror(nmethod* nm, nmethod::ChangeRea
|
|||||||
// an InvalidInstalledCodeException.
|
// an InvalidInstalledCodeException.
|
||||||
HotSpotJVMCI::InstalledCode::set_address(jvmciEnv, nmethod_mirror, 0);
|
HotSpotJVMCI::InstalledCode::set_address(jvmciEnv, nmethod_mirror, 0);
|
||||||
HotSpotJVMCI::InstalledCode::set_entryPoint(jvmciEnv, nmethod_mirror, 0);
|
HotSpotJVMCI::InstalledCode::set_entryPoint(jvmciEnv, nmethod_mirror, 0);
|
||||||
HotSpotJVMCI::HotSpotNmethod::set_invalidationReason(jvmciEnv, nmethod_mirror, static_cast<int>(change_reason));
|
HotSpotJVMCI::HotSpotNmethod::set_invalidationReason(jvmciEnv, nmethod_mirror, static_cast<int>(invalidation_reason));
|
||||||
HotSpotJVMCI::HotSpotInstalledCode::set_codeStart(jvmciEnv, nmethod_mirror, 0);
|
HotSpotJVMCI::HotSpotInstalledCode::set_codeStart(jvmciEnv, nmethod_mirror, 0);
|
||||||
} else if (nm->is_not_entrant()) {
|
} else if (nm->is_not_entrant()) {
|
||||||
// Zero the entry point so any new invocation will fail but keep
|
// Zero the entry point so any new invocation will fail but keep
|
||||||
// the address link around that so that existing activations can
|
// the address link around that so that existing activations can
|
||||||
// be deoptimized via the mirror (i.e. JVMCIEnv::invalidate_installed_code).
|
// be deoptimized via the mirror (i.e. JVMCIEnv::invalidate_installed_code).
|
||||||
HotSpotJVMCI::InstalledCode::set_entryPoint(jvmciEnv, nmethod_mirror, 0);
|
HotSpotJVMCI::InstalledCode::set_entryPoint(jvmciEnv, nmethod_mirror, 0);
|
||||||
HotSpotJVMCI::HotSpotNmethod::set_invalidationReason(jvmciEnv, nmethod_mirror, static_cast<int>(change_reason));
|
HotSpotJVMCI::HotSpotNmethod::set_invalidationReason(jvmciEnv, nmethod_mirror, static_cast<int>(invalidation_reason));
|
||||||
HotSpotJVMCI::HotSpotInstalledCode::set_codeStart(jvmciEnv, nmethod_mirror, 0);
|
HotSpotJVMCI::HotSpotInstalledCode::set_codeStart(jvmciEnv, nmethod_mirror, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@ public:
|
|||||||
|
|
||||||
// Clears the HotSpotNmethod.address field in the mirror. If nm
|
// Clears the HotSpotNmethod.address field in the mirror. If nm
|
||||||
// is dead, the HotSpotNmethod.entryPoint field is also cleared.
|
// is dead, the HotSpotNmethod.entryPoint field is also cleared.
|
||||||
void invalidate_nmethod_mirror(nmethod* nm, nmethod::ChangeReason change_reason);
|
void invalidate_nmethod_mirror(nmethod* nm, nmethod::ChangeReason invalidation_reason);
|
||||||
|
|
||||||
// Gets the mirror from nm's oops table.
|
// Gets the mirror from nm's oops table.
|
||||||
oop get_nmethod_mirror(nmethod* nm);
|
oop get_nmethod_mirror(nmethod* nm);
|
||||||
|
@ -127,7 +127,7 @@ public class InstalledCode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Equivalent to calling {@link #invalidate(boolean, int)} with {@code true} and {@code 0} as arguments.
|
* Equivalent to calling {@link #invalidate(boolean)} with a {@code true} argument.
|
||||||
*/
|
*/
|
||||||
public void invalidate() {
|
public void invalidate() {
|
||||||
invalidate(true);
|
invalidate(true);
|
||||||
|
@ -129,6 +129,12 @@ public class HotSpotNmethod extends HotSpotInstalledCode {
|
|||||||
return method;
|
return method;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invalidate this nmethod using the reason specified in {@code invalidationReason} and
|
||||||
|
* optionally deoptimize the method if {@code deoptimize} is set.
|
||||||
|
* @param deoptimize whether or not to deoptimize the method.
|
||||||
|
* @param invalidationReason invalidation reason code.
|
||||||
|
*/
|
||||||
public void invalidate(boolean deoptimize, int invalidationReason) {
|
public void invalidate(boolean deoptimize, int invalidationReason) {
|
||||||
compilerToVM().invalidateHotSpotNmethod(this, deoptimize, invalidationReason);
|
compilerToVM().invalidateHotSpotNmethod(this, deoptimize, invalidationReason);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user