4516
4517 #define AOS_FIELDS_DO(macro) \
4518 macro(_owner_offset, k, "exclusiveOwnerThread", thread_signature, false)
4519
4520 void java_util_concurrent_locks_AbstractOwnableSynchronizer::compute_offsets() {
4521 InstanceKlass* k = SystemDictionary::java_util_concurrent_locks_AbstractOwnableSynchronizer_klass();
4522 AOS_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4523 }
4524
4525 oop java_util_concurrent_locks_AbstractOwnableSynchronizer::get_owner_threadObj(oop obj) {
4526 assert(_owner_offset != 0, "Must be initialized");
4527 return obj->obj_field(_owner_offset);
4528 }
4529
4530 #if INCLUDE_CDS
4531 void java_util_concurrent_locks_AbstractOwnableSynchronizer::serialize_offsets(SerializeClosure* f) {
4532 AOS_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4533 }
4534 #endif
4535
4536 int java_lang_Integer_IntegerCache::_static_cache_offset;
4537 int java_lang_Long_LongCache::_static_cache_offset;
4538 int java_lang_Character_CharacterCache::_static_cache_offset;
4539 int java_lang_Short_ShortCache::_static_cache_offset;
4540 int java_lang_Byte_ByteCache::_static_cache_offset;
4541
4542 #define VECTORPAYLOAD_FIELDS_DO(macro) \
4543 macro(_payload_offset, k, "payload", object_signature, false)
4544
4545 void vector_VectorPayload::compute_offsets() {
4546 InstanceKlass* k = SystemDictionary::vector_VectorPayload_klass();
4547 VECTORPAYLOAD_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4548 }
4549
4550 #if INCLUDE_CDS
4551 void vector_VectorPayload::serialize_offsets(SerializeClosure* f) {
4552 VECTORPAYLOAD_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4553 }
4554 #endif
4555
4556 void vector_VectorPayload::set_payload(oop o, oop val) {
4557 o->obj_field_put(_payload_offset, val);
4558 }
4559
4560 bool vector_VectorPayload::is_instance(oop obj) {
4561 return obj != NULL && is_subclass(obj->klass());
4562 }
4563
4564 #define INTEGER_CACHE_FIELDS_DO(macro) \
4565 macro(_static_cache_offset, k, "cache", java_lang_Integer_array_signature, true)
4566
4567 void java_lang_Integer_IntegerCache::compute_offsets(InstanceKlass *k) {
4568 guarantee(k != NULL && k->is_initialized(), "must be loaded and initialized");
4569 INTEGER_CACHE_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4570 }
4571
4572 objArrayOop java_lang_Integer_IntegerCache::cache(InstanceKlass *ik) {
4573 oop base = ik->static_field_base_raw();
4574 return objArrayOop(base->obj_field(_static_cache_offset));
4575 }
4576
4577 Symbol* java_lang_Integer_IntegerCache::symbol() {
4578 return vmSymbols::java_lang_Integer_IntegerCache();
4579 }
4580
4581 #if INCLUDE_CDS
4582 void java_lang_Integer_IntegerCache::serialize_offsets(SerializeClosure* f) {
4583 INTEGER_CACHE_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4743 BOOLEAN_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4744 }
4745 #endif
4746 #undef BOOLEAN_CACHE_FIELDS_DO
4747
4748 jboolean java_lang_Boolean::value(oop obj) {
4749 jvalue v;
4750 java_lang_boxing_object::get_value(obj, &v);
4751 return v.z;
4752 }
4753
4754 // java_lang_reflect_RecordComponent
4755
4756 int java_lang_reflect_RecordComponent::_clazz_offset;
4757 int java_lang_reflect_RecordComponent::_name_offset;
4758 int java_lang_reflect_RecordComponent::_type_offset;
4759 int java_lang_reflect_RecordComponent::_accessor_offset;
4760 int java_lang_reflect_RecordComponent::_signature_offset;
4761 int java_lang_reflect_RecordComponent::_annotations_offset;
4762 int java_lang_reflect_RecordComponent::_typeAnnotations_offset;
4763 int vector_VectorPayload::_payload_offset;
4764
4765 #define RECORDCOMPONENT_FIELDS_DO(macro) \
4766 macro(_clazz_offset, k, "clazz", class_signature, false); \
4767 macro(_name_offset, k, "name", string_signature, false); \
4768 macro(_type_offset, k, "type", class_signature, false); \
4769 macro(_accessor_offset, k, "accessor", reflect_method_signature, false); \
4770 macro(_signature_offset, k, "signature", string_signature, false); \
4771 macro(_annotations_offset, k, "annotations", byte_array_signature, false); \
4772 macro(_typeAnnotations_offset, k, "typeAnnotations", byte_array_signature, false);
4773
4774 // Support for java_lang_reflect_RecordComponent
4775 void java_lang_reflect_RecordComponent::compute_offsets() {
4776 InstanceKlass* k = SystemDictionary::RecordComponent_klass();
4777 RECORDCOMPONENT_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4778 }
4779
4780 #if INCLUDE_CDS
4781 void java_lang_reflect_RecordComponent::serialize_offsets(SerializeClosure* f) {
4782 RECORDCOMPONENT_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4783 }
|
4516
4517 #define AOS_FIELDS_DO(macro) \
4518 macro(_owner_offset, k, "exclusiveOwnerThread", thread_signature, false)
4519
4520 void java_util_concurrent_locks_AbstractOwnableSynchronizer::compute_offsets() {
4521 InstanceKlass* k = SystemDictionary::java_util_concurrent_locks_AbstractOwnableSynchronizer_klass();
4522 AOS_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4523 }
4524
4525 oop java_util_concurrent_locks_AbstractOwnableSynchronizer::get_owner_threadObj(oop obj) {
4526 assert(_owner_offset != 0, "Must be initialized");
4527 return obj->obj_field(_owner_offset);
4528 }
4529
4530 #if INCLUDE_CDS
4531 void java_util_concurrent_locks_AbstractOwnableSynchronizer::serialize_offsets(SerializeClosure* f) {
4532 AOS_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4533 }
4534 #endif
4535
4536 int vector_VectorPayload::_payload_offset;
4537
4538 #define VECTORPAYLOAD_FIELDS_DO(macro) \
4539 macro(_payload_offset, k, "payload", object_signature, false)
4540
4541 void vector_VectorPayload::compute_offsets() {
4542 InstanceKlass* k = SystemDictionary::vector_VectorPayload_klass();
4543 VECTORPAYLOAD_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4544 }
4545
4546 #if INCLUDE_CDS
4547 void vector_VectorPayload::serialize_offsets(SerializeClosure* f) {
4548 VECTORPAYLOAD_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4549 }
4550 #endif
4551
4552 void vector_VectorPayload::set_payload(oop o, oop val) {
4553 o->obj_field_put(_payload_offset, val);
4554 }
4555
4556 bool vector_VectorPayload::is_instance(oop obj) {
4557 return obj != NULL && is_subclass(obj->klass());
4558 }
4559
4560 int java_lang_Integer_IntegerCache::_static_cache_offset;
4561 int java_lang_Long_LongCache::_static_cache_offset;
4562 int java_lang_Character_CharacterCache::_static_cache_offset;
4563 int java_lang_Short_ShortCache::_static_cache_offset;
4564 int java_lang_Byte_ByteCache::_static_cache_offset;
4565
4566 #define INTEGER_CACHE_FIELDS_DO(macro) \
4567 macro(_static_cache_offset, k, "cache", java_lang_Integer_array_signature, true)
4568
4569 void java_lang_Integer_IntegerCache::compute_offsets(InstanceKlass *k) {
4570 guarantee(k != NULL && k->is_initialized(), "must be loaded and initialized");
4571 INTEGER_CACHE_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4572 }
4573
4574 objArrayOop java_lang_Integer_IntegerCache::cache(InstanceKlass *ik) {
4575 oop base = ik->static_field_base_raw();
4576 return objArrayOop(base->obj_field(_static_cache_offset));
4577 }
4578
4579 Symbol* java_lang_Integer_IntegerCache::symbol() {
4580 return vmSymbols::java_lang_Integer_IntegerCache();
4581 }
4582
4583 #if INCLUDE_CDS
4584 void java_lang_Integer_IntegerCache::serialize_offsets(SerializeClosure* f) {
4585 INTEGER_CACHE_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4745 BOOLEAN_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4746 }
4747 #endif
4748 #undef BOOLEAN_CACHE_FIELDS_DO
4749
4750 jboolean java_lang_Boolean::value(oop obj) {
4751 jvalue v;
4752 java_lang_boxing_object::get_value(obj, &v);
4753 return v.z;
4754 }
4755
4756 // java_lang_reflect_RecordComponent
4757
4758 int java_lang_reflect_RecordComponent::_clazz_offset;
4759 int java_lang_reflect_RecordComponent::_name_offset;
4760 int java_lang_reflect_RecordComponent::_type_offset;
4761 int java_lang_reflect_RecordComponent::_accessor_offset;
4762 int java_lang_reflect_RecordComponent::_signature_offset;
4763 int java_lang_reflect_RecordComponent::_annotations_offset;
4764 int java_lang_reflect_RecordComponent::_typeAnnotations_offset;
4765
4766 #define RECORDCOMPONENT_FIELDS_DO(macro) \
4767 macro(_clazz_offset, k, "clazz", class_signature, false); \
4768 macro(_name_offset, k, "name", string_signature, false); \
4769 macro(_type_offset, k, "type", class_signature, false); \
4770 macro(_accessor_offset, k, "accessor", reflect_method_signature, false); \
4771 macro(_signature_offset, k, "signature", string_signature, false); \
4772 macro(_annotations_offset, k, "annotations", byte_array_signature, false); \
4773 macro(_typeAnnotations_offset, k, "typeAnnotations", byte_array_signature, false);
4774
4775 // Support for java_lang_reflect_RecordComponent
4776 void java_lang_reflect_RecordComponent::compute_offsets() {
4777 InstanceKlass* k = SystemDictionary::RecordComponent_klass();
4778 RECORDCOMPONENT_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4779 }
4780
4781 #if INCLUDE_CDS
4782 void java_lang_reflect_RecordComponent::serialize_offsets(SerializeClosure* f) {
4783 RECORDCOMPONENT_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4784 }
|