[Libre-soc-bugs] [Bug 784] Implement cl* instructions for carry-less operations

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Apr 8 10:35:35 BST 2022


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

--- Comment #30 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #29)
> that's hilarious. i Grok that from the Power ISA ops,
> from Paul and Anton's microwatt work.

:)

> > that said, imho we should leave it as the addition version
> 
> hm hm as a "<" it intuitively makes sense to me where carry
> wasn't.

guess an explanation of how the addition version works is in order...

i was thinking in terms of a carry-look-ahead circuit where it generates G
(Generate a carry) and P (Propagate a carry) signals from the input addends,
and then uses a tree to compute the carry propagation -- G is exactly
`both_ones`, and P is exactly `~different`

(In reply to Jacob Lifshay from comment #28)
> (In reply to Luke Kenneth Casson Leighton from comment #27)
> > ~ moved into the carrysum.
> 
> lgtm except iirc ~different doesn't need parenthesis -- though that doesn't
> matter much.

I totally forgot to check if you fixed the comment, which you didn't...merging
the variables totally made the comment incomprehensible, please change all
mentions of `both_ones[i]` and `different[i]` (but not the un-indexed variants)
in the comment in elaborate() back to talking about how the two inputs to the
add operation are set, rather than those variables.

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


More information about the libre-soc-bugs mailing list