From: lkcl Date: Wed, 27 Apr 2022 09:30:11 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~2567 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d4757f213cfbcc2aef5425c753c417d798279347;p=libreriscv.git --- diff --git a/openpower/sv/biginteger/analysis.mdwn b/openpower/sv/biginteger/analysis.mdwn index b731f2bee..9cce6b8ad 100644 --- a/openpower/sv/biginteger/analysis.mdwn +++ b/openpower/sv/biginteger/analysis.mdwn @@ -119,7 +119,8 @@ void biglsh(unsigned s, unsigned vn[], unsigned const v[], int n) The reason why three instructions are needed instead of one in the case of big-add is because multiple bits chain through to the -next element, where for add it is a single bit (carry-in, carry-out). +next element, where for add it is a single bit (carry-in, carry-out), +and this is precisely what `adde` already does. For multiply and divide as shown later it is worthwhile to use one scalar register effectively as a full 64-bit carry/chain but in the case of shift, an OR may glue things together, easily,