Files
Jinliang Li d5db7d1cee libc/arm: optimize crc32/crc32c for arm
Optimize crc32 standard(poly:0x04C11DB7) and crc32
castagnoli(poly:0x1EDC6F41) with arm crc32 extension instructions.

For example, crc32 standard caculates(lookup crc32 table) 1812 bytes data,
reduced the time from 118 us to 14 us through optimization.

Performance improved ~700%

Signed-off-by: Jinliang Li <lijinliang1@lixiang.com>
2025-04-04 09:51:50 -03:00

41 lines
880 B
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
if ARCH_ARM7TDMI || ARCH_ARM920T || ARCH_ARM926EJS || \
ARCH_ARM1136J || ARCH_ARM1156T2 || ARCH_ARM1176JZ
source "libs/libc/machine/arm/arm/Kconfig"
endif
if ARCH_ARMV7A
source "libs/libc/machine/arm/armv7-a/Kconfig"
endif
if ARCH_ARMV7R
source "libs/libc/machine/arm/armv7-r/Kconfig"
endif
if ARCH_ARMV6M
source "libs/libc/machine/arm/armv6-m/Kconfig"
endif
if ARCH_ARMV7M
source "libs/libc/machine/arm/armv7-m/Kconfig"
endif
if ARCH_ARMV8M
source "libs/libc/machine/arm/armv8-m/Kconfig"
endif
if ARCH_ARMV8R
source "libs/libc/machine/arm/armv8-r/Kconfig"
endif
config LIBC_ARCH_CRC32
bool "Enable optimized crc32 for ARM"
default n
depends on ARCH_HAVE_CRC32
---help---
Enable optimized arm neon specific crc32 library function