707 fprintf(fp_cpp, "\n");
708 fprintf(fp_cpp, " if (writeStage == stage_undefined || readStage == stage_undefined)\n");
709 fprintf(fp_cpp, " return (default_latency);\n");
710 fprintf(fp_cpp, "\n");
711 fprintf(fp_cpp, " int delta = writeStage - readStage;\n");
712 fprintf(fp_cpp, " if (delta < 0) delta = 0;\n\n");
713 #if 0
714 fprintf(fp_cpp, "\n#ifndef PRODUCT\n");
715 fprintf(fp_cpp, " if (TraceOptoOutput) {\n");
716 fprintf(fp_cpp, " tty->print(\"# operand_latency: delta=%%d\\n\", delta);\n");
717 fprintf(fp_cpp, " }\n");
718 fprintf(fp_cpp, "#endif\n\n");
719 #endif
720 fprintf(fp_cpp, " return (delta);\n");
721 fprintf(fp_cpp, "}\n\n");
722
723 if (!_pipeline)
724 /* Do Nothing */;
725
726 else if (_pipeline->_maxcycleused <=
727 #ifdef SPARC
728 64
729 #else
730 32
731 #endif
732 ) {
733 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator&(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
734 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(in1._mask & in2._mask);\n");
735 fprintf(fp_cpp, "}\n\n");
736 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator|(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
737 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(in1._mask | in2._mask);\n");
738 fprintf(fp_cpp, "}\n\n");
739 }
740 else {
741 uint l;
742 uint masklen = (_pipeline->_maxcycleused + 31) >> 5;
743 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator&(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
744 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(");
745 for (l = 1; l <= masklen; l++)
746 fprintf(fp_cpp, "in1._mask%d & in2._mask%d%s\n", l, l, l < masklen ? ", " : "");
747 fprintf(fp_cpp, ");\n");
748 fprintf(fp_cpp, "}\n\n");
749 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator|(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
750 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(");
751 for (l = 1; l <= masklen; l++)
|
707 fprintf(fp_cpp, "\n");
708 fprintf(fp_cpp, " if (writeStage == stage_undefined || readStage == stage_undefined)\n");
709 fprintf(fp_cpp, " return (default_latency);\n");
710 fprintf(fp_cpp, "\n");
711 fprintf(fp_cpp, " int delta = writeStage - readStage;\n");
712 fprintf(fp_cpp, " if (delta < 0) delta = 0;\n\n");
713 #if 0
714 fprintf(fp_cpp, "\n#ifndef PRODUCT\n");
715 fprintf(fp_cpp, " if (TraceOptoOutput) {\n");
716 fprintf(fp_cpp, " tty->print(\"# operand_latency: delta=%%d\\n\", delta);\n");
717 fprintf(fp_cpp, " }\n");
718 fprintf(fp_cpp, "#endif\n\n");
719 #endif
720 fprintf(fp_cpp, " return (delta);\n");
721 fprintf(fp_cpp, "}\n\n");
722
723 if (!_pipeline)
724 /* Do Nothing */;
725
726 else if (_pipeline->_maxcycleused <=
727 32
728 ) {
729 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator&(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
730 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(in1._mask & in2._mask);\n");
731 fprintf(fp_cpp, "}\n\n");
732 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator|(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
733 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(in1._mask | in2._mask);\n");
734 fprintf(fp_cpp, "}\n\n");
735 }
736 else {
737 uint l;
738 uint masklen = (_pipeline->_maxcycleused + 31) >> 5;
739 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator&(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
740 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(");
741 for (l = 1; l <= masklen; l++)
742 fprintf(fp_cpp, "in1._mask%d & in2._mask%d%s\n", l, l, l < masklen ? ", " : "");
743 fprintf(fp_cpp, ");\n");
744 fprintf(fp_cpp, "}\n\n");
745 fprintf(fp_cpp, "Pipeline_Use_Cycle_Mask operator|(const Pipeline_Use_Cycle_Mask &in1, const Pipeline_Use_Cycle_Mask &in2) {\n");
746 fprintf(fp_cpp, " return Pipeline_Use_Cycle_Mask(");
747 for (l = 1; l <= masklen; l++)
|