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 <[email protected]>
Signed-off-by: Palmer Dabbelt <[email protected]>
This commit is contained in:
Zong Li 2018-10-02 16:52:29 +08:00 • committed by Palmer Dabbelt
commit 6315730e9e
No known key found for this signature in database
GPG key ID: EF4CA1502CCBAB41
4 changed files with 346 additions and 0 deletions

View file

@ -621,3 +621,6 @@ config GENERIC_LIB_CMPDI2
config GENERIC_LIB_UCMPDI2
bool
config GENERIC_LIB_UMODDI3
bool