[PATCH 1/1] MIPS: fix optimised memset returning garbage

Denis Orlov denorl2009 at gmail.com
Thu Mar 10 05:40:40 PST 2022


There is a subtle bug in arch/mips/lib/memset.S, which results in
not writing the correct return value into v0 register if the value
to fill memory with is 0.

Signed-off-by: Denis Orlov <denorl2009 at gmail.com>
---
 arch/mips/lib/memset.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/lib/memset.S b/arch/mips/lib/memset.S
index 0b81bd7d8d..cd4e4ccfe8 100644
--- a/arch/mips/lib/memset.S
+++ b/arch/mips/lib/memset.S
@@ -34,8 +34,8 @@
  */
 
 LEAF(memset)
-	beqz		a1, 1f
 	move		v0, a0			/* result */
+	beqz		a1, 1f
 
 	andi		a1, 0xff		/* spread fillword */
 	LONG_SLL		t1, a1, 8
-- 
2.20.1




More information about the barebox mailing list