This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit d3897cbd5303d2faecebf9e7f129cc66623b0ded Author: zhangyuan29 <[email protected]> AuthorDate: Mon Jul 13 15:09:48 2026 +0800 libc/tricore: enable full set of arch string/memory functions Complete the TRICORE_STRING_FUNCTION select list from 5 to 15 functions. All 15 arch string/memory assembly routines were already implemented and benchmarked on TC4Z9 B2 hardware across both toolchains, but the group switch only selected memcpy/memset/memmove/memcmp/strcmp. Add the remaining memchr/strcpy/strlen/strchr/strchrnul/strncmp/strnlen/strncpy/ stpcpy/strrchr so the whole confirmed set is enabled together. Signed-off-by: zhangyuan29 <[email protected]> --- libs/libc/machine/tricore/Kconfig | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/libs/libc/machine/tricore/Kconfig b/libs/libc/machine/tricore/Kconfig index 0f76b4db1ec..2cc9a9b8dfb 100644 --- a/libs/libc/machine/tricore/Kconfig +++ b/libs/libc/machine/tricore/Kconfig @@ -10,11 +10,24 @@ config TRICORE_STRING_FUNCTION select TRICORE_MEMSET select TRICORE_MEMMOVE select TRICORE_MEMCMP + select TRICORE_MEMCHR select TRICORE_STRCMP - ---help--- - Enable the confirmed-win TriCore assembly library functions as a - group: memcpy/memset/memmove/memcmp/strcmp. Real on-board - benchmarks (lzcu B2, TC4Z9) show them ahead of the BSD C versions. + select TRICORE_STRCPY + select TRICORE_STRLEN + select TRICORE_STRCHR + select TRICORE_STRCHRNUL + select TRICORE_STRNCMP + select TRICORE_STRNLEN + select TRICORE_STRNCPY + select TRICORE_STPCPY + select TRICORE_STRRCHR + ---help--- + Enable the full set of TriCore assembly library functions as a + group: memcpy/memset/memmove/memcmp/memchr and the string ops + strcmp/strcpy/strlen/strchr/strchrnul/strncmp/strnlen/strncpy/ + stpcpy/strrchr. Real on-board benchmarks (rzcu/lzcu B2, TC4Z9) + show the group ahead of the BSD C versions overall, most functions + substantially so. The block-move routines (memcpy/memset/memmove) align to an 8-byte boundary before issuing quad ld.dd/st.dd so that stores to DLMU shared memory (0xB0/0x90, 64-bit ECC granularity) always write whole
