equal
deleted
inserted
replaced
70 // note: can have vtables with >2**16 elements (because of inheritance) |
70 // note: can have vtables with >2**16 elements (because of inheritance) |
71 #ifdef CC_INTERP |
71 #ifdef CC_INTERP |
72 int _result_index; // C++ interpreter needs for converting results to/from stack |
72 int _result_index; // C++ interpreter needs for converting results to/from stack |
73 #endif |
73 #endif |
74 u2 _method_size; // size of this object |
74 u2 _method_size; // size of this object |
75 u1 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none) |
75 u2 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none) |
76 |
76 |
77 // Flags |
77 // Flags |
78 enum Flags { |
78 enum Flags { |
79 _jfr_towrite = 1 << 0, |
79 _jfr_towrite = 1 << 0, |
80 _caller_sensitive = 1 << 1, |
80 _caller_sensitive = 1 << 1, |
651 static ByteSize signature_handler_offset() { return in_ByteSize(sizeof(Method) + wordSize); } |
651 static ByteSize signature_handler_offset() { return in_ByteSize(sizeof(Method) + wordSize); } |
652 |
652 |
653 // for code generation |
653 // for code generation |
654 static int method_data_offset_in_bytes() { return offset_of(Method, _method_data); } |
654 static int method_data_offset_in_bytes() { return offset_of(Method, _method_data); } |
655 static int intrinsic_id_offset_in_bytes() { return offset_of(Method, _intrinsic_id); } |
655 static int intrinsic_id_offset_in_bytes() { return offset_of(Method, _intrinsic_id); } |
656 static int intrinsic_id_size_in_bytes() { return sizeof(u1); } |
656 static int intrinsic_id_size_in_bytes() { return sizeof(u2); } |
657 |
657 |
658 // Static methods that are used to implement member methods where an exposed this pointer |
658 // Static methods that are used to implement member methods where an exposed this pointer |
659 // is needed due to possible GCs |
659 // is needed due to possible GCs |
660 static objArrayHandle resolved_checked_exceptions_impl(Method* method, TRAPS); |
660 static objArrayHandle resolved_checked_exceptions_impl(Method* method, TRAPS); |
661 |
661 |
775 // so handles are not used to avoid deadlock. |
775 // so handles are not used to avoid deadlock. |
776 jmethodID find_jmethod_id_or_null() { return method_holder()->jmethod_id_or_null(this); } |
776 jmethodID find_jmethod_id_or_null() { return method_holder()->jmethod_id_or_null(this); } |
777 |
777 |
778 // Support for inlining of intrinsic methods |
778 // Support for inlining of intrinsic methods |
779 vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; } |
779 vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; } |
780 void set_intrinsic_id(vmIntrinsics::ID id) { _intrinsic_id = (u1) id; } |
780 void set_intrinsic_id(vmIntrinsics::ID id) { _intrinsic_id = (u2) id; } |
781 |
781 |
782 // Helper routines for intrinsic_id() and vmIntrinsics::method(). |
782 // Helper routines for intrinsic_id() and vmIntrinsics::method(). |
783 void init_intrinsic_id(); // updates from _none if a match |
783 void init_intrinsic_id(); // updates from _none if a match |
784 static vmSymbols::SID klass_id_for_intrinsics(Klass* holder); |
784 static vmSymbols::SID klass_id_for_intrinsics(Klass* holder); |
785 |
785 |