This series introduces optimized assembly implementations for several string functions on the RISC-V architecture (strnlen, strchr, and strrchr). To ensure correctness and prevent regressions, it also extends the string_kunit test suite with new cases.
The patchset is organized as follows: - Patches 1-2: Enhance lib/string_kunit.c with new test cases for strlen and strnlen to establish a baseline for verification. - Patches 3-5: Provide the RISC-V specific optimized implementations for strnlen, strchr, and strrchr. Testing: All patches have been verified using the KUnit framework on QEMU virt machine (riscv64). All string-related tests passed. Changes: - v1: Initial submission. --- Feng Jiang (5): lib/string_kunit: add test case for strlen lib/string_kunit: add test case for strnlen riscv: lib: add strnlen implementation riscv: lib: add strchr implementation riscv: lib: add strrchr implementation arch/riscv/include/asm/string.h | 9 ++ arch/riscv/lib/Makefile | 3 + arch/riscv/lib/strchr.S | 35 +++++++ arch/riscv/lib/strnlen.S | 164 ++++++++++++++++++++++++++++++++ arch/riscv/lib/strrchr.S | 37 +++++++ arch/riscv/purgatory/Makefile | 11 ++- lib/tests/string_kunit.c | 53 +++++++++++ 7 files changed, 311 insertions(+), 1 deletion(-) create mode 100644 arch/riscv/lib/strchr.S create mode 100644 arch/riscv/lib/strnlen.S create mode 100644 arch/riscv/lib/strrchr.S -- 2.25.1
