160 // we assume the worst and assume we could be on a big little system and have 161 // undisclosed A53 cores which we could be swapped to at any stage 162 if (_cpu == CPU_ARM && cpu_lines == 1 && _model == 0xd07) _cpuFeatures |= CPU_A53MAC; 163 164 sprintf(buf, "0x%02x:0x%x:0x%03x:%d", _cpu, _variant, _model, _revision); 165 if (_model2) sprintf(buf+strlen(buf), "(0x%03x)", _model2); 166 if (auxv & HWCAP_ASIMD) strcat(buf, ", simd"); 167 if (auxv & HWCAP_CRC32) strcat(buf, ", crc"); 168 if (auxv & HWCAP_AES) strcat(buf, ", aes"); 169 if (auxv & HWCAP_SHA1) strcat(buf, ", sha1"); 170 if (auxv & HWCAP_SHA2) strcat(buf, ", sha256"); 171 172 _features_str = os::strdup(buf); 173 174 if (FLAG_IS_DEFAULT(UseCRC32)) { 175 UseCRC32 = (auxv & HWCAP_CRC32) != 0; 176 } 177 if (UseCRC32 && (auxv & HWCAP_CRC32) == 0) { 178 warning("UseCRC32 specified, but not supported on this CPU"); 179 } 180 if (auxv & HWCAP_AES) { 181 UseAES = UseAES || FLAG_IS_DEFAULT(UseAES); 182 UseAESIntrinsics = 183 UseAESIntrinsics || (UseAES && FLAG_IS_DEFAULT(UseAESIntrinsics)); 184 if (UseAESIntrinsics && !UseAES) { 185 warning("UseAESIntrinsics enabled, but UseAES not, enabling"); 186 UseAES = true; 187 } 188 } else { 189 if (UseAES) { 190 warning("UseAES specified, but not supported on this CPU"); 191 } 192 if (UseAESIntrinsics) { 193 warning("UseAESIntrinsics specified, but not supported on this CPU"); 194 } 195 } 196 197 if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) { 198 UseCRC32Intrinsics = true; 199 } | 160 // we assume the worst and assume we could be on a big little system and have 161 // undisclosed A53 cores which we could be swapped to at any stage 162 if (_cpu == CPU_ARM && cpu_lines == 1 && _model == 0xd07) _cpuFeatures |= CPU_A53MAC; 163 164 sprintf(buf, "0x%02x:0x%x:0x%03x:%d", _cpu, _variant, _model, _revision); 165 if (_model2) sprintf(buf+strlen(buf), "(0x%03x)", _model2); 166 if (auxv & HWCAP_ASIMD) strcat(buf, ", simd"); 167 if (auxv & HWCAP_CRC32) strcat(buf, ", crc"); 168 if (auxv & HWCAP_AES) strcat(buf, ", aes"); 169 if (auxv & HWCAP_SHA1) strcat(buf, ", sha1"); 170 if (auxv & HWCAP_SHA2) strcat(buf, ", sha256"); 171 172 _features_str = os::strdup(buf); 173 174 if (FLAG_IS_DEFAULT(UseCRC32)) { 175 UseCRC32 = (auxv & HWCAP_CRC32) != 0; 176 } 177 if (UseCRC32 && (auxv & HWCAP_CRC32) == 0) { 178 warning("UseCRC32 specified, but not supported on this CPU"); 179 } 180 181 if (UseAdler32Intrinsics) { 182 warning("Adler32Intrinsics not available on this CPU."); 183 FLAG_SET_DEFAULT(UseAdler32Intrinsics, false); 184 } 185 186 if (auxv & HWCAP_AES) { 187 UseAES = UseAES || FLAG_IS_DEFAULT(UseAES); 188 UseAESIntrinsics = 189 UseAESIntrinsics || (UseAES && FLAG_IS_DEFAULT(UseAESIntrinsics)); 190 if (UseAESIntrinsics && !UseAES) { 191 warning("UseAESIntrinsics enabled, but UseAES not, enabling"); 192 UseAES = true; 193 } 194 } else { 195 if (UseAES) { 196 warning("UseAES specified, but not supported on this CPU"); 197 } 198 if (UseAESIntrinsics) { 199 warning("UseAESIntrinsics specified, but not supported on this CPU"); 200 } 201 } 202 203 if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) { 204 UseCRC32Intrinsics = true; 205 } |