[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <992c4d62-380d-4908-a688-77197d9c4cbd@app.fastmail.com>
Date: Mon, 02 Dec 2024 10:27:48 +0100
From: "Arnd Bergmann" <arnd@...db.de>
To: "Greg Ungerer" <gerg@...ux-m68k.org>,
"Geert Uytterhoeven" <geert@...ux-m68k.org>
Cc: 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 02:34, Greg Ungerer wrote:
> Arnd, ping...
Sorry I hadn't realized you were waiting for me.
> 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.
Arnd
Powered by blists - more mailing lists