Re: [PATCH v2] m68k: use kernel's generic muldi3 libgcc function
From: Greg Ungerer
Date:  Tue Nov 05 2024 - 17:04:51 EST
Hi Geert,
On 5/11/24 21:46, Geert Uytterhoeven wrote:
Hi Greg, Arnd,
On Mon, Nov 13, 2023 at 2:32 PM Greg Ungerer <gerg@xxxxxxxxxxxxxx> wrote:
Use the kernels own generic lib/muldi3.c implementation of muldi3 for
68K machines. Some 68K CPUs support 64bit multiplies so move the arch
specific umul_ppmm() macro into a header file that is included by
lib/muldi3.c. That way it can take advantage of the single instruction
when available.
There does not appear to be any existing mechanism for the generic
lib/muldi3.c code to pick up an external arch definition of umul_ppmm().
Create an arch specific libgcc.h that can optionally be included by
the system include/linux/libgcc.h to allow for this.
Somewhat oddly there is also a similar definition of umul_ppmm() in
the non-architecture code in lib/crypto/mpi/longlong.h for a wide range
or machines. Its presence ends up complicating the include setup and
means not being able to use something like compiler.h instead. Actually
there is a few other defines of umul_ppmm() macros spread around in
various architectures, but not directly usable for the m68k case.
Signed-off-by: Greg Ungerer <gerg@xxxxxxxxxxxxxx>
Reviewed-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
  arch/Kconfig                   |  8 +++
  arch/m68k/Kconfig              |  2 +
  arch/m68k/include/asm/libgcc.h | 20 +++++++
  arch/m68k/lib/Makefile         |  2 +-
  arch/m68k/lib/muldi3.c         | 97 ----------------------------------
  include/linux/libgcc.h         |  4 ++
  6 files changed, 35 insertions(+), 98 deletions(-)
  create mode 100644 arch/m68k/include/asm/libgcc.h
  delete mode 100644 arch/m68k/lib/muldi3.c
I had this in my local tree for about a year.
Is it fine to queue this in the m68k tree, or does this need a broader
coverage?
I am still in favor of it :-)
Would be good to get some feedback on the common code changes, like the change
to libgcc.h.
Regards
Greg