Index: head/www/chromium/files/patch-third__party_zlib_BUILD.gn =================================================================== --- head/www/chromium/files/patch-third__party_zlib_BUILD.gn (nonexistent) +++ head/www/chromium/files/patch-third__party_zlib_BUILD.gn (revision 564607) @@ -0,0 +1,11 @@ +--- third_party/zlib/BUILD.gn.orig 2020-11-09 14:36:38 UTC ++++ third_party/zlib/BUILD.gn +@@ -88,6 +88,8 @@ if (use_arm_neon_optimizations) { + defines = [ "CRC32_ARMV8_CRC32" ] + if (is_android) { + defines += [ "ARMV8_OS_ANDROID" ] ++ } else if (is_bsd) { ++ defines += [ "ARMV8_OS_FREEBSD" ] + } else if (is_linux || is_chromeos) { + defines += [ "ARMV8_OS_LINUX" ] + } else if (is_mac) { Property changes on: head/www/chromium/files/patch-third__party_zlib_BUILD.gn ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/www/chromium/files/patch-third__party_zlib_cpu__features.c =================================================================== --- head/www/chromium/files/patch-third__party_zlib_cpu__features.c (revision 564606) +++ head/www/chromium/files/patch-third__party_zlib_cpu__features.c (revision 564607) @@ -1,39 +1,49 @@ ---- third_party/zlib/cpu_features.c.orig 2020-11-13 06:37:04 UTC +--- third_party/zlib/cpu_features.c.orig 2020-07-07 21:58:18 UTC +++ third_party/zlib/cpu_features.c + @@ -31,11 +31,20 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 0; #ifndef CPU_NO_SIMD -#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) +#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_FREEBSD) #include #endif -#if defined(ARMV8_OS_ANDROID) +#if defined(ARMV8_OS_FREEBSD) +#include +#include +#ifndef ID_AA64ISAR0_AES_VAL +#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES +#endif +#ifndef ID_AA64ISAR0_CRC32_VAL +#define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32 +#endif +#elif defined(ARMV8_OS_ANDROID) #include #elif defined(ARMV8_OS_LINUX) #include +@@ -56,7 +65,7 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 0; + static void _cpu_check_features(void); + #endif + +-#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS) ++#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_FREEBSD) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS) + #if !defined(ARMV8_OS_MACOS) + // _cpu_check_features() doesn't need to do anything on mac/arm since all + // features are known at build time, so don't call it. @@ -123,6 +132,13 @@ static void _cpu_check_features(void) #elif defined(ARMV8_OS_WINDOWS) arm_cpu_enable_crc32 = IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE); arm_cpu_enable_pmull = IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE); +#elif defined(ARMV8_OS_FREEBSD) + uint64_t id_aa64isar0; + id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1); + if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) + arm_cpu_enable_pmull = 1; + if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) + arm_cpu_enable_crc32 = 1; #endif } #endif