From: lkcl Date: Wed, 17 Aug 2022 07:09:28 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~846 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=79fa66bc682ab53288215395c3db5995f59f4e21;p=libreriscv.git --- diff --git a/openpower/sv/remap.mdwn b/openpower/sv/remap.mdwn index 49a1d0863..485a27046 100644 --- a/openpower/sv/remap.mdwn +++ b/openpower/sv/remap.mdwn @@ -197,7 +197,7 @@ extsw: there is no artificial limit. The only major caveat is that the registers to be used as Indices must not be modified by any instruction after Indexed Mode is established, and neither must MAXVL be altered. Additionally, -no register used as an Index may exceed MAXVL. +no register used as an Index may exceed MAXVL-1. Failure to observe these conditions results in `UNDEFINED` behaviour. @@ -229,12 +229,12 @@ all *already* critically depend on overlapping Reads/Writes: Matrix uses overlapping registers as accumulators. Thus the Register Hazard Management needed by Indexed REMAP *has* to be in place anyway. -*Programmer's note: some algorithms may require truncating permutations -to VL, not MAXVL. This may be achieved programmatically by performing +*Programmer's note: some algorithms may require skipping of Indices exceeding +VL-1, not MAXVL-1. This may be achieved programmatically by performing a `sv.cmp *RA,RB` where RA is the same GPRs used in the Indexed REMAP, and RB contains the value of VL returned from `setvl`. The resultant CR Fields may then be used as Predicate Masks to exclude those operations -with an Index exceeding VL* +with an Index exceeding VL-1* # REMAP area of SVSTATE