Christoph Hellwig <h...@infradead.org> 於 2018年9月21日 週五 下午3:00寫道: > > On Tue, Sep 18, 2018 at 05:19:15PM +0800, Zong Li wrote: > > Add umoddi3 and udivmoddi4 support for 32-bit. > > This probably wants a better explanation of why you need them. > > > index 0000000..69f2d36 > > --- /dev/null > > +++ b/lib/udivmoddi4.c > > @@ -0,0 +1,291 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > Who wrote this code, where does it come from?
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.