Lines 4-24
Link Here
|
4 |
uint32_t hwcaps = getauxval(AT_HWCAP); |
4 |
uint32_t hwcaps = getauxval(AT_HWCAP); |
5 |
^ |
5 |
^ |
6 |
|
6 |
|
7 |
--- gfx/skia/skia/src/core/SkCpu.cpp.orig 2019-02-27 22:18:23 UTC |
7 |
--- gfx/skia/skia/src/core/SkCpu.cpp.orig 2020-02-07 22:13:22 UTC |
8 |
+++ gfx/skia/skia/src/core/SkCpu.cpp |
8 |
+++ gfx/skia/skia/src/core/SkCpu.cpp |
9 |
@@ -70,6 +70,20 @@ |
9 |
@@ -72,6 +72,23 @@ |
10 |
return features; |
10 |
return features; |
11 |
} |
11 |
} |
12 |
|
12 |
|
13 |
+#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__) |
13 |
+#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__) |
14 |
+ #include <machine/armreg.h> |
14 |
+ #include <machine/armreg.h> |
|
|
15 |
+ #ifndef ID_AA64ISAR0_CRC32_VAL |
16 |
+ #define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32 |
17 |
+ #endif |
15 |
+ |
18 |
+ |
16 |
+ static uint32_t read_cpu_features() { |
19 |
+ static uint32_t read_cpu_features() { |
17 |
+ uint32_t features = 0; |
20 |
+ uint32_t features = 0; |
18 |
+ uint64_t id_aa64isar0; |
21 |
+ uint64_t id_aa64isar0; |
19 |
+ |
22 |
+ |
20 |
+ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); |
23 |
+ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1); |
21 |
+ if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) { |
24 |
+ if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) { |
22 |
+ features |= SkCpu::CRC32; |
25 |
+ features |= SkCpu::CRC32; |
23 |
+ } |
26 |
+ } |
24 |
+ return features; |
27 |
+ return features; |