mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8132547: [AOT] support invokedynamic instructions
Reviewed-by: iveresov, kvn
This commit is contained in:
parent
8db461922a
commit
e7270b8965
40 changed files with 894 additions and 159 deletions
|
@ -151,7 +151,7 @@ InstanceKlass* InstanceKlass::allocate_instance_klass(const ClassFileParser& par
|
|||
nonstatic_oop_map_size(parser.total_oop_map_count()),
|
||||
parser.is_interface(),
|
||||
parser.is_anonymous(),
|
||||
should_store_fingerprint());
|
||||
should_store_fingerprint(parser.is_anonymous()));
|
||||
|
||||
const Symbol* const class_name = parser.class_name();
|
||||
assert(class_name != NULL, "invariant");
|
||||
|
@ -1957,7 +1957,7 @@ bool InstanceKlass::supers_have_passed_fingerprint_checks() {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool InstanceKlass::should_store_fingerprint() {
|
||||
bool InstanceKlass::should_store_fingerprint(bool is_anonymous) {
|
||||
#if INCLUDE_AOT
|
||||
// We store the fingerprint into the InstanceKlass only in the following 2 cases:
|
||||
if (CalculateClassFingerprint) {
|
||||
|
@ -1968,6 +1968,10 @@ bool InstanceKlass::should_store_fingerprint() {
|
|||
// (2) We are running -Xshare:dump to create a shared archive
|
||||
return true;
|
||||
}
|
||||
if (UseAOT && is_anonymous) {
|
||||
// (3) We are using AOT code from a shared library and see an anonymous class
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
// In all other cases we might set the _misc_has_passed_fingerprint_check bit,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue