From: lkcl Date: Fri, 2 Sep 2022 22:36:28 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~723 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=107bc862addc09dc24a991d77821c11829e12695;p=libreriscv.git --- diff --git a/openpower/sv/remap.mdwn b/openpower/sv/remap.mdwn index 94946b19a..26f5b945f 100644 --- a/openpower/sv/remap.mdwn +++ b/openpower/sv/remap.mdwn @@ -633,6 +633,28 @@ whilst `mm=1` is intended to be a little more refined. Beyond these mappings it becomes necessary to write directly to the SVSTATE SPRs manually. +# svshape2 (offset) + +`svshape2` is an additional convenience instruction that prioritises +setting `SVSHAPE.offset`. It has similar cap + + svshape2 offs,inv,yx,rmm,SVd,sk,mm + +| 0.5|6..8|9 |10|11.15 |16..20 | 21..25 | 25 | 26..31| name | +| -- |----|---|--| --- | ----- | ------ | -- | ------| -------- | +|OPCD|offs|inv|yx| rmm | SVd | 100/mm | sk | XO | svshape | + +* **offs** (3 bits) - unsigned offset +* **yx** (1 bit) - swap XY to YX +* **inv** (1 bit) inverts X if yx=0, Y if yx=1 +* **SVd** dimension size +* **rmm** REMAP mask +* **mm** mask mode +* **sk** (1 bit) skips 1st dimension if set + +Dimensions are calculated exactly as `svindex`. `rmm` and +`mm` are as per `svindex`. + # TODO