From fa14d3478230d61ca239b3c27fb9904e86e46de2 Mon Sep 17 00:00:00 2001 From: lkcl Date: Mon, 6 Jun 2022 11:31:55 +0100 Subject: [PATCH] --- openpower/sv/remap.mdwn | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/openpower/sv/remap.mdwn b/openpower/sv/remap.mdwn index b08ff553f..3294c4954 100644 --- a/openpower/sv/remap.mdwn +++ b/openpower/sv/remap.mdwn @@ -138,7 +138,7 @@ Form: SVM-Form SV "Matrix" Form (see [[isatables/fields.text]]) Fields: -* **SVxd** - SV REMAP "xdim" (SVGPR>>1 for Indexed REMAP) +* **SVxd** - SV REMAP "xdim" * **SVyd** - SV REMAP "ydim" * **SVzd** - SV REMAP "zdim" * **SVRM** - SV REMAP Mode (0b00000 for Matrix, 0b00001 for FFT etc.) @@ -155,8 +155,8 @@ Fields: | 0b0101 | DCT COS table index generation | | 0b0110 | DCT half-swap | | 0b0111 | reserved | -| 0b1000 | Indexed (XY straight) | -| 0b1001 | Indexed (YX swapped) | +| 0b1000 | reserved | +| 0b1001 | reserved | | 0b1010 | iDCT Inner butterfly, pre-calculated coefficients | | 0b1011 | iDCT Outer butterfly | | 0b1100 | iDCT Inner butterfly, on-the-fly (Vertical-First Mode) | @@ -178,6 +178,31 @@ to SVSHAPE0-3 with `mtspr`. Circumstances include Matrices with dimensions larger than 32, and in-place Transpose. Potentially a future v3.1 Prefixed instruction, `psvshape`, may extend the capability here. +# svindex instruction + +`svindex` is a convenience instruction that reduces instruction +count for Indexed REMAP Mode. It sets up +(overwrites) all required SVSHAPE SPRs and also modifies SVSTATE +including VL and MAXVL. Using `svshape` therefore does not also +require `setvl`. + +Form: SVI-Form SV "Indexed" Form (see [[isatables/fields.text]]) + + svshape RS,mask,SVd,ew,vf + +| 0.5|6.10 |11.15 |16.21 | 22.23 | 25 | 26..31| name | +| -- | -- | --- | ---- | ----- | -- | ------| -------- | +|OPCD| RS | mask | SVd | ew | vf | XO | svindex | + +Fields: + +* **SVxd** - SV REMAP "xdim" +* **SVyd** - SV REMAP "ydim" +* **SVzd** - SV REMAP "zdim" +* **SVRM** - SV REMAP Mode (0b00000 for Matrix, 0b00001 for FFT etc.) +* **vf** - sets "Vertical-First" mode +* **XO** - standard 5-bit XO field + # REMAP Matrix pseudocode The algorithm below shows how REMAP works more clearly, and may be -- 2.30.2