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