linux/arch/m68k/include/asm/libgcc.h

21 lines
685 B
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_M68K_LIBGCC_H
#define __ASM_M68K_LIBGCC_H
#ifndef CONFIG_CPU_HAS_NO_MULDIV64
/*
* For those 68K CPUs that support 64bit multiply define umul_ppm()
* for the common muldi3 libgcc helper function (in lib/muldi3.c).
* CPUs that don't have it (like the original 68000 and ColdFire)
* will fallback to using the C-coded version of umul_ppmm().
*/
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("mulu%.l %3,%1:%0" \
: "=d" ((unsigned long)(w0)), \
"=d" ((unsigned long)(w1)) \
: "%0" ((unsigned long)(u)), \
"dmi" ((unsigned long)(v)))
#endif /* !CONFIG_CPU_HAS_NO_MULDIV64 */
#endif /* __ASM_M68K_LIBGCC_H */