diff -r b2934faac289 -r 2056494941db src/share/vm/adlc/output_c.cpp --- a/src/share/vm/adlc/output_c.cpp Mon May 11 18:30:13 2009 -0700 +++ b/src/share/vm/adlc/output_c.cpp Wed May 13 00:45:22 2009 -0700 @@ -1745,6 +1745,7 @@ fprintf(fp," del_req(i);\n"); fprintf(fp," }\n"); fprintf(fp," _num_opnds = %d;\n", new_num_opnds); + assert(new_num_opnds == node->num_unique_opnds(), "what?"); } } @@ -3761,6 +3762,12 @@ if ( this->captures_bottom_type() ) { fprintf(fp_cpp, " node->_bottom_type = bottom_type();\n"); } + + uint cur_num_opnds = num_opnds(); + if (cur_num_opnds > 1 && cur_num_opnds != num_unique_opnds()) { + fprintf(fp_cpp," node->_num_opnds = %d;\n", num_unique_opnds()); + } + fprintf(fp_cpp, "\n"); fprintf(fp_cpp, " // Copy _idx, inputs and operands to new node\n"); fprintf(fp_cpp, " fill_new_machnode(node, C);\n");