d9563c17fda2943b401b99f039eb67b92483ea46
[libreriscv.git] / openpower / sv / po9_encoding / discussion.mdwn
1 # alternative 32-64 encoding
2
3 ```
4 | 0-5 | 6-28 29 | 30-31| 32 |33-63| Description |
5 |-----|---------|------|----|-----|------------------------------------|
6 | PO9 | xxx | 0 | 0 0 | 000000 DWd | SVP64:EXT900 |
7 | PO9 | xxx | 1 | 0 0 | 32-bit EXT900 |
8 | PO9 | !zero | 0 0 | 1 | DWd | SVP64Single:EXT232-263 |
9 | PO9 | 0000 | 0 0 | 1 | DWd | Scalar EXT232-263 |
10 | PO9 | nnnn | 1 0 | 1 | DWd | SVP64:EXT232-263 |
11 | PO9 | 0000 | 0 1 | x | xxxx| 32-bit Unvectorizable (in 64-bit) |
12 | PO9 | !zero | 0 1 | n | DWd | SVP64Single:EXT000-063 |
13 | PO9 | nnnn | 1 1 | n | DWd | SVP64:EXT000-063 |
14 ```
15
16 Length detection:
17
18 ```
19 if PO1 return 64
20 elif not PO9 return 32
21 elif Word[31] = 1 return 64
22 elif Word[29:30] = 0b10 return 32
23 elif Word[29:30] = 0b00 return 64
24 else return 32
25 ```
26