bbc25bee37
Current MIPS64r6 toolchains aren't able to generate efficient DMULU/DMUHU based code for the C implementation of umul_ppmm(), which performs an unsigned 64 x 64 bit multiply and returns the upper and lower 64-bit halves of the 128-bit result. Instead it widens the 64-bit inputs to 128-bits and emits a __multi3 intrinsic call to perform a 128 x 128 multiply. This is both inefficient, and it results in a link error since we don't include __multi3 in MIPS linux. For example commit |
||
---|---|---|
.. | ||
generic_mpih-add1.c | ||
generic_mpih-lshift.c | ||
generic_mpih-mul1.c | ||
generic_mpih-mul2.c | ||
generic_mpih-mul3.c | ||
generic_mpih-rshift.c | ||
generic_mpih-sub1.c | ||
longlong.h | ||
Makefile | ||
mpi-bit.c | ||
mpi-cmp.c | ||
mpi-inline.h | ||
mpi-internal.h | ||
mpi-pow.c | ||
mpicoder.c | ||
mpih-cmp.c | ||
mpih-div.c | ||
mpih-mul.c | ||
mpiutil.c |