[Libre-soc-dev] LD/ST Elwidth Overrides
programmerjake at gmail.com
Thu Sep 2 18:26:52 BST 2021
On Thu, Sep 2, 2021, 03:56 lkcl <luke.leighton at gmail.com> wrote:
> On September 1, 2021 8:48:43 PM UTC, Jacob Lifshay <
> programmerjake at gmail.com> wrote:
> >idk, but the point is the encoding supports it, so we have to account
> >malicious programmers.
> thought about it: no *we*, as spec writers, do not. the *hardware
> implementors* have to take responsibility for that.
> in many cases when writing specifications the delineation and separation
> between those two responsibilities is not at all clear, in fact the total
> opposite, they are very closely interrelated. however in this unique and
> special case they are separatable.
> implementors in this particular unique special case *may* choose to
> terminate fail-first at any point.
Umm, I don't think that should be left up to implementers, since iirc the
semantics of ffirst is it fails when it hits a page fault (deterministic
from a spec perspective), not that it fails for any arbitrary reason...
Therefore, the exact algorithm for choosing ffirst stopping point needs to
be in the spec and be deterministic, meaning we need to have strided access
with large strides fail.
How about this: ffirst works in all vector addressing modes (including
strided, gather, unit stride, etc.) but it stops the first time it tries to
access more than 1 page (or some other small spec-determined number such as
2 or 4) regardless if that would cause a page fault or not.
More information about the Libre-soc-dev