632 #ifndef PRODUCT
633 static ByteSize compiled_invocation_counter_offset() { return byte_offset_of(Method, _compiled_invocation_count); }
634 #endif // not PRODUCT
635 static ByteSize native_function_offset() { return in_ByteSize(sizeof(Method)); }
636 static ByteSize from_interpreted_offset() { return byte_offset_of(Method, _from_interpreted_entry ); }
637 static ByteSize interpreter_entry_offset() { return byte_offset_of(Method, _i2i_entry ); }
638 static ByteSize signature_handler_offset() { return in_ByteSize(sizeof(Method) + wordSize); }
639
640 // for code generation
641 static int method_data_offset_in_bytes() { return offset_of(Method, _method_data); }
642 static int intrinsic_id_offset_in_bytes() { return offset_of(Method, _intrinsic_id); }
643 static int intrinsic_id_size_in_bytes() { return sizeof(u1); }
644
645 // Static methods that are used to implement member methods where an exposed this pointer
646 // is needed due to possible GCs
647 static objArrayHandle resolved_checked_exceptions_impl(Method* method, TRAPS);
648
649 // Returns the byte code index from the byte code pointer
650 int bci_from(address bcp) const;
651 address bcp_from(int bci) const;
652 int validate_bci_from_bcx(intptr_t bcx) const;
653
654 // Returns the line number for a bci if debugging information for the method is prowided,
655 // -1 is returned otherwise.
656 int line_number_from_bci(int bci) const;
657
658 // Reflection support
659 bool is_overridden_in(Klass* k) const;
660
661 // Stack walking support
662 bool is_ignored_by_security_stack_walk() const;
663
664 // JSR 292 support
665 bool is_method_handle_intrinsic() const; // MethodHandles::is_signature_polymorphic_intrinsic(intrinsic_id)
666 bool is_compiled_lambda_form() const; // intrinsic_id() == vmIntrinsics::_compiledLambdaForm
667 bool has_member_arg() const; // intrinsic_id() == vmIntrinsics::_linkToSpecial, etc.
668 static methodHandle make_method_handle_intrinsic(vmIntrinsics::ID iid, // _invokeBasic, _linkToVirtual
669 Symbol* signature, //anything at all
670 TRAPS);
671 static Klass* check_non_bcp_klass(Klass* klass);
672
|
632 #ifndef PRODUCT
633 static ByteSize compiled_invocation_counter_offset() { return byte_offset_of(Method, _compiled_invocation_count); }
634 #endif // not PRODUCT
635 static ByteSize native_function_offset() { return in_ByteSize(sizeof(Method)); }
636 static ByteSize from_interpreted_offset() { return byte_offset_of(Method, _from_interpreted_entry ); }
637 static ByteSize interpreter_entry_offset() { return byte_offset_of(Method, _i2i_entry ); }
638 static ByteSize signature_handler_offset() { return in_ByteSize(sizeof(Method) + wordSize); }
639
640 // for code generation
641 static int method_data_offset_in_bytes() { return offset_of(Method, _method_data); }
642 static int intrinsic_id_offset_in_bytes() { return offset_of(Method, _intrinsic_id); }
643 static int intrinsic_id_size_in_bytes() { return sizeof(u1); }
644
645 // Static methods that are used to implement member methods where an exposed this pointer
646 // is needed due to possible GCs
647 static objArrayHandle resolved_checked_exceptions_impl(Method* method, TRAPS);
648
649 // Returns the byte code index from the byte code pointer
650 int bci_from(address bcp) const;
651 address bcp_from(int bci) const;
652 int validate_bci_from_bcp(address bcp) const;
653 int validate_bci(int bci) const;
654
655 // Returns the line number for a bci if debugging information for the method is prowided,
656 // -1 is returned otherwise.
657 int line_number_from_bci(int bci) const;
658
659 // Reflection support
660 bool is_overridden_in(Klass* k) const;
661
662 // Stack walking support
663 bool is_ignored_by_security_stack_walk() const;
664
665 // JSR 292 support
666 bool is_method_handle_intrinsic() const; // MethodHandles::is_signature_polymorphic_intrinsic(intrinsic_id)
667 bool is_compiled_lambda_form() const; // intrinsic_id() == vmIntrinsics::_compiledLambdaForm
668 bool has_member_arg() const; // intrinsic_id() == vmIntrinsics::_linkToSpecial, etc.
669 static methodHandle make_method_handle_intrinsic(vmIntrinsics::ID iid, // _invokeBasic, _linkToVirtual
670 Symbol* signature, //anything at all
671 TRAPS);
672 static Klass* check_non_bcp_klass(Klass* klass);
673
|