FPU: Implement frsqrte[s] and a test for frsqrte
authorPaul Mackerras <paulus@ozlabs.org>
Thu, 30 Jul 2020 06:11:58 +0000 (16:11 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Thu, 3 Sep 2020 07:45:30 +0000 (17:45 +1000)
commit394f993e75abaf1d23eba046c8bec59664439b3d
tree94f13c60ec351a502dca8e30e3ee9f40ea72542b
parente1bbb786c078b7ecdae7d027860d44949eb87bb2
FPU: Implement frsqrte[s] and a test for frsqrte

This implements frsqrte by table lookup.  We first normalize the input
if necessary and adjust so that the exponent is even, giving us a
mantissa value in the range [1.0, 4.0), which is then used to look up
an entry in a 768-entry table.  The 768 entries are appended to the
table for reciprocal estimates, giving a table of 1024 entries in
total.  frsqrtes is implemented identically to frsqrte.

The estimate supplied is accurate to 1 part in 1024 or better.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
decode1.vhdl
fpu.vhdl
tests/fpu/fpu.c
tests/test_fpu.bin
tests/test_fpu.console_out