blob: c01e3b9817bcac9f993219e2193822f1577c374c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
--- third_party/unrar/src/rijndael.cpp.orig 2025-02-21 07:49:13 UTC
+++ third_party/unrar/src/rijndael.cpp
@@ -116,7 +116,7 @@ void Rijndael::Init(bool Encrypt,const byte *key,uint
#endif
#elif defined(USE_NEON_AES)
- #ifdef _APPLE
+ #if defined(_APPLE)
// getauxval isn't available in OS X
uint Value=0;
size_t Size=sizeof(Value);
@@ -126,6 +126,12 @@ void Rijndael::Init(bool Encrypt,const byte *key,uint
// because "hw.optional.arm.FEAT_AES" was missing in OS X 11, but AES
// still was supported by Neon.
AES_Neon=RetCode!=0 || Value!=0;
+ #elif defined(__FreeBSD__)
+ // getauxval isn't available on FreeBSD
+ uint64 Reg=READ_SPECIALREG(id_aa64isar0_el1);
+ if (ID_AA64ISAR0_AES_VAL(Reg) == ID_AA64ISAR0_AES_BASE) {
+ AES_Neon=true;
+ }
#else
AES_Neon=(getauxval(AT_HWCAP) & HWCAP_AES)!=0;
#endif
|