[Libre-soc-isa] [Bug 1056] questions and feedback (v2) on OPF RFC ls010

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Thu May 25 16:10:49 BST 2023


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

--- Comment #14 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Paul Mackerras from comment #4)

> In this and subsequent paragraphs, you keep hammering on the idea that the
> underlying scalar instruction is (a) a word instruction 

this is mandatory and inviolate, yes.

> and (b) completely unchanged in its behaviour.

except for elwidth-overrides, yes.

it goes like this:

  for i in range(VL):
      {DO_SCALAR_DEFINED_WORD_INSTRUCTION}

where predication would be:

  for i in range(VL):
      if predicate_mask[i]:
          {DO_SCALAR_DEFINED_WORD_INSTRUCTION}

the instruction *hasn't* changed - not in the slightest bit - just because it
is predicated.

> Neither is in fact true. As to the unchanged
> behaviour, it is not clear why that would be so crucially important even if
> it were true.

dramatic simplification of Decode Phase.

> Instead it would be far more helpful to put a complete list of the ways that
> the behaviour of the underlying instruction is (or can be) changed.

strictly-speaking: element-width overrides, and that's it.
that's the *only* change, and that's covered by ls005.xlen.

  for i in range(SVSTATE.VL):
      if PREFIX.elwidth == 8:
          {DO_SCALAR_DEFINED_WORD_INSTRUCTION... BUT @ XLEN=8-bit}
      else if PREFIX.elwidth == 16:
          {DO_SCALAR_DEFINED_WORD_INSTRUCTION... BUT @ XLEN=16-bit}
      else if PREFIX.elwidth == 32:
          {DO_SCALAR_DEFINED_WORD_INSTRUCTION... BUT @ XLEN=32-bit}
      else if PREFIX.elwidth == 64:
          {DO_SCALAR_DEFINED_WORD_INSTRUCTION... BUT @ XLEN=64-bit}

that *still* does not imply that the actual Defined Word Instruction
itself "changed" [became a multiply instead of an add, had access
to other operands, etc.]

the looping *REALLY IS* a completely separate concept from the
{execution-of-the-Defined-Word-Instruction} - it *REALLY IS*
a Sub-Current-Execution-Counter (CIA.SVSTATE)


(strictly-speaking not so for Register numbers, which techincally
 become "split fields" - but i demonstrate here why attempting to
 put those into the actual RTL - of every single damn instruction -
 would be absolute hell
 https://libre-soc.org/openpower/sv/ls010/hypothetical_addi/ )

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


More information about the Libre-SOC-ISA mailing list