From: lkcl Date: Thu, 18 Aug 2022 23:43:37 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~837 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ae672834f8bff2378668e3f5673b043ebbaf79c4;p=libreriscv.git --- diff --git a/openpower/sv/remap.mdwn b/openpower/sv/remap.mdwn index 485a27046..45e5f9c44 100644 --- a/openpower/sv/remap.mdwn +++ b/openpower/sv/remap.mdwn @@ -229,12 +229,18 @@ 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. +The cost compared to Matrix and other REMAPs (and Pack/Unpack) is +clearly that of the additional reading of the GPRs to be used as Indices, +plus the setup cost associated with creating those same Infices. +If any Deterministic REMAP can cover the required task, clearly it +is adviseable to use it instead. + *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, +an `sv.cmp *BF,*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-1* +with an Index exceeding VL-1.* # REMAP area of SVSTATE