mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-21 06:17:57 +00:00
This allows compiling a full 128-bit product of two 64-bit integers as a
mul/mulh pair, instead of a nasty long sequence of 20+ instructions.
However, after selecting ARCH_SUPPORTS_INT128, when optimizing for size
the compiler generates calls to __ashlti3, __ashrti3, and __lshrti3 for
shifting __int128 values, causing a link failure:
loongarch64-unknown-linux-gnu-ld: kernel/sched/fair.o: in
function `mul_u64_u32_shr':
<PATH>/include/linux/math64.h:161:(.text+0x5e4): undefined
reference to `__lshrti3'
So provide the implementation of these functions if ARCH_SUPPORTS_INT128.
Closes: https://lore.kernel.org/loongarch/CAAhV-H5EZ=7OF7CSiYyZ8_+wWuenpo=K2WT8-6mAT4CvzUC_4g@mail.gmail.com/
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
|
||
|---|---|---|
| .. | ||
| clear_user.S | ||
| copy_user.S | ||
| csum.c | ||
| delay.c | ||
| dump_tlb.c | ||
| error-inject.c | ||
| Makefile | ||
| memcpy.S | ||
| memmove.S | ||
| memset.S | ||
| tishift.S | ||
| unaligned.S | ||
| xor_simd_glue.c | ||
| xor_simd.c | ||
| xor_simd.h | ||
| xor_template.c | ||