From: Sascha Hauer <s.hauer@pengutronix.de>
To: "open list:BAREBOX" <barebox@lists.infradead.org>
Subject: [PATCH 00/10] ARM: add assembler optimized memmove
Date: Wed, 25 Sep 2024 15:55:23 +0200 [thread overview]
Message-ID: <20240925-arm-assembly-memmove-v1-0-0d92103658a0@pengutronix.de> (raw)
I realized that ARM uses the generic memmove() implementation which is
rather slow. This series adds the assembler optimized version for ARM.
The corresponding recent Linux code doesn't fit into barebox anymore, so
to merge the code the surroundings have to be updated first, hence the
series is bigger than I like it to be.
Sascha
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
Sascha Hauer (10):
ARM: Use optimized reads[bwl] and writes[bwl] functions
ARM: rename logical shift macros push pull into lspush lspull
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
ARM: update lib1funcs.S from Linux
ARM: update findbit.S from Linux
ARM: update io-* from Linux
ARM: always assume the unified syntax for assembly code
ARM: update memcpy.S and memset.S from Linux
lib/string.c: export non optimized memmove as __default_memmove
ARM: add optimized memmove
arch/arm/Kconfig | 4 -
arch/arm/Makefile | 3 +
arch/arm/cpu/cache-armv4.S | 11 +-
arch/arm/cpu/cache-armv5.S | 13 +-
arch/arm/cpu/cache-armv6.S | 13 +-
arch/arm/cpu/cache-armv7.S | 9 +-
arch/arm/cpu/hyp.S | 3 +-
arch/arm/cpu/setupc_32.S | 7 +-
arch/arm/cpu/sm_as.S | 3 +-
arch/arm/include/asm/assembler.h | 36 ++++-
arch/arm/include/asm/cache.h | 8 ++
arch/arm/include/asm/io.h | 24 ++++
arch/arm/include/asm/string.h | 4 +-
arch/arm/include/asm/unified.h | 75 +----------
arch/arm/lib32/Makefile | 1 +
arch/arm/lib32/ashldi3.S | 3 +-
arch/arm/lib32/ashrdi3.S | 3 +-
arch/arm/lib32/copy_template.S | 94 +++++++------
arch/arm/lib32/findbit.S | 243 +++++++++++++--------------------
arch/arm/lib32/io-readsb.S | 32 ++---
arch/arm/lib32/io-readsl.S | 32 ++---
arch/arm/lib32/io-readsw-armv4.S | 26 ++--
arch/arm/lib32/io-writesb.S | 34 ++---
arch/arm/lib32/io-writesl.S | 36 ++---
arch/arm/lib32/io-writesw-armv4.S | 16 +--
arch/arm/lib32/lib1funcs.S | 80 ++++++-----
arch/arm/lib32/lshrdi3.S | 3 +-
arch/arm/lib32/memcpy.S | 30 +++--
arch/arm/lib32/memmove.S | 206 ++++++++++++++++++++++++++++
arch/arm/lib32/memset.S | 96 ++++++++-----
arch/arm/lib32/runtime-offset.S | 2 +-
arch/arm/lib64/copy_template.S | 11 +-
arch/arm/lib64/memcpy.S | 274 ++++++++++++++++++++++++++++++++------
arch/arm/lib64/memset.S | 18 ++-
arch/arm/lib64/string.c | 17 +++
include/string.h | 2 +
lib/string.c | 11 +-
37 files changed, 954 insertions(+), 529 deletions(-)
---
base-commit: 419ea9350aa083d4a2806a70132129a49a5ecf95
change-id: 20240925-arm-assembly-memmove-8eccb9affa1b
Best regards,
--
Sascha Hauer <s.hauer@pengutronix.de>
next reply other threads:[~2024-09-25 13:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-25 13:55 Sascha Hauer [this message]
2024-09-25 13:55 ` [PATCH 01/10] ARM: Use optimized reads[bwl] and writes[bwl] functions Sascha Hauer
2024-09-25 15:45 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 02/10] ARM: rename logical shift macros push pull into lspush lspull Sascha Hauer
2024-09-25 15:52 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 03/10] ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ Sascha Hauer
2024-09-25 15:56 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 04/10] ARM: update lib1funcs.S from Linux Sascha Hauer
2024-09-25 16:02 ` Ahmad Fatoum
2024-09-26 8:22 ` Sascha Hauer
2024-09-26 11:09 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 05/10] ARM: update findbit.S " Sascha Hauer
2024-09-25 16:03 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 06/10] ARM: update io-* " Sascha Hauer
2024-09-25 16:04 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 07/10] ARM: always assume the unified syntax for assembly code Sascha Hauer
2024-09-25 16:09 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 08/10] ARM: update memcpy.S and memset.S from Linux Sascha Hauer
2024-09-26 5:51 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 09/10] lib/string.c: export non optimized memmove as __default_memmove Sascha Hauer
2024-09-25 16:10 ` Ahmad Fatoum
2024-09-25 13:55 ` [PATCH 10/10] ARM: add optimized memmove Sascha Hauer
2024-09-26 5:48 ` Ahmad Fatoum
2024-09-26 11:12 ` Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240925-arm-assembly-memmove-v1-0-0d92103658a0@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox