< prev index next >

src/hotspot/share/opto/callnode.hpp

Print this page

        

@@ -725,13 +725,13 @@
     const TypeTuple *r = tf->range_sig();
     if (ValueTypeReturnedAsFields &&
         method != NULL &&
         method->is_method_handle_intrinsic() &&
         r->cnt() > TypeFunc::Parms &&
-        r->field_at(TypeFunc::Parms)->is_valuetypeptr() &&
-        // TODO fix this with the calling convention changes
-        false /*r->field_at(TypeFunc::Parms)->is_valuetypeptr()->is__Value()*/) {
+        r->field_at(TypeFunc::Parms)->isa_oopptr() &&
+        r->field_at(TypeFunc::Parms)->is_oopptr()->can_be_value_type()) {
+      // Make sure this call is processed by PhaseMacroExpand::expand_mh_intrinsic_return
       init_flags(Flag_is_macro);
       C->add_macro_node(this);
     }
 
     _is_scalar_replaceable = false;
< prev index next >