< prev index next >
src/hotspot/share/oops/method.hpp
Print this page
@@ -88,11 +88,12 @@
_dont_inline = 1 << 2,
_hidden = 1 << 3,
_has_injected_profile = 1 << 4,
_running_emcp = 1 << 5,
_intrinsic_candidate = 1 << 6,
- _reserved_stack_access = 1 << 7
+ _reserved_stack_access = 1 << 7,
+ _is_returning_vt = 1 << 8
};
mutable u2 _flags;
JFR_ONLY(DEFINE_TRACE_FLAG;)
@@ -579,11 +580,10 @@
void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments)
Symbol* klass_name() const; // returns the name of the method holder
BasicType result_type() const; // type of the method result
bool may_return_oop() const { BasicType r = result_type(); return (r == T_OBJECT || r == T_ARRAY || r == T_VALUETYPE); }
- bool is_returning_vt() const { BasicType r = result_type(); return r == T_VALUETYPE; }
#ifdef ASSERT
ValueKlass* returned_value_type(Thread* thread) const;
#endif
// Checked exceptions thrown by this method (resolved to mirrors)
@@ -693,10 +693,11 @@
// interpreter support
static ByteSize const_offset() { return byte_offset_of(Method, _constMethod ); }
static ByteSize access_flags_offset() { return byte_offset_of(Method, _access_flags ); }
static ByteSize from_compiled_offset() { return byte_offset_of(Method, _from_compiled_entry); }
static ByteSize code_offset() { return byte_offset_of(Method, _code); }
+ static ByteSize flags_offset() { return byte_offset_of(Method, _flags); }
static ByteSize method_data_offset() {
return byte_offset_of(Method, _method_data);
}
static ByteSize method_counters_offset() {
return byte_offset_of(Method, _method_counters);
@@ -894,10 +895,22 @@
void set_has_reserved_stack_access(bool x) {
_flags = x ? (_flags | _reserved_stack_access) : (_flags & ~_reserved_stack_access);
}
+ static int is_returning_vt_mask() {
+ return _is_returning_vt;
+ }
+
+ bool is_returning_vt() const {
+ return (_flags & _is_returning_vt) != 0;
+ }
+
+ void set_is_returning_vt() {
+ _flags |= _is_returning_vt;
+ }
+
JFR_ONLY(DEFINE_TRACE_FLAG_ACCESSOR;)
ConstMethod::MethodType method_type() const {
return _constMethod->method_type();
}
< prev index next >