@@ -25,44 +25,62 @@ mono_hwcap_arch_init (void)
25
25
val_len = sizeof (val );
26
26
prop = "hw.optional.armv8_crc32" ;
27
27
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
+ }
31
34
32
35
val_len = sizeof (val );
33
36
prop = "hw.optional.arm.FEAT_RDM" ;
34
37
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
+ }
38
44
39
45
val_len = sizeof (val );
40
46
prop = "hw.optional.arm.FEAT_DotProd" ;
41
47
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
+ }
45
54
46
55
val_len = sizeof (val );
47
56
prop = "hw.optional.arm.FEAT_SHA1" ;
48
57
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
+ }
52
64
53
65
val_len = sizeof (val );
54
66
prop = "hw.optional.arm.FEAT_SHA256" ;
55
67
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
+ }
59
74
60
75
val_len = sizeof (val );
61
76
prop = "hw.optional.arm.FEAT_AES" ;
62
77
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
+ }
66
84
67
85
#endif
68
86
}
0 commit comments