Change the multiplier interface to support signed multipliers
authorPaul Mackerras <paulus@ozlabs.org>
Mon, 8 Aug 2022 12:26:39 +0000 (22:26 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 9 Aug 2022 23:17:55 +0000 (09:17 +1000)
commite02d8060edaa0300f14a695895f4a0b622e0351a
treed593de9067cb789ac1c706a76c07748fa0345e08
parentaf9fe3467c91b46c053bdc81fcef45044ef09578
Change the multiplier interface to support signed multipliers

This adds an 'is_signed' signal to MultiplyInputType to indicate
whether the data1 and data2 fields are to be interpreted as signed or
unsigned numbers.

The 'not_result' field is replaced by a 'subtract' field which
provides a more intuitive interface for requesting that the product be
subtracted from the addend rather than added, i.e. subtract = 1 gives
C - A * B, vs. subtract = 0 giving C + A * B.  (Previously the users
of the multipliers got the same effect by complementing the addend and
setting not_result = 1.)

The is_32bit field is removed because it is no longer used now that we
have a separate 32-bit multiplier.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
execute1.vhdl
fpu.vhdl
multiply-32s.vhdl
multiply.vhdl
xilinx-mult-32s.vhdl
xilinx-mult.vhdl