lib: Add umoddi3 and udivmoddi4 of GCC library routines
authorZong Li <zongbox@gmail.com>
Tue, 2 Oct 2018 08:52:29 +0000 (16:52 +0800)
committerPalmer Dabbelt <palmer@sifive.com>
Tue, 23 Oct 2018 00:02:56 +0000 (17:02 -0700)
commit6315730e9eab7de5fa9864bb13a352713f48aef1
tree8971b00693f003a5e5b71d57b40fd5d91de11879
parent51858aaf9bea3ddf166bf9d252a1fc351260b497
lib: Add umoddi3 and udivmoddi4 of GCC library routines

Add umoddi3 and udivmoddi4 support for 32-bit.

The RV32 need the umoddi3 to do modulo when the operands are long long
type, like other libraries implementation such as ucmpdi2, lshrdi3 and
so on.

I encounter the undefined reference 'umoddi3' when I use the in
house dma driver, although it is in house driver, but I think that
umoddi3 is a common function for RV32.

The udivmoddi4 and umoddi3 are copies from libgcc in gcc. There are other
functions use the udivmoddi4 in libgcc, so I separate the umoddi3 and
udivmoddi4 for flexible extension in the future.

Signed-off-by: Zong Li <zong@andestech.com>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
lib/Kconfig
lib/Makefile
lib/udivmoddi4.c [new file with mode: 0644]
lib/umoddi3.c [new file with mode: 0644]