public inbox for linux-riscv@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] riscv: Optimize memset
@ 2023-05-05  8:43 张飞
  2023-05-05 11:54 ` Andrew Jones
  0 siblings, 1 reply; 15+ messages in thread
From: 张飞 @ 2023-05-05  8:43 UTC (permalink / raw)
  To: paul.walmsley, palmer, aou; +Cc: linux-riscv, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: 0001-riscv-Optimize-memset.patch --]
[-- Type: application/octet-stream, Size: 1405 bytes --]

From bca189fbfacf1b01975af45e49096a5718887a42 Mon Sep 17 00:00:00 2001
From: zhangfei <zhangfei@nj.iscas.ac.cn>
Date: Fri, 5 May 2023 14:58:35 +0800
Subject: [PATCH] riscv: Optimize memset

This patch has been optimized for memset data sizes less than 16 bytes.
Compared to byte by byte storage, significant performance improvement has been achieved.

Signed-off-by: Fei Zhang <zhangfei@nj.iscas.ac.cn>
---
 arch/riscv/lib/memset.S | 33 ++++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/lib/memset.S b/arch/riscv/lib/memset.S
index 34c5360c6705..0967bdf86bd6 100644
--- a/arch/riscv/lib/memset.S
+++ b/arch/riscv/lib/memset.S
@@ -105,9 +105,36 @@ WEAK(memset)
 	beqz a2, 6f
 	add a3, t0, a2
 5:
-	sb a1, 0(t0)
-	addi t0, t0, 1
-	bltu t0, a3, 5b
+        sb a1, 0(t0)
+        sb a1, -1(a3)
+        li a4, 2
+        bgeu a4, a2, 6f
+
+        sb a1, 1(t0)
+        sb a1, 2(t0)
+        sb a1, -2(a3)
+        sb a1, -3(a3)
+        li a4, 6
+        bgeu a4, a2, 6f
+
+        sb a1, 3(t0)
+        sb a1, -4(a3)
+        li a4, 8
+        bgeu a4, a2, 6f
+
+        sb a1, 4(t0)
+        sb a1, -5(a3)
+        li a4, 10
+        bgeu a4, a2, 6f
+
+        sb a1, 5(t0)
+        sb a1, 6(t0)
+        sb a1, -6(a3)
+        sb a1, -7(a3)
+        li a4, 14
+        bgeu a4, a2, 6f
+
+        sb a1, 7(t0)
 6:
 	ret
 END(__memset)
-- 
2.33.0


[-- Attachment #3: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-05-11  1:55 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-05  8:43 [PATCH] riscv: Optimize memset 张飞
2023-05-05 11:54 ` Andrew Jones
2023-05-09  2:22   ` [PATCH 1/2] RISC-V: lib: Improve memset assembler formatting zhangfei
2023-05-09  2:22     ` [PATCH 2/2] riscv: Optimize memset zhangfei
2023-05-09  2:22     ` Re: [PATCH] " zhangfei
2023-05-09  9:16       ` Andrew Jones
2023-05-10  3:52         ` [PATCH 0/2] riscv: Optimize memset for data sizes less than 16 bytes zhangfei
2023-05-10  3:52           ` [PATCH 1/2] RISC-V: lib: Improve memset assembler formatting zhangfei
2023-05-10  7:13             ` Conor Dooley
2023-05-11  1:55               ` zhangfei
2023-05-10  3:52           ` [PATCH 2/2] riscv: Optimize memset zhangfei
2023-05-10  3:52           ` [PATCH] " zhangfei
2023-05-10  6:58             ` Andrew Jones
2023-05-11  1:42               ` zhangfei
2023-05-09  9:48     ` [PATCH 1/2] RISC-V: lib: Improve memset assembler formatting Andrew Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox