From: lkcl Date: Tue, 26 Apr 2022 12:59:05 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~2584 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=435d5b9aa2c1c7693902a029c38e499a633183cd;p=libreriscv.git --- diff --git a/openpower/sv/biginteger/analysis.mdwn b/openpower/sv/biginteger/analysis.mdwn index 8e7d6c0ed..dc9d4ac87 100644 --- a/openpower/sv/biginteger/analysis.mdwn +++ b/openpower/sv/biginteger/analysis.mdwn @@ -6,6 +6,7 @@ * Revision 0.01: 22apr2022 removal of msubed because sv.madded and sv.subfe works * Revision 0.02: 22apr2022 128/64 scalar divide, investigate Goldschmidt * Revision 0.03: 24apr2022 add 128/64 divrem2du, similar loop to madded +* Revision 0.04: 26apr2022 Knuth original uses overflow on scalar div This page covers an analysis of big integer operations, to work out optimal Scalar Instructions to propose be submitted to @@ -313,9 +314,8 @@ most significant digits, performing a scalar divide, and consequently requires a scalar division with *twice* the number of bits of the size of individual digits (for example, a 64-bit array). In this example taken from -[divmnu64.c](https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/bitmanip/divmnu64.c;hb=HEAD) -the digits are 32 bit and therefore a 64/64 divide is sufficient to -cover a 64/32 operation (64-bit dividend, 32-bit divisor): +[divmnu64.c](https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/biginteger/divmnu64.c;hb=HEAD) +the digits are 32 bit and, special-casing the overflow, a 64/32 divide is sufficient (64-bit dividend, 32-bit divisor): ``` // Compute estimate qhat of q[j] from top 2 digits