Mercurial > hg > graal-compiler
comparison src/share/vm/oops/method.hpp @ 8866:16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
Reviewed-by: kvn, jrose
author | twisti |
---|---|
date | Mon, 25 Mar 2013 17:13:26 -0700 |
parents | 56c364daccc3 |
children | b9a918201d47 b84fd7d73702 aeaca88565e6 |
comparison
equal
deleted
inserted
replaced
8865:818a1ac7da7a | 8866:16885e702c88 |
---|---|
116 #ifdef CC_INTERP | 116 #ifdef CC_INTERP |
117 int _result_index; // C++ interpreter needs for converting results to/from stack | 117 int _result_index; // C++ interpreter needs for converting results to/from stack |
118 #endif | 118 #endif |
119 u2 _method_size; // size of this object | 119 u2 _method_size; // size of this object |
120 u1 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none) | 120 u1 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none) |
121 u1 _jfr_towrite : 1, // Flags | 121 u1 _jfr_towrite : 1, // Flags |
122 _force_inline : 1, | 122 _caller_sensitive : 1, |
123 _hidden : 1, | 123 _force_inline : 1, |
124 _dont_inline : 1, | 124 _hidden : 1, |
125 : 4; | 125 _dont_inline : 1, |
126 : 3; | |
126 u2 _interpreter_throwout_count; // Count of times method was exited via exception while interpreting | 127 u2 _interpreter_throwout_count; // Count of times method was exited via exception while interpreting |
127 u2 _number_of_breakpoints; // fullspeed debugging support | 128 u2 _number_of_breakpoints; // fullspeed debugging support |
128 InvocationCounter _invocation_counter; // Incremented before each activation of the method - used to trigger frequency-based optimizations | 129 InvocationCounter _invocation_counter; // Incremented before each activation of the method - used to trigger frequency-based optimizations |
129 InvocationCounter _backedge_counter; // Incremented before each backedge taken - used to trigger frequencey-based optimizations | 130 InvocationCounter _backedge_counter; // Incremented before each backedge taken - used to trigger frequencey-based optimizations |
130 | 131 |
616 int line_number_from_bci(int bci) const; | 617 int line_number_from_bci(int bci) const; |
617 | 618 |
618 // Reflection support | 619 // Reflection support |
619 bool is_overridden_in(Klass* k) const; | 620 bool is_overridden_in(Klass* k) const; |
620 | 621 |
622 // Stack walking support | |
623 bool is_ignored_by_security_stack_walk() const; | |
624 | |
621 // JSR 292 support | 625 // JSR 292 support |
622 bool is_method_handle_intrinsic() const; // MethodHandles::is_signature_polymorphic_intrinsic(intrinsic_id) | 626 bool is_method_handle_intrinsic() const; // MethodHandles::is_signature_polymorphic_intrinsic(intrinsic_id) |
623 bool is_compiled_lambda_form() const; // intrinsic_id() == vmIntrinsics::_compiledLambdaForm | 627 bool is_compiled_lambda_form() const; // intrinsic_id() == vmIntrinsics::_compiledLambdaForm |
624 bool has_member_arg() const; // intrinsic_id() == vmIntrinsics::_linkToSpecial, etc. | 628 bool has_member_arg() const; // intrinsic_id() == vmIntrinsics::_linkToSpecial, etc. |
625 static methodHandle make_method_handle_intrinsic(vmIntrinsics::ID iid, // _invokeBasic, _linkToVirtual | 629 static methodHandle make_method_handle_intrinsic(vmIntrinsics::ID iid, // _invokeBasic, _linkToVirtual |
703 | 707 |
704 // Helper routines for intrinsic_id() and vmIntrinsics::method(). | 708 // Helper routines for intrinsic_id() and vmIntrinsics::method(). |
705 void init_intrinsic_id(); // updates from _none if a match | 709 void init_intrinsic_id(); // updates from _none if a match |
706 static vmSymbols::SID klass_id_for_intrinsics(Klass* holder); | 710 static vmSymbols::SID klass_id_for_intrinsics(Klass* holder); |
707 | 711 |
708 bool jfr_towrite() { return _jfr_towrite; } | 712 bool jfr_towrite() { return _jfr_towrite; } |
709 void set_jfr_towrite(bool towrite) { _jfr_towrite = towrite; } | 713 void set_jfr_towrite(bool x) { _jfr_towrite = x; } |
710 | 714 bool caller_sensitive() { return _caller_sensitive; } |
711 bool force_inline() { return _force_inline; } | 715 void set_caller_sensitive(bool x) { _caller_sensitive = x; } |
712 void set_force_inline(bool x) { _force_inline = x; } | 716 bool force_inline() { return _force_inline; } |
713 bool dont_inline() { return _dont_inline; } | 717 void set_force_inline(bool x) { _force_inline = x; } |
714 void set_dont_inline(bool x) { _dont_inline = x; } | 718 bool dont_inline() { return _dont_inline; } |
715 bool is_hidden() { return _hidden; } | 719 void set_dont_inline(bool x) { _dont_inline = x; } |
716 void set_hidden(bool x) { _hidden = x; } | 720 bool is_hidden() { return _hidden; } |
721 void set_hidden(bool x) { _hidden = x; } | |
717 ConstMethod::MethodType method_type() const { | 722 ConstMethod::MethodType method_type() const { |
718 return _constMethod->method_type(); | 723 return _constMethod->method_type(); |
719 } | 724 } |
720 bool is_overpass() const { return method_type() == ConstMethod::OVERPASS; } | 725 bool is_overpass() const { return method_type() == ConstMethod::OVERPASS; } |
721 | 726 |