Files
boc/aamos-ledger-rust/target/debug/deps/libcpufeatures-baed92e602c4b9da.rlib
T

49 lines
17 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 70 `
?Ê_ZN11cpufeatures7aarch6415getauxval_hwcap17h9c9426e8295c3001E// 72 `
cpufeatures-baed92e602c4b9da.cpufeatures.e95d1226cb668f00-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 16000 `
ELF·=@@GNUÀrust
»:#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁù«< fÅþ¦®Ž
žaa…Ý-54993f73e3057ce2Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁ__detect_target_featuresÁÄ»
ýappleÁ¼õ checkÁ,÷ý×¼± sysctlbynameÁd÷!ý×¼Ï!³Ä‚(ý×¼'úlinuxÁœ¦'úandroidÁ¬»'üŒ'Füˆ'K¾\¿ì¾ÜŠôœìôœéìõ´þüè-µ $³µ í__unless_target_featuresÁ³getauxval_hwcapÁ__expand_check_macroÁhwcapsÁAESÁDITÁSHA2ÁSHA3ÁSM4Áæ æüŸ#
ÿIŒ±€Jü†=
<•$FÿIC€J
”JüÈ) <×$@”Jlibc::HWCAP_DITÁ
‚Jüö+ <†$@Jlibc::HWCAP_SHA2ÁüÀ%
„ÀJ”Ó‘Jü¦@
$FJCJü„!
|„ŽJ|–Jüë;$FŽJCJíÓÄ‘³Ĥæ ôæ(Ž
üÔ/üOL This crate provides macros for runtime CPU feature detection. It's intendedÁüPRO as a stopgap until Rust [RFC 2725] adding first-class target feature detectionÁü£'$ macros to `libcore` is implemented.ÁËúüÏ$! # Supported target architecturesÁôúüøKH *NOTE: target features with an asterisk are unstable (nightly-only) andÁüÄIF subject to change to match upstream name changes in the Rust standardÁ library.Áú„Ÿ
## `aarch64`Á°úü´\Y Linux, iOS, and macOS/ARM only (ARM64 does not support OS-independent feature detection)Áú¤• Target features:Áªú - `aes`*Á
- `sha2`*Á
- `sha3`*Á×ú Linux onlyÁêú - `sm4`*Áûú¤ÿ ## `loongarch64`Áúü˜NK Linux only (LoongArch64 does not support OS-independent feature detection)Áçú¤ëúd„ - `lam`*Ád - `ual`*Á - `fpu`*Á - `lsx`*Ál¸
- `lasx`*Á - `crc32`*Á„Õ
- `complex`*Á - `crypto`*Á - `lvz`*Á„ƒ
- `lbt.x86`*Á„”
- `lbt.arm`*ÁŒ¥ - `lbt.mips`*Á - `ptw`*ÁÄú¬È ## `x86`/`x86_64`ÁÞúüâ(% OS independent and `no_std`-friendlyÁú¤¤ú - `adx`Á\´ - `aes`Á - `avx`Á - `avx2`ÁŒÙ - `avx512bw`*ÁŒë - `avx512cd`*ÁŒý - `avx512dq`*ÁŒ  - `avx512er`*Á„¡ 
- `avx512f`*Áœ²  - `avx512ifma`*ÁŒÆ  - `avx512pf`*ÁŒØ  - `avx512vl`*Á - `bmi1`Á - `bmi2`Ád„
 - `fma`,Á\
 - `mmx`ÁŒ
 - `pclmulqdq`Á
 - `popcnt`Á
 - `rdrand`Á
 - `rdseed`Á
 - `sgx`Á
 - `sha`Á
 - `sse`Ád€  - `sse2`Ád  - `sse3`Á  - `sse4.1`Á  - `sse4.2`Ál¸ 
- `ssse3`ÁÆ úüÊ LI If you would like detection support for a target feature which is not onÁü— 0- this list, please [open a GitHub issue][gh].ÁÈ ú 
# ExampleÁ  ```Áüâ >; # #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]Á
 # {Áü©
0- // This macro creates `cpuid_aes_sha` moduleÁüÚ
30 cpufeatures::new!(cpuid_aes_sha, "aes", "sha");ÁŽúü’A> // `token` is a Zero Sized Type (ZST) value, which guaranteesÁüÔ?< // that underlying static storage got properly initialized,Áü”1. // which allows to omit initialization branchÁüÆ@= let token: cpuid_aes_sha::InitToken = cpuid_aes_sha::init();Áú¤‹ if token.get() {Áü =: println!("CPU supports both SHA and AES extensions");Á } else {Áüë=: println!("SHA and AES extensions are not supported");Á¯úü³@= // If stored value needed only once you can get stored valueÁÌô // omitting the tokenÁüŽ# let val = cpuid_aes_sha::get();Áü²! assert_eq!(val, token.get());ÁÔúüØ41 // Additionally you can get both token and valueÁü1. let (token, val) = cpuid_aes_sha::init_get();Áü¿!î" # }ÁêñúüõLI Note that if all tested target features are enabled via compiler optionsÁüÂKH (e.g. by using `RUSTFLAGS`), the `get` method will always return `true`ÁüŽC@ and `init` will not use CPUID instruction. Such behavior allowsÁüÒ30 compiler to completely eliminate fallback code.ÁúüŠEB After first call macro caches result and returns it in subsequentÁüÐ52 calls, thus runtime overhead for them is minimal.ÁúüŠ;8 [RFC 2725]: https://github.com/rust-lang/rfcs/pull/2725Áüƃ [gh]: https://github.com/RustCrypto/utils/issues/new?title=cpufeatures:%20requesting%20support%20for%20CHANGEME%20target%20featureÁDhttps://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svgÁ„ÁŠ*låí¸ÓÈ³×æ ææõ¸¸¸ü(% ARM64 CPU feature detection support.Á)úü-OL Unfortunately ARM instructions to detect CPU features cannot be called fromÁü}MJ unprivileged userspace code, so this implementation relies on OS-specificÁüË APIs for feature detection.Áµ ŒŸì¼·ü±ü„%(|åÈ ª ø ° Ë , ± ² ¹, ³8tfÁ´& 8¯·$ º »*½, À8bodyÁ& Å8*Í Ð õ Ú ï+ è é 8âê í 8
î ñ Ž8£ò õ , ö ÷ 8ð , 8ú.ˆ$ Š
Œ, ž8µ/+ ± ² Ô8â³  Ó8£· º Ò, » ¼ Ð8ð Ë, Ì8ú.Í$ Ï
Ñ8 % öü—%ú¾œÊúϬßüÉ,üÀ7(|ø× ½ È Ã Ï, Ä Å Ì, Æ8ú.Ç& É8¯Ê$ Í Î*Ñ Ô Å Õ Ä8ß8ª ê, ì8'ò8'û8ù Œ % Ž, ˜  ¸, š8,' 8æ § ¨ ´8ª$ ¯, ±8ú.²  ¹8 % ÆüÈüËDA Linux helper function for calling `getauxval` to get `AT_HWCAP`.Áú¾œšúϬ¯ü™,ü7
ü÷ !ú¾œÉ úÏ¬Þ üÈ ,ü¿ 7¤„  Ê Ÿ à ,    ¡ º  ¢ ¹  , £ 8Ð & ¨ 8¯© $ « , ­ 8hwcapÁ & ³ 8¼,´ $ » 
¼ , ¾  ¿ Á $ À - Â *Å  È Ç+ Ò  Ó à 8Ë + ê  ë ÷ 8Óì  ï ö 8ª 8?\
 Œ
8æ

Á, ¢
 £