mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

lib/muldi3.c:53:28: warning: asm output is not an lvalue lib/muldi3.c:53:28: warning: asm output is not an lvalue lib/muldi3.c:53:28: error: not addressable lib/muldi3.c:53:28: warning: generating address of non-lvalue (11) lib/muldi3.c:53:28: warning: generating address of non-lvalue (11) Fix the lvalue warnings by replacing the casts on the output operands by intermediate variables of the right type. Fix the "not addressable" error by replacing the cast on the second input operand by an intermediate variable, too. Treat the other input operand the same for consistency. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202501030516.uZrwnuQQ-lkp@intel.com/ Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Greg Ungerer <gerg@linux-m68k.org> Link: https://lore.kernel.org/c408cfb85bfde8929dcaa4ebea29ade4e1452d8e.1736356696.git.geert@linux-m68k.org
27 lines
782 B
C
27 lines
782 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) \
|
|
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 */
|