2062 m->set_intrinsic_id(vmIntrinsics::_compiledLambdaForm);
2063 if (has_annotation(_method_Hidden))
2064 m->set_hidden(true);
2065 if (has_annotation(_method_Scoped))
2066 m->set_scoped(true);
2067 if (has_annotation(_method_IntrinsicCandidate) && !m->is_synthetic())
2068 m->set_intrinsic_candidate(true);
2069 if (has_annotation(_jdk_internal_vm_annotation_ReservedStackAccess))
2070 m->set_has_reserved_stack_access(true);
2071 }
2072
2073 void ClassFileParser::ClassAnnotationCollector::apply_to(InstanceKlass* ik) {
2074 assert(ik != NULL, "invariant");
2075 if (has_annotation(_jdk_internal_vm_annotation_Contended)) {
2076 ik->set_is_contended(is_contended());
2077 }
2078 if (has_annotation(_jdk_internal_ValueBased)) {
2079 ik->set_has_value_based_class_annotation();
2080 if (DiagnoseSyncOnValueBasedClasses) {
2081 ik->set_is_value_based();
2082 ik->set_prototype_header(markWord::prototype());
2083 }
2084 }
2085 }
2086
2087 #define MAX_ARGS_SIZE 255
2088 #define MAX_CODE_SIZE 65535
2089 #define INITIAL_MAX_LVT_NUMBER 256
2090
2091 /* Copy class file LVT's/LVTT's into the HotSpot internal LVT.
2092 *
2093 * Rules for LVT's and LVTT's are:
2094 * - There can be any number of LVT's and LVTT's.
2095 * - If there are n LVT's, it is the same as if there was just
2096 * one LVT containing all the entries from the n LVT's.
2097 * - There may be no more than one LVT entry per local variable.
2098 * Two LVT entries are 'equal' if these fields are the same:
2099 * start_pc, length, name, slot
2100 * - There may be no more than one LVTT entry per each LVT entry.
2101 * Each LVTT entry has to match some LVT entry.
2102 * - HotSpot internal LVT keeps natural ordering of class file LVT entries.
|
2062 m->set_intrinsic_id(vmIntrinsics::_compiledLambdaForm);
2063 if (has_annotation(_method_Hidden))
2064 m->set_hidden(true);
2065 if (has_annotation(_method_Scoped))
2066 m->set_scoped(true);
2067 if (has_annotation(_method_IntrinsicCandidate) && !m->is_synthetic())
2068 m->set_intrinsic_candidate(true);
2069 if (has_annotation(_jdk_internal_vm_annotation_ReservedStackAccess))
2070 m->set_has_reserved_stack_access(true);
2071 }
2072
2073 void ClassFileParser::ClassAnnotationCollector::apply_to(InstanceKlass* ik) {
2074 assert(ik != NULL, "invariant");
2075 if (has_annotation(_jdk_internal_vm_annotation_Contended)) {
2076 ik->set_is_contended(is_contended());
2077 }
2078 if (has_annotation(_jdk_internal_ValueBased)) {
2079 ik->set_has_value_based_class_annotation();
2080 if (DiagnoseSyncOnValueBasedClasses) {
2081 ik->set_is_value_based();
2082 if (UseCompactObjectHeaders) {
2083 ik->set_prototype_header(markWord::prototype() LP64_ONLY(.set_klass(ik)));
2084 } else {
2085 ik->set_prototype_header(markWord::prototype());
2086 }
2087 }
2088 }
2089 }
2090
2091 #define MAX_ARGS_SIZE 255
2092 #define MAX_CODE_SIZE 65535
2093 #define INITIAL_MAX_LVT_NUMBER 256
2094
2095 /* Copy class file LVT's/LVTT's into the HotSpot internal LVT.
2096 *
2097 * Rules for LVT's and LVTT's are:
2098 * - There can be any number of LVT's and LVTT's.
2099 * - If there are n LVT's, it is the same as if there was just
2100 * one LVT containing all the entries from the n LVT's.
2101 * - There may be no more than one LVT entry per local variable.
2102 * Two LVT entries are 'equal' if these fields are the same:
2103 * start_pc, length, name, slot
2104 * - There may be no more than one LVTT entry per each LVT entry.
2105 * Each LVTT entry has to match some LVT entry.
2106 * - HotSpot internal LVT keeps natural ordering of class file LVT entries.
|