(no commit message)
authorlkcl <lkcl@web>
Tue, 19 Apr 2022 17:44:25 +0000 (18:44 +0100)
committerIkiWiki <ikiwiki.info>
Tue, 19 Apr 2022 17:44:25 +0000 (18:44 +0100)
openpower/sv/biginteger.mdwn

index 17920f89abfe332b40946846c83d19bca980f229..63645c0e7de35ee12503aa74b499966103fa4dab 100644 (file)
@@ -95,9 +95,16 @@ as noted by Intel in their notes on mulx,
 RA*RB+RC+RD cannot overflow, so does not require
 setting an additional CA flag.
 
+Normally, in a Scalar ISA, the use of a register as both a source
+and destination like this would create costly Dependency Hazards, so
+such an instruction would never be proposed.  However: it turns out
+that, just as with repeated chained application of `addeo`, macro-op
+fusion may be internally applied to a sequence of these strange multiply
+operations. Such a trick works equally as well in Scalar-only.
+
 ## Divide
 
-The simplest implementation of big-int divide is the standard textbook
+The simplest implementation of big-int divide is the standard schoolbook
 "Long Division", set with RADIX 64 instead of Base 10. Donald Knuth's
 Algorithm D performs estimates which, if wrong, are compensated for
 afterwards.  Essentially however there are three phases: