< prev index next >

src/hotspot/cpu/arm/vm_version_arm_32.cpp

Print this page




 243   _supports_atomic_getadd8 = supports_ldrexd();
 244 
 245 #ifdef COMPILER2
 246   assert(_supports_cx8 && _supports_atomic_getset4 && _supports_atomic_getadd4
 247          && _supports_atomic_getset8 && _supports_atomic_getadd8, "C2: atomic operations must be supported");
 248 #endif
 249   char buf[512];
 250   jio_snprintf(buf, sizeof(buf), "(ARMv%d)%s%s%s",
 251                _arm_arch,
 252                (has_vfp() ? ", vfp" : ""),
 253                (has_vfp3_32() ? ", vfp3-32" : ""),
 254                (has_simd() ? ", simd" : ""));
 255 
 256   // buf is started with ", " or is empty
 257   _features_string = os::strdup(buf);
 258 
 259   if (has_simd()) {
 260     if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
 261       FLAG_SET_DEFAULT(UsePopCountInstruction, true);
 262     }


 263   }
 264 
 265   if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
 266     FLAG_SET_DEFAULT(AllocatePrefetchDistance, 128);
 267   }
 268 
 269 #ifdef COMPILER2
 270   FLAG_SET_DEFAULT(UseFPUForSpilling, true);
 271 
 272   if (FLAG_IS_DEFAULT(MaxVectorSize)) {
 273     // FLAG_SET_DEFAULT(MaxVectorSize, has_simd() ? 16 : 8);
 274     // SIMD/NEON can use 16, but default is 8 because currently
 275     // larger than 8 will disable instruction scheduling
 276     FLAG_SET_DEFAULT(MaxVectorSize, 8);
 277   }
 278 
 279   if (MaxVectorSize > 16) {
 280     FLAG_SET_DEFAULT(MaxVectorSize, 8);
 281   }
 282 #endif




 243   _supports_atomic_getadd8 = supports_ldrexd();
 244 
 245 #ifdef COMPILER2
 246   assert(_supports_cx8 && _supports_atomic_getset4 && _supports_atomic_getadd4
 247          && _supports_atomic_getset8 && _supports_atomic_getadd8, "C2: atomic operations must be supported");
 248 #endif
 249   char buf[512];
 250   jio_snprintf(buf, sizeof(buf), "(ARMv%d)%s%s%s",
 251                _arm_arch,
 252                (has_vfp() ? ", vfp" : ""),
 253                (has_vfp3_32() ? ", vfp3-32" : ""),
 254                (has_simd() ? ", simd" : ""));
 255 
 256   // buf is started with ", " or is empty
 257   _features_string = os::strdup(buf);
 258 
 259   if (has_simd()) {
 260     if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
 261       FLAG_SET_DEFAULT(UsePopCountInstruction, true);
 262     }
 263   } else {
 264     FLAG_SET_DEFAULT(UsePopCountInstruction, false);
 265   }
 266 
 267   if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
 268     FLAG_SET_DEFAULT(AllocatePrefetchDistance, 128);
 269   }
 270 
 271 #ifdef COMPILER2
 272   FLAG_SET_DEFAULT(UseFPUForSpilling, true);
 273 
 274   if (FLAG_IS_DEFAULT(MaxVectorSize)) {
 275     // FLAG_SET_DEFAULT(MaxVectorSize, has_simd() ? 16 : 8);
 276     // SIMD/NEON can use 16, but default is 8 because currently
 277     // larger than 8 will disable instruction scheduling
 278     FLAG_SET_DEFAULT(MaxVectorSize, 8);
 279   }
 280 
 281   if (MaxVectorSize > 16) {
 282     FLAG_SET_DEFAULT(MaxVectorSize, 8);
 283   }
 284 #endif


< prev index next >