[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
Mon Sep 19 03:15:07 BST 2022


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

--- Comment #42 from Jacob Lifshay <programmerjake at gmail.com> ---
apparently Rust is getting bigint helper functions too:
tracking issue:
https://github.com/rust-lang/rust/issues/85532

public API:
> // On unsigned integers:
> 
> /// `self + rhs + carry` (full adder)
> fn carrying_add(self, rhs: Self, carry: bool) -> (Self, bool);
> 
> /// `self - rhs - carry` (full "subtractor")
> fn borrowing_sub(self, rhs: Self, carry: bool) -> (Self, bool);
> 
> /// `self * rhs + carry` (multiply-accumulate)
> fn carrying_mul(self, rhs: Self, carry: Self) -> (Self, Self);
> 
> /// `self * rhs` (wide multiplication, same as `self.carrying_mul(rhs, 0)`)
> fn widening_mul(self, rhs: Self) -> (Self, Self);
> 
> 
> // On signed integers:
> 
> /// `self + rhs + carry` (full adder)
> fn carrying_add(self, rhs: Self, carry: bool) -> (Self, bool);
> 
> /// `self - rhs - carry` (full "subtractor")
> fn borrowing_sub(self, rhs: Self, carry: bool) -> (Self, bool);

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


More information about the Libre-SOC-ISA mailing list