[libre-riscv-dev] [Bug 313] Create Branch Pipeline for POWER9

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Jun 2 20:09:36 BST 2020


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

--- Comment #44 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Michael Nolan from comment #43)
> (In reply to Luke Kenneth Casson Leighton from comment #42)
> > michael i saw the change in fu/branch/test_pipe_caller.py to use spr2.
> > it now needs to be read_fast1.data and read_fast2.data,
> > not read_spr1.data and read_spr2.data.
> 
> How do you think TAR should be handled? Should it be a fast SPR as well?

yes.  it's accessed often enough.

if you can hack that into DecodeA and DecodeB, such that this is in
power_decoder2.py
rather than in the unit test, it would be great:

       insn_type = yield dec2.e.insn_type
        if insn_type == InternalOp.OP_BCREG.value:
            xo9 = yield dec2.dec.FormXL.XO[9]
            xo5 = yield dec2.dec.FormXL.XO[5]
            if xo9 == 0:
                yield branch.p.data_i.spr2.eq(sim.spr['LR'].value)
            elif xo5 == 1:
                yield branch.p.data_i.spr2.eq(sim.spr['TAR'].value)
            else:
                yield branch.p.data_i.spr2.eq(sim.spr['CTR'].value)

then, read_fast1 and read_fast2 can be used in both unit tests:
fu/compunit/test/test_branch_compunit.py
and
fu/branch/test/test_pipe_caller.py

if you can handle the modifications to power_decoder2.py that would be
great.

bear in mind that DecodeA reads CTR, (which goes into read_fast1)
and DecodeB reads LR or TAR (which goes into read_fast2).

so the above test needs to be split.

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


More information about the libre-riscv-dev mailing list