[PATCH 00/12] newlib: RISC-V: Optimize memory and string functions for code size

m fally marlene.fally@gmail.com
Wed Apr 9 06:46:49 GMT 2025


This patch series optimizes the size-optimized versions of
memset(), memcpy(), memmove(), and strcmp() for the RISC-V port.
The majority of instructions in each function will now be compressed
when compiled with the C and (optionally) Zcb extensions.

This is the second patch series that is part of a three-month
mentorship to optimize de RISC-V port for speed and size.

Eric Salem (1):
  RISC-V: memset() size optimized version: Use compressed registers

Mahmoud Abumandour (2):
  RISC-V: memcpy() size optimized version: Replace lb with lbu
  RISC-V: memcpy() size optimized version: Use compressed registers

m fally (8):
  RISC-V: memmove() size optimized version: Use compressed register
  RISC-V: memmove() size optimized version: Use compressed registers
    only
  RISC-V: memmove() size optimized version: Rename local labels
  RISC-V: memmove() size optimized version: Add comments
  RISC-V: memmove() size optimized version: Replace lb with lbu
  RISC-V: memmove() size optimized version: Relax RAW dependency
  RISC-V: memset() size optimized version: Rename local labels
  RISC-V: Size optimized versions: Replace add with addi

puranikvinit (1):
  RISC-V: strcmp() size optimized version: Use compressed registers

 newlib/libc/machine/riscv/memcpy-asm.S | 12 +++++------
 newlib/libc/machine/riscv/memmove.S    | 28 +++++++++++++-------------
 newlib/libc/machine/riscv/memset.S     | 16 +++++++--------
 newlib/libc/machine/riscv/strcmp.S     | 17 ++++++++--------
 4 files changed, 36 insertions(+), 37 deletions(-)

-- 
2.49.0



More information about the Newlib mailing list