[libre-riscv-dev] IEEE754 FPU turning into ALU with Reservation Stations
programmerjake at gmail.com
Thu Mar 14 05:54:45 GMT 2019
On Wed, Mar 13, 2019 at 10:48 PM Luke Kenneth Casson Leighton <lkcl at lkcl.net>
> On Thu, Mar 14, 2019 at 3:19 AM Luke Kenneth Casson Leighton <
> lkcl at lkcl.net>
> let's work to get FPMul back up and running, first, ok?
> gaah, finally, that was a pain in the ass. i'd forgotten to add the
> submodules to the fmul class:
> + m.submodules.of = of
> + m.submodules.a = a
> + m.submodules.b = b
> + m.submodules.z = z
> consequently all the logic in those modules wasn't being done:
> is_denormalised and all the other tests were all failing.
> so, what i suggest, aleksander, is to *slowly* proceed in an *incremental*
> fashion, keeping FMul running *at all times*.
> it's possible to run thousands to tens of thousands of unit tests to make
> absolutely sure that even the smallest code change remains functional and
> does not result in the wrong answers being generated.
> once you are "off that path" of generating the wrong answers all the time,
> it is an absolute hellish nightmare to get back on track. you have *no
> idea* which *combination* of changes will happen, by total random chance,
> to produce the right answer.
> i just spent about 2 hours debugging FMul, having to go back to git
> checkout 1ad14, take screenshots of gtkwave, git checkout master, run the
> (failing) test again, and compare the screenshot against the (failing)
> gtkwave display in order to track down which function was failing.
> jacob: just to emphasise - again - *this is why unit tests are so
> absolutely absolutely critical*.
currently busy tracking down a bug in atom, which is written in JS and
apparently doesn't have enough unit tests. The rust language server is
randomly barfing on a python only project and I'm trying to get the output
of the language server so I can file a useful bug report. It usually works
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
More information about the libre-riscv-dev