@@ -25,44 +25,62 @@ mono_hwcap_arch_init (void)
2525 val_len = sizeof (val );
2626 prop = "hw.optional.armv8_crc32" ;
2727 res = sysctlbyname (prop , val , & val_len , NULL , 0 );
28- g_assert (res == 0 );
29- g_assert (val_len == 4 );
30- mono_hwcap_arm64_has_crc32 = * (int * )val ;
28+ if (res == 0 ) {
29+ g_assert (val_len == 4 );
30+ mono_hwcap_arm64_has_crc32 = * (int * )val ;
31+ } else {
32+ mono_hwcap_arm64_has_crc32 = 0 ;
33+ }
3134
3235 val_len = sizeof (val );
3336 prop = "hw.optional.arm.FEAT_RDM" ;
3437 res = sysctlbyname (prop , val , & val_len , NULL , 0 );
35- g_assert (res == 0 );
36- g_assert (val_len == 4 );
37- mono_hwcap_arm64_has_rdm = * (int * )val ;
38+ if (res == 0 ) {
39+ g_assert (val_len == 4 );
40+ mono_hwcap_arm64_has_rdm = * (int * )val ;
41+ } else {
42+ mono_hwcap_arm64_has_rdm = 0 ;
43+ }
3844
3945 val_len = sizeof (val );
4046 prop = "hw.optional.arm.FEAT_DotProd" ;
4147 res = sysctlbyname (prop , val , & val_len , NULL , 0 );
42- g_assert (res == 0 );
43- g_assert (val_len == 4 );
44- mono_hwcap_arm64_has_dot = * (int * )val ;
48+ if (res == 0 ) {
49+ g_assert (val_len == 4 );
50+ mono_hwcap_arm64_has_dot = * (int * )val ;
51+ } else {
52+ mono_hwcap_arm64_has_dot = 0 ;
53+ }
4554
4655 val_len = sizeof (val );
4756 prop = "hw.optional.arm.FEAT_SHA1" ;
4857 res = sysctlbyname (prop , val , & val_len , NULL , 0 );
49- g_assert (res == 0 );
50- g_assert (val_len == 4 );
51- mono_hwcap_arm64_has_sha1 = * (int * )val ;
58+ if (res == 0 ) {
59+ g_assert (val_len == 4 );
60+ mono_hwcap_arm64_has_sha1 = * (int * )val ;
61+ } else {
62+ mono_hwcap_arm64_has_sha1 = 0 ;
63+ }
5264
5365 val_len = sizeof (val );
5466 prop = "hw.optional.arm.FEAT_SHA256" ;
5567 res = sysctlbyname (prop , val , & val_len , NULL , 0 );
56- g_assert (res == 0 );
57- g_assert (val_len == 4 );
58- mono_hwcap_arm64_has_sha256 = * (int * )val ;
68+ if (res == 0 ) {
69+ g_assert (val_len == 4 );
70+ mono_hwcap_arm64_has_sha256 = * (int * )val ;
71+ } else {
72+ mono_hwcap_arm64_has_sha256 = 0 ;
73+ }
5974
6075 val_len = sizeof (val );
6176 prop = "hw.optional.arm.FEAT_AES" ;
6277 res = sysctlbyname (prop , val , & val_len , NULL , 0 );
63- g_assert (res == 0 );
64- g_assert (val_len == 4 );
65- mono_hwcap_arm64_has_aes = * (int * )val ;
78+ if (res == 0 ) {
79+ g_assert (val_len == 4 );
80+ mono_hwcap_arm64_has_aes = * (int * )val ;
81+ } else {
82+ mono_hwcap_arm64_has_aes = 0 ;
83+ }
6684
6785#endif
6886}
0 commit comments