From a4d23ef7adc37a83d315a041e081337118e06e6b Mon Sep 17 00:00:00 2001 From: Lephe Date: Tue, 28 Jul 2020 17:34:25 +0200 Subject: [PATCH] libc: faster memset --- src/std/memset.s | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/std/memset.s b/src/std/memset.s index 183c64d..4aa6a8a 100644 --- a/src/std/memset.s +++ b/src/std/memset.s @@ -31,12 +31,28 @@ _memset_align: bf/s _memset_align dt r6 + mov #40, r2 + +.aligned4_32: + add #-32, r4 + add #-32, r6 + mov.l r0, @(28,r4) + mov.l r0, @(24,r4) + mov.l r0, @(20,r4) + mov.l r0, @(16,r4) + mov.l r0, @(12,r4) + mov.l r0, @(8,r4) + mov.l r0, @(4,r4) + cmp/ge r6, r2 + bf/s .aligned4_32 + mov.l r0, @r4 + mov #8, r2 -.aligned4: +.aligned4_4: mov.l r0, @-r4 cmp/ge r6, r2 - bf/s .aligned4 + bf/s .aligned4_4 add #-4, r6 _naive_memset: