(no commit message)
authorlkcl <lkcl@web>
Tue, 6 Jun 2023 17:31:22 +0000 (18:31 +0100)
committerIkiWiki <ikiwiki.info>
Tue, 6 Jun 2023 17:31:22 +0000 (18:31 +0100)
openpower/sv/po9_encoding/discussion.mdwn

index ba24a3505fd2d1a669f3930b60ef2c4758db7d81..a61d0a38a8b74da82f2c4f4a1775db6889a1a124 100644 (file)
@@ -1,11 +1,27 @@
 # alternative 32-64 encoding
 
-| 0-5 | 6-29  | 30-31| 32 |33-63|Description                        |
-|-----|-------|------|----|-----|---------------------------------|
-| PO9 | xxxx  | x  0 |  0 | xxxx|  `RESERVED2` (57-bit) |
-| PO9 | !zero | 0  0 |  1 | DWd | SVP64Single:EXT232-263, or `RESERVED3` |
-| PO9 | 0000  | 0  0 |  1 | DWd | Scalar EXT232-263               |
-| PO9 | nnnn  | 1  0 |  1 | DWd | SVP64:EXT232-263     |
-| PO9 | 0000  | 0  1 |  x | xxxx| `RESERVED1` (32-bit) |
-| PO9 | !zero | 0  1 |  n | DWd | SVP64Single:EXT000-063 |
-| PO9 | nnnn  | 1  1 |  n | DWd | SVP64:EXT000-063       |
+```
+| 0-5 | 6-27 28 29 | 30-31| 32 |33-63| Description                        |
+|-----|------------|------|----|-----|------------------------------------|
+| PO9 | xxx    0 0 | 0  0 |  0 | xxxx| 55-bit `RESERVED`                  |
+| PO9 | xxx    0 1 | 0  0 |  0 | xxxx| 32-bit Unvectorizable instructions |
+| PO9 | xxx    1 0 | 0  0 |  0 | xxxx| 32-bit Unvectorizable instructions |
+| PO9 | xxx    1 1 | 0  0 |  0 | xxxx| 32-bit Unvectorizable instructions |
+| PO9 |    !zero   | 0  0 |  1 | DWd | SVP64Single:EXT232-263             |
+| PO9 |    0000    | 0  0 |  1 | DWd | Scalar EXT232-263                  |
+| PO9 |    nnnn    | 1  0 |  1 | DWd | SVP64:EXT232-263                   |
+| PO9 |    0000    | 0  1 |  x | xxxx| 32-bit Unvectorizable instructions |
+| PO9 |    !zero   | 0  1 |  n | DWd | SVP64Single:EXT000-063             |
+| PO9 |    nnnn    | 1  1 |  n | DWd | SVP64:EXT000-063                   |
+```
+
+Length detection:
+
+```
+    if PO1                  return 64
+    if not PO9              return 32
+    if Word[31] = 1         return 64
+    if Word[28:31] = 0b0000 return 64
+    return 32
+```
+