execute1: Do forwarding of the CR result to the next instruction
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 19 Jun 2020 10:00:16 +0000 (20:00 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Mon, 29 Jun 2020 23:07:41 +0000 (09:07 +1000)
commit74062195ca9cb74119c81e5978315ac149fe515d
treeee7fb01ea57d8314a74c7987f6c74113827cded7
parent0f0573903b16618b1c61ea1029b4ab3f1006ec9c
execute1: Do forwarding of the CR result to the next instruction

This adds a path to allow the CR result of one instruction to be
forwarded to the next instruction, so that sequences such as
cmp; bc can avoid having a 1-cycle bubble.

Forwarding is not available for dot-form (Rc=1) instructions,
since the CR result for them is calculated in writeback.  The
decode.output_cr field is used to identify those instructions
that compute the CR result in execute1.

For some reason, the multiply instructions incorrectly had
output_cr = 1 in the decode tables.  This fixes that.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
control.vhdl
cr_hazard.vhdl
decode1.vhdl
decode2.vhdl
execute1.vhdl