From 926a4bdbb5fc8955570208b5571b2d04c6ffbd1d Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 18 Jan 2024 10:52:18 -0300 Subject: [PATCH] sparc: Fix sparc64 memmove length comparison (BZ 31266) The small counts copy bytes comparsion should be unsigned (as the memmove size argument). It fixes string/tst-memmove-overflow on sparcv9, where the input size triggers an invalid code path. Checked on sparc64-linux-gnu and sparcv9-linux-gnu. --- sysdeps/sparc/sparc64/memmove.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sysdeps/sparc/sparc64/memmove.S b/sysdeps/sparc/sparc64/memmove.S index 8803a03d4e..f14b09afaf 100644 --- a/sysdeps/sparc/sparc64/memmove.S +++ b/sysdeps/sparc/sparc64/memmove.S @@ -38,7 +38,7 @@ ENTRY(memmove) /* * normal, copy forwards */ -2: ble %XCC, .Ldbytecp +2: bleu %XCC, .Ldbytecp andcc %o1, 3, %o5 /* is src word aligned */ bz,pn %icc, .Laldst cmp %o5, 2 /* is src half-word aligned */ -- 2.11.4.GIT