[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


--- 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
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)
                yield branch.p.data_i.spr2.eq(sim.spr['CTR'].value)

then, read_fast1 and read_fast2 can be used in both unit tests:

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

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