From: lkcl Date: Thu, 8 Jun 2023 14:30:22 +0000 (+0100) Subject: (no commit message) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6ace5c12fc5decd5b25022286362f0e7cb5192af;p=libreriscv.git --- diff --git a/openpower/sv/po9_encoding/discussion.mdwn b/openpower/sv/po9_encoding/discussion.mdwn index 609dc6172..4e8555b64 100644 --- a/openpower/sv/po9_encoding/discussion.mdwn +++ b/openpower/sv/po9_encoding/discussion.mdwn @@ -5,7 +5,7 @@ |---|-----|-----|-----|--|-----|-----|-------|-------|------------------| |PO9| rm0 | 0 0 | 0 0 | 0 000 rm1 | xxxx | 0000 | SVP64:EXT900 | |PO9| rm0 | 0 0 | 0 0 | 1 000 rm1 | xxxx | 0000 | SSingle:EXT900 | -|PO9| xxx | x 0 | 0 0 | x !zero | xxxx | !zero | 55-bit RESERVED | +|PO9| xxx | x 0 | 0 0 | x !zero0 | xxxx | !zero1| 55-bit RESERVED | |PO9| xxx | 0 1 | 0 0 | 32-bit EXT900 (Vectorizable) | |PO9| xxx | 1 1 | 0 0 | 32-bit EXT901 (Unvectorizable) | |PO9| !ZERO | 0 0 | 1 | DWi | SSingle:EXT232-263 | @@ -20,6 +20,7 @@ Fields: * `RM`: 24-bit SVP64 prefix * `RM <- rm0 || rm1` split field +* `!zero0 || !zero1` a split field that must not be zero Length detection: @@ -48,10 +49,18 @@ Instruction allocation restrictions: the complexity of attempting to fit 32-bit instructions into PO9 is very high. encoding (1) attempts to fit `setvl` etc. into -32-bit but it is very tight. +32-bit but it is very tight. the entire EXT900 area would be +taken up by the SVP64 Management instructions, below, defeating +the purpose of having it. + +* `setvl` - Unvectorizable, EXT0xx, `RT RA CTR SVSTATE`, 6-bit XO (including Rc=1) +* `psetvl` - Unvectorizable, EXT1xx, ditto +* `svstep` - Vectorizable, either EXT900 (very precious) or EXT1xx (better), `RT, SVSTATE`, 6-bit XO (including Rc=1) +* `svindex` - Unvectorizable, EXT0xx, `SVSTATE,SVSHAPE0-3`, 5-bit XO +* `psvindex` - Unvectorizable, EXT1xx, ditto +* `svstep(2)` - Unvectorizable, EXT0xx, `SVSTATE,SVSHAPE0-3`, 5-bit XO +* `svstep(2)` - Unvectorizable, EXT1xx, ditto -* `setvl` - Unvectorizable, EXT0xx, 6-bit XO (including Rc=1) -* `psetvl` - Unvectorizable, EXT1xx ``` @@ -59,7 +68,7 @@ PO9 is very high. encoding (1) attempts to fit `setvl` etc. into |---|-----|--------|--|-----|---|-------|-------|------------------| |PO9| rm0 | 0 0 0 | 0 0000 rm1| xxxx | 000 | SVP64:EXT900 | |PO9| rm0 | 0 0 0 | 1 0000 rm1| xxxx | 000 | SSingle:EXT900 | -|PO9| xxx | 0 0 0 | x !zero | xxxx | !zero | 55-bit RESERVED | +|PO9| xxx | 0 0 0 | x !zero0 | xxxx | !zero1 | 55-bit RESERVED | |PO9| xxx | 1 0 0 | 32-bit EXT900 | |PO9| !ZERO | 0 0 | 1 | DWi | SSingle:EXT232-263 | |PO9| 0000 | 0 0 | 1 | DWi | Scalar EXT232-263 |