core: Add support for floating-point loads and stores
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 28 Aug 2020 02:49:48 +0000 (12:49 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Thu, 3 Sep 2020 05:14:17 +0000 (15:14 +1000)
commit45cd8f4fc375185544309ffd16d73a7dc5ce1dce
tree907f1c7e119c181d3eda03614619bd9380d16b04
parente1672ea7097b18ab4620afcf651be996ac3a0d00
core: Add support for floating-point loads and stores

This extends the register file so it can hold FPR values, and
implements the FP loads and stores that do not require conversion
between single and double precision.

We now have the FP, FE0 and FE1 bits in MSR.  FP loads and stores
cause a FP unavailable interrupt if MSR[FP] = 0.

The FPU facilities are optional and their presence is controlled by
the HAS_FPU generic passed down from the top-level board file.  It
defaults to true for all except the A7-35 boards.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
18 files changed:
common.vhdl
control.vhdl
core.vhdl
decode1.vhdl
decode2.vhdl
decode_types.vhdl
execute1.vhdl
fpga/top-arty.vhdl
fpga/top-generic.vhdl
fpga/top-nexys-video.vhdl
gpr_hazard.vhdl
insn_helpers.vhdl
loadstore1.vhdl
microwatt.core
register_file.vhdl
scripts/fmt_log/fmt_log.c
soc.vhdl
writeback.vhdl