11//! Run-time feature detection for PowerPC on Linux.
22
33use super :: auxvec;
4- use crate :: detect:: { Feature , cache } ;
4+ use crate :: detect:: { cache , Feature } ;
55
66/// Try to read the features from the auxiliary vector, and if that fails, try
77/// to read them from /proc/cpuinfo.
@@ -21,7 +21,15 @@ pub(crate) fn detect_features() -> cache::Initializer {
2121 // index of the bit to test like in ARM and Aarch64)
2222 enable_feature ( & mut value, Feature :: altivec, auxv. hwcap & 0x10000000 != 0 ) ;
2323 enable_feature ( & mut value, Feature :: vsx, auxv. hwcap & 0x00000080 != 0 ) ;
24- enable_feature ( & mut value, Feature :: power8, auxv. hwcap2 & 0x80000000 != 0 ) ;
24+ let power8_features = auxv. hwcap2 & 0x80000000 != 0 ;
25+ enable_feature ( & mut value, Feature :: power8, power8_features) ;
26+ enable_feature ( & mut value, Feature :: power8_altivec, power8_features) ;
27+ enable_feature ( & mut value, Feature :: power8_crypto, power8_features) ;
28+ enable_feature ( & mut value, Feature :: power8_vector, power8_features) ;
29+ let power9_features = auxv. hwcap2 & 0x00800000 != 0 ;
30+ enable_feature ( & mut value, Feature :: power9, power9_features) ;
31+ enable_feature ( & mut value, Feature :: power9_altivec, power9_features) ;
32+ enable_feature ( & mut value, Feature :: power9_vector, power9_features) ;
2533 return value;
2634 }
2735
0 commit comments