[libre-riscv-dev] [Bug 313] Create Branch Pipeline for POWER9
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Fri May 15 18:41:09 BST 2020
https://bugs.libre-soc.org/show_bug.cgi?id=313
--- Comment #2 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Michael Nolan from comment #1)
> I'm working on defining the pipeline data type for this, and I'm wondering
> how I should handle the CR input. Conditional branches can branch on any of
> the 32 bits in the cr, so I think it should take in the entire CR.
there is a selector in the insn, right? that is the "CR" equivalent of the RA,
RB, RS and RT fields.
> However,
> I suspect we'll be implementing cr0..cr7 as separate 4 bit registers to
> avoid false dependencies, so making the branch take in the whole register
> would complicate matters
yes those are the two ways to do it:
A treat CR as separate 4 bit regs.
B treat it as one 64 bit reg
scheme A requires 8 regs as input if you need the full CR. 8 inputs from the
Dependency Matrices is a bit much.
sometimes however you need the full 64 bit. i do have a Dep Matrix strategy for
both, it involves a vector grouping system:
* both A and B are available, however q request for CR0 read will *also* set a
request for the *whole* 64 bits of CR.
something like that.
however, it is complicated.
so for now, i think we just go with full 64 bit. annoying as that is.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-riscv-dev
mailing list