[PATCH 2/4] RISC-V: strcmp [speed optimized]: use compressed registers wherever possible

puranikvinit kvp933.vinit@gmail.com
Wed May 28 05:47:34 GMT 2025


Replaces temporary registers (t0) with compressed registers (a4) in the
null detection loop, reducing instruction count and code size in
speed-optimized builds while maintaining identical logic.

Signed-off-by: puranikvinit <kvp933.vinit@gmail.com>
Reviewed-by: Christian Herber <christian.herber@oss.nxp.com>
---
 newlib/libc/machine/riscv/strcmp.S | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/newlib/libc/machine/riscv/strcmp.S b/newlib/libc/machine/riscv/strcmp.S
index 25ad9ef2e..405f2f655 100644
--- a/newlib/libc/machine/riscv/strcmp.S
+++ b/newlib/libc/machine/riscv/strcmp.S
@@ -48,12 +48,12 @@ strcmp:
     REG_L a2, \i*SZREG(a0)
     REG_L a3, \i*SZREG(a1)
 
-    and   t0, a2, a5
+    and   a4, a2, a5
     or    t1, a2, a5
-    add   t0, t0, a5
-    or    t0, t0, t1
+    add   a4, a4, a5
+    or    a4, a4, t1
 
-    bne   t0, t2, .Lnull\i
+    bne   a4, t2, .Lnull\i
     .if \i+1-\n
       bne   a2, a3, .Lmismatch
     .else
-- 
2.34.1



More information about the Newlib mailing list