[Libre-soc-isa] [Bug 817] Big Integer Math (sv.adde, sv.subfe, sv.madded, 128 by 64-bit -> 64-bit div/rem, maybe more...)

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Apr 24 19:39:53 BST 2022


https://bugs.libre-soc.org/show_bug.cgi?id=817

--- Comment #19 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #17)

> > following lq/stq is sort-of-fine [i may have got the dividend the wrong
> > way round, (RS) || (RA) rather than (RA) || (RS).
> 
> no, because that bigint by word division needs the high half of the
> numerator to be scalar and the low half to be vector. having an implicit
> high half means they have to be both scalar or both vector--unusable to do
> division with a single sv.divrem2du.

yep got it now, was still thinking in terms of the (early) mulx,
i hadn't twigged about the feedback loop option just like in madded.

> two: divrem2du and divrem2d.

times two for one bit to select if mod is written. have to think that
through, can it be achieved with RA or RT zero to stop div or rem
being stored.

> i already explained that, for smaller bigints (around 8 words), big-integer
> goldschmidt needs like 30x as many word operations as algorithm d. algorithm
> d is necessary.

yeah i'm catching up. went to bugzilla and saw 2 posts, my brain was
in linux-microwatt mode.

i'll need to do a mental walkthrough and also it would be useful to
split out in the divmnu64.c you can see i created some functions
bigmul bigsub bigadd in divgnu64.c

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libre-SOC-ISA mailing list