[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAMuHMdUkeeUD7x4s8F8AtdAcXP4A_Z5Vq2--UwasJC3xtZAzVg@mail.gmail.com>
Date: Mon, 9 Dec 2024 13:32:45 +0100
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Arnd Bergmann <arnd@...db.de>
Cc: Greg Ungerer <gerg@...ux-m68k.org>, linux-m68k@...ts.linux-m68k.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] m68k: use kernel's generic muldi3 libgcc function
On Mon, Dec 2, 2024 at 10:28 AM Arnd Bergmann <arnd@...db.de> wrote:
> On Mon, Dec 2, 2024, at 02:34, Greg Ungerer wrote:
> > On 6/11/24 08:04, Greg Ungerer wrote:
> >> On 5/11/24 21:46, Geert Uytterhoeven wrote:
> >>> On Mon, Nov 13, 2023 at 2:32 PM Greg Ungerer <gerg@...ux-m68k.org> 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@...ux-m68k.org>
> >>>
> >>> Reviewed-by: Geert Uytterhoeven <geert@...ux-m68k.org>
> >>>
> >>>> 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.
>
> Reviewed-by: Arnd Bergmann <arnd@...db.de>
>
> This looks fine to me, nice cleanup. My instinct at first was
> to add an asm-generic/libgcc.h as a fallback in place of
> the Kconfig symbol and move the common macro there, but there
> really isn't much benefit to that over your version. Either way,
> please merge this through the m68k tree.
Thanks, queued in the m68k tree for v6.14.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Powered by blists - more mailing lists