hotspot/src/share/vm/adlc/output_c.cpp
changeset 22865 3b8857d7b3cc
parent 22860 80a845ab5e4a
child 22872 b6902ee5bc8d
equal deleted inserted replaced
22864:f476f1ae4bd3 22865:3b8857d7b3cc
  1840   // If the node is a MachConstantNode, insert the MachConstantBaseNode edge.
  1840   // If the node is a MachConstantNode, insert the MachConstantBaseNode edge.
  1841   // NOTE: this edge must be the last input (see MachConstantNode::mach_constant_base_node_input).
  1841   // NOTE: this edge must be the last input (see MachConstantNode::mach_constant_base_node_input).
  1842   // There are nodes that don't use $constantablebase, but still require that it
  1842   // There are nodes that don't use $constantablebase, but still require that it
  1843   // is an input to the node. Example: divF_reg_immN, Repl32B_imm on x86_64.
  1843   // is an input to the node. Example: divF_reg_immN, Repl32B_imm on x86_64.
  1844   if (node->is_mach_constant() || node->needs_constant_base()) {
  1844   if (node->is_mach_constant() || node->needs_constant_base()) {
  1845     fprintf(fp,"  add_req(C->mach_constant_base_node());\n");
  1845     if (node->is_ideal_call() != Form::invalid_type &&
  1846   }
  1846         node->is_ideal_call() != Form::JAVA_LEAF) {
  1847 
  1847       fprintf(fp, "  // MachConstantBaseNode added in matcher.\n");
  1848   fprintf(fp,"\n");
  1848       _needs_clone_jvms = true;
  1849   if( node->expands() ) {
  1849     } else {
  1850     fprintf(fp,"  return result;\n");
  1850       fprintf(fp, "  add_req(C->mach_constant_base_node());\n");
       
  1851     }
       
  1852   }
       
  1853 
       
  1854   fprintf(fp, "\n");
       
  1855   if (node->expands()) {
       
  1856     fprintf(fp, "  return result;\n");
  1851   } else {
  1857   } else {
  1852     fprintf(fp,"  return this;\n");
  1858     fprintf(fp, "  return this;\n");
  1853   }
  1859   }
  1854   fprintf(fp,"}\n");
  1860   fprintf(fp, "}\n");
  1855   fprintf(fp,"\n");
  1861   fprintf(fp, "\n");
  1856 }
  1862 }
  1857 
  1863 
  1858 
  1864 
  1859 //------------------------------Emit Routines----------------------------------
  1865 //------------------------------Emit Routines----------------------------------
  1860 // Special classes and routines for defining node emit routines which output
  1866 // Special classes and routines for defining node emit routines which output
  3640   else                                         callconv = 'Z';
  3646   else                                         callconv = 'Z';
  3641 
  3647 
  3642   return callconv;
  3648   return callconv;
  3643 }
  3649 }
  3644 
  3650 
       
  3651 void ArchDesc::generate_needs_clone_jvms(FILE *fp_cpp) {
       
  3652   fprintf(fp_cpp, "bool Compile::needs_clone_jvms() { return %s; }\n\n",
       
  3653           _needs_clone_jvms ? "true" : "false");
       
  3654 }
       
  3655 
  3645 //---------------------------generate_assertion_checks-------------------
  3656 //---------------------------generate_assertion_checks-------------------
  3646 void ArchDesc::generate_adlc_verification(FILE *fp_cpp) {
  3657 void ArchDesc::generate_adlc_verification(FILE *fp_cpp) {
  3647   fprintf(fp_cpp, "\n");
  3658   fprintf(fp_cpp, "\n");
  3648 
  3659 
  3649   fprintf(fp_cpp, "#ifndef PRODUCT\n");
  3660   fprintf(fp_cpp, "#ifndef PRODUCT\n");