src/share/vm/adlc/output_c.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7079317 Sdiff src/share/vm/adlc

src/share/vm/adlc/output_c.cpp

Print this page




3077 
3078   // Construct the method called by cisc_version() to copy inputs and operands.
3079   define_fill_new_machnode(used, fp);
3080 
3081   // Output the definitions for labels
3082   _instructions.reset();
3083   while( (instr = (InstructForm*)_instructions.iter()) != NULL ) {
3084     // Ensure this is a machine-world instruction
3085     if ( instr->ideal_only() ) continue;
3086 
3087     // Access the fields for operand Label
3088     int label_position = instr->label_position();
3089     if( label_position != -1 ) {
3090       // Set the label
3091       fprintf(fp,"void %sNode::label_set( Label* label, uint block_num ) {\n", instr->_ident);
3092       fprintf(fp,"  labelOper* oper  = (labelOper*)(opnd_array(%d));\n",
3093               label_position );
3094       fprintf(fp,"  oper->_label     = label;\n");
3095       fprintf(fp,"  oper->_block_num = block_num;\n");
3096       fprintf(fp,"}\n");







3097     }
3098   }
3099 
3100   // Output the definitions for methods
3101   _instructions.reset();
3102   while( (instr = (InstructForm*)_instructions.iter()) != NULL ) {
3103     // Ensure this is a machine-world instruction
3104     if ( instr->ideal_only() ) continue;
3105 
3106     // Access the fields for operand Label
3107     int method_position = instr->method_position();
3108     if( method_position != -1 ) {
3109       // Access the method's address
3110       fprintf(fp,"void %sNode::method_set( intptr_t method ) {\n", instr->_ident);
3111       fprintf(fp,"  ((methodOper*)opnd_array(%d))->_method = method;\n",
3112               method_position );
3113       fprintf(fp,"}\n");
3114       fprintf(fp,"\n");
3115     }
3116   }




3077 
3078   // Construct the method called by cisc_version() to copy inputs and operands.
3079   define_fill_new_machnode(used, fp);
3080 
3081   // Output the definitions for labels
3082   _instructions.reset();
3083   while( (instr = (InstructForm*)_instructions.iter()) != NULL ) {
3084     // Ensure this is a machine-world instruction
3085     if ( instr->ideal_only() ) continue;
3086 
3087     // Access the fields for operand Label
3088     int label_position = instr->label_position();
3089     if( label_position != -1 ) {
3090       // Set the label
3091       fprintf(fp,"void %sNode::label_set( Label* label, uint block_num ) {\n", instr->_ident);
3092       fprintf(fp,"  labelOper* oper  = (labelOper*)(opnd_array(%d));\n",
3093               label_position );
3094       fprintf(fp,"  oper->_label     = label;\n");
3095       fprintf(fp,"  oper->_block_num = block_num;\n");
3096       fprintf(fp,"}\n");
3097       // Save the label
3098       fprintf(fp,"void %sNode::save_label( Label** label, uint* block_num ) {\n", instr->_ident);
3099       fprintf(fp,"  labelOper* oper  = (labelOper*)(opnd_array(%d));\n",
3100               label_position );
3101       fprintf(fp,"  *label = oper->_label;\n");
3102       fprintf(fp,"  *block_num = oper->_block_num;\n");
3103       fprintf(fp,"}\n");
3104     }
3105   }
3106 
3107   // Output the definitions for methods
3108   _instructions.reset();
3109   while( (instr = (InstructForm*)_instructions.iter()) != NULL ) {
3110     // Ensure this is a machine-world instruction
3111     if ( instr->ideal_only() ) continue;
3112 
3113     // Access the fields for operand Label
3114     int method_position = instr->method_position();
3115     if( method_position != -1 ) {
3116       // Access the method's address
3117       fprintf(fp,"void %sNode::method_set( intptr_t method ) {\n", instr->_ident);
3118       fprintf(fp,"  ((methodOper*)opnd_array(%d))->_method = method;\n",
3119               method_position );
3120       fprintf(fp,"}\n");
3121       fprintf(fp,"\n");
3122     }
3123   }


src/share/vm/adlc/output_c.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File