Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
38e4de5
commit 386f6c8
Showing
3 changed files
with
60 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 11 additions & 0 deletions
11
www/deno/files/patch-cargo-crates_v8_third__party_zlib_BUILD.gn
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- cargo-crates/v8-0.55.0/third_party/zlib/BUILD.gn.orig 2022-11-20 11:42:33 UTC | ||
+++ cargo-crates/v8-0.55.0/third_party/zlib/BUILD.gn | ||
@@ -119,6 +119,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) { |
48 changes: 48 additions & 0 deletions
48
www/deno/files/patch-cargo-crates_v8_third__party_zlib_cpu__features.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- cargo-crates/v8-0.55.0/third_party/zlib/cpu_features.c.orig 2022-11-20 11:40:38 UTC | ||
+++ cargo-crates/v8-0.55.0/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 <pthread.h> | ||
#endif | ||
|
||
-#if defined(ARMV8_OS_ANDROID) | ||
+#if defined(ARMV8_OS_FREEBSD) | ||
+#include <machine/armreg.h> | ||
+#include <sys/types.h> | ||
+#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 <cpu-features.h> | ||
#elif defined(ARMV8_OS_LINUX) | ||
#include <asm/hwcap.h> | ||
@@ -56,7 +65,7 @@ static void _cpu_check_features(void); | ||
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_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS) || defined(ARMV8_OS_FREEBSD) | ||
#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 |