756 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask(uint mask) : _mask(mask) {}\n\n"); |
756 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask(uint mask) : _mask(mask) {}\n\n"); |
757 else { |
757 else { |
758 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask(uint mask1, uint mask2) : _mask((((uint64_t)mask1) << 32) | mask2) {}\n\n"); |
758 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask(uint mask1, uint mask2) : _mask((((uint64_t)mask1) << 32) | mask2) {}\n\n"); |
759 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask(uint64_t mask) : _mask(mask) {}\n\n"); |
759 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask(uint64_t mask) : _mask(mask) {}\n\n"); |
760 } |
760 } |
761 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask& operator=(const Pipeline_Use_Cycle_Mask &in) {\n"); |
|
762 fprintf(fp_hpp, " _mask = in._mask;\n"); |
|
763 fprintf(fp_hpp, " return *this;\n"); |
|
764 fprintf(fp_hpp, " }\n\n"); |
|
765 fprintf(fp_hpp, " bool overlaps(const Pipeline_Use_Cycle_Mask &in2) const {\n"); |
761 fprintf(fp_hpp, " bool overlaps(const Pipeline_Use_Cycle_Mask &in2) const {\n"); |
766 fprintf(fp_hpp, " return ((_mask & in2._mask) != 0);\n"); |
762 fprintf(fp_hpp, " return ((_mask & in2._mask) != 0);\n"); |
767 fprintf(fp_hpp, " }\n\n"); |
763 fprintf(fp_hpp, " }\n\n"); |
768 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask& operator<<=(int n) {\n"); |
764 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask& operator<<=(int n) {\n"); |
769 fprintf(fp_hpp, " _mask <<= n;\n"); |
765 fprintf(fp_hpp, " _mask <<= n;\n"); |
790 for (l = 1; l <= masklen; l++) |
786 for (l = 1; l <= masklen; l++) |
791 fprintf(fp_hpp, "uint mask%d%s", l, l < masklen ? ", " : ") : "); |
787 fprintf(fp_hpp, "uint mask%d%s", l, l < masklen ? ", " : ") : "); |
792 for (l = 1; l <= masklen; l++) |
788 for (l = 1; l <= masklen; l++) |
793 fprintf(fp_hpp, "_mask%d(mask%d)%s", l, l, l < masklen ? ", " : " {}\n\n"); |
789 fprintf(fp_hpp, "_mask%d(mask%d)%s", l, l, l < masklen ? ", " : " {}\n\n"); |
794 |
790 |
795 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask& operator=(const Pipeline_Use_Cycle_Mask &in) {\n"); |
|
796 for (l = 1; l <= masklen; l++) |
|
797 fprintf(fp_hpp, " _mask%d = in._mask%d;\n", l, l); |
|
798 fprintf(fp_hpp, " return *this;\n"); |
|
799 fprintf(fp_hpp, " }\n\n"); |
|
800 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask intersect(const Pipeline_Use_Cycle_Mask &in2) {\n"); |
791 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask intersect(const Pipeline_Use_Cycle_Mask &in2) {\n"); |
801 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask out;\n"); |
792 fprintf(fp_hpp, " Pipeline_Use_Cycle_Mask out;\n"); |
802 for (l = 1; l <= masklen; l++) |
793 for (l = 1; l <= masklen; l++) |
803 fprintf(fp_hpp, " out._mask%d = _mask%d & in2._mask%d;\n", l, l, l); |
794 fprintf(fp_hpp, " out._mask%d = _mask%d & in2._mask%d;\n", l, l, l); |
804 fprintf(fp_hpp, " return out;\n"); |
795 fprintf(fp_hpp, " return out;\n"); |