文件名称:cpu_features:跨平台C99库,可在运行时获取cpu功能
文件大小:94KB
文件格式:ZIP
更新时间:2024-03-15 21:03:14
cpu cross-platform microarchitecture cpu-features C
cpu_features 跨平台的C库,用于在运行时检索CPU功能(例如可用指令)。 目录 设计原理 易于使用。 有关示例,请参见下面的代码片段。 可扩展。 易于添加缺少的功能或体系结构。 与旧的编译器兼容并在许多体系结构上可用,因此可以广泛使用。 为了确保cpu_features可以在尽可能多的平台上运行,我们在高度可移植的C:C99版本中实现了它。 沙盒兼容。 该库使用多种策略来应对沙盒环境或cpuid不可用时的情况。 在密封环境中运行集成测试时,这很有用。 线程安全,不分配内存,也不引发异常。 cpu_features适用于实现基本的libc函数,例如malloc , memcpy和memcmp 。 单元测试。 代码样本 注意:对于C ++代码,库函数在CpuFeatures命名空间中定义。 在运行时检查功能 这是一个简单的示例,如果CPU同时支持AES和SSE4.2指令
【文件预览】:
cpu_features-master
----CMakeLists.txt(9KB)
----.gitignore(27B)
----README.md(7KB)
----.github()
--------workflows()
----appveyor.yml(600B)
----test()
--------CMakeLists.txt(4KB)
--------bit_utils_test.cc(2KB)
--------filesystem_for_testing.h(2KB)
--------cpuinfo_arm_test.cc(11KB)
--------stack_line_reader_test.cc(4KB)
--------filesystem_for_testing.cc(3KB)
--------cpuinfo_x86_test.cc(22KB)
--------hwcaps_for_testing.h(959B)
--------cpuinfo_ppc_test.cc(4KB)
--------cpuinfo_aarch64_test.cc(6KB)
--------string_view_test.cc(8KB)
--------cpuinfo_mips_test.cc(4KB)
--------hwcaps_for_testing.cc(2KB)
----.clang-format(51B)
----LICENSE(13KB)
----include()
--------cpuinfo_aarch64.h(5KB)
--------cpuinfo_mips.h(2KB)
--------cpuinfo_x86.h(5KB)
--------cpu_features_cache_info.h(2KB)
--------cpuinfo_ppc.h(4KB)
--------internal()
--------cpu_features_macros.h(6KB)
--------cpuinfo_arm.h(4KB)
----CONTRIBUTING.md(969B)
----src()
--------cpuinfo_mips.c(3KB)
--------cpuinfo_x86.c(67KB)
--------utils()
--------hwcaps.c(6KB)
--------string_view.c(6KB)
--------filesystem.c(2KB)
--------cpuinfo_ppc.c(7KB)
--------stack_line_reader.c(4KB)
--------cpuinfo_arm.c(9KB)
--------define_tables.h(3KB)
--------cpuinfo_aarch64.c(8KB)
----cmake()
--------CpuFeaturesNdkCompatConfig.cmake.in(120B)
--------README.md(1KB)
--------CpuFeaturesConfig.cmake.in(102B)
--------googletest.CMakeLists.txt.in(427B)
----ndk_compat()
--------CMakeLists.txt(2KB)
--------README.md(340B)
--------cpu-features.c(7KB)
--------cpu-features.h(11KB)
--------ndk-compat-test.c(365B)
----scripts()
--------test_integration.sh(2KB)
--------run_integration.sh(7KB)
--------make_release.sh(2KB)
----WORKSPACE(194B)
----.travis.yml(3KB)