112 } 113 114 // On Power6 test for section size. 115 if (PowerArchitecturePPC64 == 6) { 116 determine_section_size(); 117 // TODO: PPC port } else { 118 // TODO: PPC port PdScheduling::power6SectorSize = 0x20; 119 } 120 121 if (PowerArchitecturePPC64 >= 8) { 122 if (FLAG_IS_DEFAULT(SuperwordUseVSX)) { 123 FLAG_SET_ERGO(bool, SuperwordUseVSX, true); 124 } 125 } else { 126 if (SuperwordUseVSX) { 127 warning("SuperwordUseVSX specified, but needs at least Power8."); 128 FLAG_SET_DEFAULT(SuperwordUseVSX, false); 129 } 130 } 131 MaxVectorSize = SuperwordUseVSX ? 16 : 8; 132 #endif 133 134 // Create and print feature-string. 135 char buf[(num_features+1) * 16]; // Max 16 chars per feature. 136 jio_snprintf(buf, sizeof(buf), 137 "ppc64%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", 138 (has_fsqrt() ? " fsqrt" : ""), 139 (has_isel() ? " isel" : ""), 140 (has_lxarxeh() ? " lxarxeh" : ""), 141 (has_cmpb() ? " cmpb" : ""), 142 (has_popcntb() ? " popcntb" : ""), 143 (has_popcntw() ? " popcntw" : ""), 144 (has_fcfids() ? " fcfids" : ""), 145 (has_vand() ? " vand" : ""), 146 (has_lqarx() ? " lqarx" : ""), 147 (has_vcipher() ? " aes" : ""), 148 (has_vpmsumb() ? " vpmsumb" : ""), 149 (has_mfdscr() ? " mfdscr" : ""), 150 (has_vsx() ? " vsx" : ""), 151 (has_ldbrx() ? " ldbrx" : ""), | 112 } 113 114 // On Power6 test for section size. 115 if (PowerArchitecturePPC64 == 6) { 116 determine_section_size(); 117 // TODO: PPC port } else { 118 // TODO: PPC port PdScheduling::power6SectorSize = 0x20; 119 } 120 121 if (PowerArchitecturePPC64 >= 8) { 122 if (FLAG_IS_DEFAULT(SuperwordUseVSX)) { 123 FLAG_SET_ERGO(bool, SuperwordUseVSX, true); 124 } 125 } else { 126 if (SuperwordUseVSX) { 127 warning("SuperwordUseVSX specified, but needs at least Power8."); 128 FLAG_SET_DEFAULT(SuperwordUseVSX, false); 129 } 130 } 131 MaxVectorSize = SuperwordUseVSX ? 16 : 8; 132 133 if (PowerArchitecturePPC64 >= 9) { 134 if (FLAG_IS_DEFAULT(UseCountTrailingZerosInstructionsPPC64)) { 135 FLAG_SET_ERGO(bool, UseCountTrailingZerosInstructionsPPC64, true); 136 } 137 } else { 138 if (UseCountTrailingZerosInstructionsPPC64) { 139 warning("UseCountTrailingZerosInstructionsPPC64 specified, but needs at least Power9."); 140 FLAG_SET_DEFAULT(UseCountTrailingZerosInstructionsPPC64, false); 141 } 142 } 143 #endif 144 145 // Create and print feature-string. 146 char buf[(num_features+1) * 16]; // Max 16 chars per feature. 147 jio_snprintf(buf, sizeof(buf), 148 "ppc64%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", 149 (has_fsqrt() ? " fsqrt" : ""), 150 (has_isel() ? " isel" : ""), 151 (has_lxarxeh() ? " lxarxeh" : ""), 152 (has_cmpb() ? " cmpb" : ""), 153 (has_popcntb() ? " popcntb" : ""), 154 (has_popcntw() ? " popcntw" : ""), 155 (has_fcfids() ? " fcfids" : ""), 156 (has_vand() ? " vand" : ""), 157 (has_lqarx() ? " lqarx" : ""), 158 (has_vcipher() ? " aes" : ""), 159 (has_vpmsumb() ? " vpmsumb" : ""), 160 (has_mfdscr() ? " mfdscr" : ""), 161 (has_vsx() ? " vsx" : ""), 162 (has_ldbrx() ? " ldbrx" : ""), |