< prev index next >

src/share/vm/opto/callGenerator.cpp

Print this page

        

*** 494,508 **** C->env()->notice_inlined_method(_inline_cg->method()); C->set_inlining_progress(true); if (return_type->is_valuetype() && return_type != C->env()->___Value_klass()) { if (result->is_ValueType()) { if (!call->tf()->returns_value_type_as_fields()) { ! result = result->as_ValueType()->allocate(&kit); } else { // Return of multiple values (the fields of a value type) - ValueTypeNode* vt = result->as_ValueType(); vt->replace_call_results(call, C); } } else { assert(result->is_top(), "what else?"); for (DUIterator_Fast imax, i = call->fast_outs(imax); i < imax; i++) { --- 494,509 ---- C->env()->notice_inlined_method(_inline_cg->method()); C->set_inlining_progress(true); if (return_type->is_valuetype() && return_type != C->env()->___Value_klass()) { if (result->is_ValueType()) { + ValueTypeNode* vt = result->as_ValueType(); if (!call->tf()->returns_value_type_as_fields()) { ! result = vt->allocate(&kit); ! result = C->initial_gvn()->transform(new ValueTypePtrNode(vt, result, C)); } else { // Return of multiple values (the fields of a value type) vt->replace_call_results(call, C); } } else { assert(result->is_top(), "what else?"); for (DUIterator_Fast imax, i = call->fast_outs(imax); i < imax; i++) {
< prev index next >