[libre-riscv-dev] [Bug 333] investigate why CR pipeline code took 100% CPU and locked up generating ILANG

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Wed May 20 20:39:19 BST 2020


https://bugs.libre-soc.org/show_bug.cgi?id=333

--- Comment #6 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
this is dreadful:

                for i in range(4):
                    comb += cr_out_arr[bf*4 + i].eq(cr_arr[bfa*4 + i])

the computation of the index is done almost a hundred times or more.
32x4 times.

for now it can be done again with a mask (shifted).  two masks - one
to shift-extract cr[bfa*4..+4], shift by the *difference* between
bf and bfa then bit-mask in.

dreadful.

we really need to split CR out into its 8 separate CRs.  XER's fields
are going to have to be done this way anyway.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-riscv-dev mailing list