699 int name_and_type_ref_index_at(int which) { return impl_name_and_type_ref_index_at(which, false); }
700
701 int remap_instruction_operand_from_cache(int operand); // operand must be biased by CPCACHE_INDEX_TAG
702
703 constantTag tag_ref_at(int cp_cache_index) { return impl_tag_ref_at(cp_cache_index, false); }
704
705 // Lookup for entries consisting of (name_index, signature_index)
706 int name_ref_index_at(int which_nt); // == low-order jshort of name_and_type_at(which_nt)
707 int signature_ref_index_at(int which_nt); // == high-order jshort of name_and_type_at(which_nt)
708
709 BasicType basic_type_for_signature_at(int which) const;
710
711 // Resolve string constants (to prevent allocation during compilation)
712 void resolve_string_constants(TRAPS) {
713 constantPoolHandle h_this(THREAD, this);
714 resolve_string_constants_impl(h_this, CHECK);
715 }
716
717 // CDS support
718 void archive_resolved_references(Thread *THREAD) NOT_CDS_JAVA_HEAP_RETURN;
719 void remove_unshareable_info();
720 void restore_unshareable_info(TRAPS);
721 bool resolve_class_constants(TRAPS);
722 // The ConstantPool vtable is restored by this call when the ConstantPool is
723 // in the shared archive. See patch_klass_vtables() in metaspaceShared.cpp for
724 // all the gory details. SA, dtrace and pstack helpers distinguish metadata
725 // by their vtable.
726 void restore_vtable() { guarantee(is_constantPool(), "vtable restored by this call"); }
727
728 private:
729 enum { _no_index_sentinel = -1, _possible_index_sentinel = -2 };
730 public:
731
732 // Resolve late bound constants.
733 oop resolve_constant_at(int index, TRAPS) {
734 constantPoolHandle h_this(THREAD, this);
735 return resolve_constant_at_impl(h_this, index, _no_index_sentinel, THREAD);
736 }
737
738 oop resolve_cached_constant_at(int cache_index, TRAPS) {
739 constantPoolHandle h_this(THREAD, this);
740 return resolve_constant_at_impl(h_this, _no_index_sentinel, cache_index, THREAD);
741 }
|
699 int name_and_type_ref_index_at(int which) { return impl_name_and_type_ref_index_at(which, false); }
700
701 int remap_instruction_operand_from_cache(int operand); // operand must be biased by CPCACHE_INDEX_TAG
702
703 constantTag tag_ref_at(int cp_cache_index) { return impl_tag_ref_at(cp_cache_index, false); }
704
705 // Lookup for entries consisting of (name_index, signature_index)
706 int name_ref_index_at(int which_nt); // == low-order jshort of name_and_type_at(which_nt)
707 int signature_ref_index_at(int which_nt); // == high-order jshort of name_and_type_at(which_nt)
708
709 BasicType basic_type_for_signature_at(int which) const;
710
711 // Resolve string constants (to prevent allocation during compilation)
712 void resolve_string_constants(TRAPS) {
713 constantPoolHandle h_this(THREAD, this);
714 resolve_string_constants_impl(h_this, CHECK);
715 }
716
717 // CDS support
718 void archive_resolved_references(Thread *THREAD) NOT_CDS_JAVA_HEAP_RETURN;
719 bool resolve_class_constants(TRAPS) NOT_CDS_JAVA_HEAP_RETURN_(true);
720 void remove_unshareable_info();
721 void restore_unshareable_info(TRAPS);
722 // The ConstantPool vtable is restored by this call when the ConstantPool is
723 // in the shared archive. See patch_klass_vtables() in metaspaceShared.cpp for
724 // all the gory details. SA, dtrace and pstack helpers distinguish metadata
725 // by their vtable.
726 void restore_vtable() { guarantee(is_constantPool(), "vtable restored by this call"); }
727
728 private:
729 enum { _no_index_sentinel = -1, _possible_index_sentinel = -2 };
730 public:
731
732 // Resolve late bound constants.
733 oop resolve_constant_at(int index, TRAPS) {
734 constantPoolHandle h_this(THREAD, this);
735 return resolve_constant_at_impl(h_this, index, _no_index_sentinel, THREAD);
736 }
737
738 oop resolve_cached_constant_at(int cache_index, TRAPS) {
739 constantPoolHandle h_this(THREAD, this);
740 return resolve_constant_at_impl(h_this, _no_index_sentinel, cache_index, THREAD);
741 }
|