200 if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) { 201 FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true); 202 } 203 if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) { 204 FLAG_SET_DEFAULT(UseSIMDForMemoryOps, (_variant > 0)); 205 } 206 if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) { 207 FLAG_SET_DEFAULT(UseSIMDForArrayEquals, false); 208 } 209 } 210 211 // ThunderX2 212 if ((_cpu == CPU_CAVIUM && (_model == 0xAF)) || 213 (_cpu == CPU_BROADCOM && (_model == 0x516))) { 214 if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) { 215 FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true); 216 } 217 if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) { 218 FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true); 219 } 220 #ifdef COMPILER2 221 if (FLAG_IS_DEFAULT(UseFPUForSpilling)) { 222 FLAG_SET_DEFAULT(UseFPUForSpilling, true); 223 } 224 #endif 225 } 226 227 // Cortex A53 228 if (_cpu == CPU_ARM && (_model == 0xd03 || _model2 == 0xd03)) { 229 _features |= CPU_A53MAC; 230 if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) { 231 FLAG_SET_DEFAULT(UseSIMDForArrayEquals, false); 232 } 233 } 234 235 // Cortex A73 236 if (_cpu == CPU_ARM && (_model == 0xd09 || _model2 == 0xd09)) { 237 if (FLAG_IS_DEFAULT(SoftwarePrefetchHintDistance)) { 238 FLAG_SET_DEFAULT(SoftwarePrefetchHintDistance, -1); 239 } 240 // A73 is faster with short-and-easy-for-speculative-execution-loop 241 if (FLAG_IS_DEFAULT(UseSimpleArrayEquals)) { 242 FLAG_SET_DEFAULT(UseSimpleArrayEquals, true); 243 } 244 } | 200 if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) { 201 FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true); 202 } 203 if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) { 204 FLAG_SET_DEFAULT(UseSIMDForMemoryOps, (_variant > 0)); 205 } 206 if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) { 207 FLAG_SET_DEFAULT(UseSIMDForArrayEquals, false); 208 } 209 } 210 211 // ThunderX2 212 if ((_cpu == CPU_CAVIUM && (_model == 0xAF)) || 213 (_cpu == CPU_BROADCOM && (_model == 0x516))) { 214 if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) { 215 FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true); 216 } 217 if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) { 218 FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true); 219 } 220 } 221 222 // Cortex A53 223 if (_cpu == CPU_ARM && (_model == 0xd03 || _model2 == 0xd03)) { 224 _features |= CPU_A53MAC; 225 if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) { 226 FLAG_SET_DEFAULT(UseSIMDForArrayEquals, false); 227 } 228 } 229 230 // Cortex A73 231 if (_cpu == CPU_ARM && (_model == 0xd09 || _model2 == 0xd09)) { 232 if (FLAG_IS_DEFAULT(SoftwarePrefetchHintDistance)) { 233 FLAG_SET_DEFAULT(SoftwarePrefetchHintDistance, -1); 234 } 235 // A73 is faster with short-and-easy-for-speculative-execution-loop 236 if (FLAG_IS_DEFAULT(UseSimpleArrayEquals)) { 237 FLAG_SET_DEFAULT(UseSimpleArrayEquals, true); 238 } 239 } |