diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2023-09-18 08:11:39 +0200 |
---|---|---|
committer | Daniel Schwierzeck <daniel.schwierzeck@gmail.com> | 2024-03-13 21:15:40 +0100 |
commit | 811dd44b0b13cb1ea40392edfbe8ffa21c5b33ad (patch) | |
tree | 63e148ee98f587eb206745493ec4dc3516a19a6e | |
parent | f3c979dd0053c082d2df170446923e7ce5edbc2d (diff) | |
download | u-boot-811dd44b0b13cb1ea40392edfbe8ffa21c5b33ad.zip u-boot-811dd44b0b13cb1ea40392edfbe8ffa21c5b33ad.tar.gz u-boot-811dd44b0b13cb1ea40392edfbe8ffa21c5b33ad.tar.bz2 |
mips: implement __udivdi3
Squashfs wasn't compiling because the lldiv() directives
turn into __udivdi3 and we are using private libgcc.
After this squashfs compiles for MIPS.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Tested-by: Bartel Eerdekens <barteleerdekens@gmail.com>
-rw-r--r-- | arch/mips/lib/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/lib/udivdi3.c | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile index 9ee1fcb..1621cc9 100644 --- a/arch/mips/lib/Makefile +++ b/arch/mips/lib/Makefile @@ -14,4 +14,4 @@ obj-$(CONFIG_CMD_BOOTM) += bootm.o obj-$(CONFIG_CMD_GO) += boot.o obj-$(CONFIG_SPL_BUILD) += spl.o -lib-$(CONFIG_USE_PRIVATE_LIBGCC) += ashldi3.o ashrdi3.o lshrdi3.o +lib-$(CONFIG_USE_PRIVATE_LIBGCC) += ashldi3.o ashrdi3.o lshrdi3.o udivdi3.o diff --git a/arch/mips/lib/udivdi3.c b/arch/mips/lib/udivdi3.c new file mode 100644 index 0000000..4d78011 --- /dev/null +++ b/arch/mips/lib/udivdi3.c @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#include "libgcc.h" + +#if BITS_PER_LONG == 32 + +#include <div64.h> + +long long __udivdi3(long long u, word_type b) +{ + long long ret = u; + + __div64_32(&ret, b); + return ret; +} + +#endif /* BITS_PER_LONG == 32 */ |