< prev index next >
src/share/vm/opto/callnode.hpp
Print this page
*** 702,711 ****
--- 702,722 ----
init_class_id(Class_CallStaticJava);
if (C->eliminate_boxing() && (method != NULL) && method->is_boxing_method()) {
init_flags(Flag_is_macro);
C->add_macro_node(this);
}
+ const TypeTuple *r = tf->range_sig();
+ if (ValueTypeReturnedAsFields &&
+ method != NULL &&
+ method->is_method_handle_intrinsic() &&
+ r->cnt() > TypeFunc::Parms &&
+ r->field_at(TypeFunc::Parms)->isa_valuetypeptr() &&
+ r->field_at(TypeFunc::Parms)->is_valuetypeptr()->value_type()->value_klass() == C->env()->___Value_klass()) {
+ init_flags(Flag_is_macro);
+ C->add_macro_node(this);
+ }
+
_is_scalar_replaceable = false;
_is_non_escaping = false;
}
CallStaticJavaNode(const TypeFunc* tf, address addr, const char* name, int bci,
const TypePtr* adr_type)
*** 811,820 ****
--- 822,832 ----
const TypePtr* adr_type)
: CallLeafNode(tf, addr, name, adr_type)
{
}
virtual int Opcode() const;
+ virtual uint match_edge(uint idx) const;
};
//------------------------------Allocate---------------------------------------
// High-level memory allocation
< prev index next >