/* 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) \ do { \ unsigned long __u = (u), __v = (v); \ unsigned long __w0, __w1; \ \ __asm__ ("mulu%.l %3,%1:%0" \ : "=d" (__w0), \ "=d" (__w1) \ : "%0" (__u), \ "dmi" (__v)); \ \ (w0) = __w0; (w1) = __w1; \ } while (0) #endif /* !CONFIG_CPU_HAS_NO_MULDIV64 */ #endif /* __ASM_M68K_LIBGCC_H */