[Libre-soc-bugs] [Bug 588] add SVP64 to PowerDecoder2

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Wed Feb 3 21:33:43 GMT 2021


--- Comment #7 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Cesar Strauss from comment #5)

> Or, will it be split in two stages, so you first decode the prefix (if any),
> then you take the result and use it to post-process the result of the scalar
> decoder?

first thing: identify the prefix using this:

then if that is successfully identified as an svp64 instruction, pass in
the next 32 bits *and* the 24-bit ReMap into PowerDecoder2.


now, in theory this could be done in 1 clock cycle, with some MUXes. but for
the FSM it is perfectly fine to take more.

note however:

* the SVP64PowerDecoder2 is used in the *first* FSM (simply to identify
  "is this instruction 32 or 64 bit").

  - if it identifies an svp64 prefix it stores the 24-bit ReMap field
    in a latch, then reads *another* 32 bits

* PowerDecoder2 is used in the *second* FSM, receiving zero in the RM
  field if the *first* FSM identified a 32-bit operation.

first FSM reads from instruction fetch and identifies length.

second FSM does decode-and-execute *only*.

but, long before that is done, the split into two FSMs, and processing of
32-bit instructions *only*, must be carried out.  no involvement of svp64 at

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

More information about the libre-soc-bugs mailing list