core: Implement the maddhd, maddhdu and maddld instructions
authorPaul Mackerras <paulus@ozlabs.org>
Tue, 4 Aug 2020 10:02:30 +0000 (20:02 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Thu, 6 Aug 2020 01:30:49 +0000 (11:30 +1000)
commit290b05f97da6255734b4ff3c7c7a913cf99301f9
tree8f039e6dec45fb1f17296a12da32f06b122b77b0
parent8edfbf638b8c4704e1184618405061590cee684b
core: Implement the maddhd, maddhdu and maddld instructions

These instructions use major opcode 4 and have a third GPR input
operand, so we need a decode table for major opcode 4 and some
plumbing to get the RC register operand read.

The multiply-add instructions use the same insn_type_t values as the
regular multiply instructions, and we distinguish in execute1 by
looking at the major opcode.  This turns out to be convenient because
we don't have to add any cases in the code that handles the output of
the multiplier, and it frees up some insn_type_t values.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
decode1.vhdl
decode2.vhdl
decode_types.vhdl
execute1.vhdl
insn_helpers.vhdl
scripts/fmt_log/fmt_log.c