6893081: method handle & invokedynamic code needs additional cleanup (post 6815692, 6858164)

During the work for 6829187 we have fixed a number of basic bugs which are logically grouped with 6815692 and 6858164 but which must be reviewed and pushed separately.

Reviewed-by: kvn, never
This commit is contained in:
Christian Thalinger 2010-01-04 18:38:08 +01:00
parent 14305ba3f4
commit caf28727eb
32 changed files with 242 additions and 84 deletions

View file

@ -2699,6 +2699,15 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
}
ScavengeRootsInCode = 1;
}
#ifdef COMPILER2
if (EnableInvokeDynamic && DoEscapeAnalysis) {
// TODO: We need to find rules for invokedynamic and EA. For now,
// simply disable EA by default.
if (FLAG_IS_DEFAULT(DoEscapeAnalysis)) {
DoEscapeAnalysis = false;
}
}
#endif
if (PrintGCDetails) {
// Turn on -verbose:gc options as well
@ -2722,6 +2731,15 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
// Set flags based on ergonomics.
set_ergonomics_flags();
#ifdef _LP64
// XXX JSR 292 currently does not support compressed oops.
if (EnableMethodHandles && UseCompressedOops) {
if (FLAG_IS_DEFAULT(UseCompressedOops) || FLAG_IS_ERGO(UseCompressedOops)) {
UseCompressedOops = false;
}
}
#endif // _LP64
// Check the GC selections again.
if (!check_gc_consistency()) {
return JNI_EINVAL;