# alternative 32-64 encoding (4) **current**
this idea gets even simpler. the 55-bit area is eliminated and may only be
-reintroduced by sacrificing parts of EXT200-263.
+reintroduced by sacrificing parts of EXT200-263. however doing so **WILL** damage
+high-performance decode
+
```
|0-5| 6-29 |30 31|32-37 | 38-663 | Description |
```
if PO1 return 64
- elif not PO9 return 32
- elif Word[30:31] = 0b00 return 32
- else return 64
+ elif PO9 return 64
+ else return 32
```
**EXT232-263:**
```
if not PO9 return False
- # eliminate EXT900
- if Word[30:31] == 0b00 return False
# eliminate EXT0xx
if Word[31] == 0b1 return False
- # eliminate EXT900 and reserved areas
- if Word[33:37] != 0b10001 return False
- #
+ # remaining is EXT2xx
return True
```
```
if PO1 return False # or other reserved
if not PO9 return True # prefixed needs more
- # eliminate EXT900
- if Word[30:31] = 0b00 return False
- # eliminate Prefixed-EXT900, RESERVED and EXT200
+ # eliminate EXT2xx
if Word[31] = 0b0 return False
- # eliminate 32-bit Unvec in 64b area
- if Word[30:31] = 0b01 and
- Word[6:29 ] = 0x000000 return False
+ # remaining is EXT0xx
return True
```
**SVP64**:
+|0-5| 6-29 |30 31|32-37 | 38-663 | Description |
+|---|--------|-----|--------|--------|------------------|
+|PO9| xxxx | x x | 010001 | //// | RESERVED |
+|PO9| xxxx | x x | 000001 | //// | RESERVED |
+|PO9| !ZERO | 1 1 | !PO9 | xxxx | SSingle:EXT232-263 |
+|PO9| 0000 | 1 1 | !PO9 | xxxx | Scalar EXT232-263 |
+|PO9| SVRM | 1 0 | !PO9 | xxxx | SVP64:EXT232-263 |
+|PO9| 0000 | 0 1 | Defined Word-instruction | 32-bit EXT300-363 |
+|PO9| !ZERO | 0 1 | Defined Word-instruction | SSingle:EXT000-063 |
+|PO9| SVRM | 0 0 | Defined Word-instruction | SVP64:EXT000-063 |
```
# easy-elimination, first
if not PO9 return False
- if Word[30] = 0b0 return False
- # eliminate anything not SVP64:EXT900
- if Word[30:31] = 0b10 and
- Word[33:37] = 0b10001 and
- Word[62:63] != 0b01 return False
- # eliminate anything not SVP64:EXT200-231
- if Word[31:32] = 0b00 return False
- # all remaining combinations are SVP64:EXTnnn
+ # eliminate anything not SVP64:
+ if Word[31] = 0b1 return False
+ # all remaining are SVP64:EXT0xx/EXT2xx
return True
```
**SVP64Single**:
+|0-5| 6-29 |30 31|32-37 | 38-663 | Description |
+|---|--------|-----|--------|--------|------------------|
+|PO9| xxxx | x x | 010001 | //// | RESERVED |
+|PO9| xxxx | x x | 000001 | //// | RESERVED |
+|PO9| !ZERO | 1 1 | !PO9 | xxxx | SSingle:EXT232-263 |
+|PO9| 0000 | 1 1 | !PO9 | xxxx | Scalar EXT232-263 |
+|PO9| SVRM | 1 0 | !PO9 | xxxx | SVP64:EXT232-263 |
+|PO9| 0000 | 0 1 | Defined Word-instruction | 32-bit EXT300-363 |
+|PO9| !ZERO | 0 1 | Defined Word-instruction | SSingle:EXT000-063 |
+|PO9| SVRM | 0 0 | Defined Word-instruction | SVP64:EXT000-063 |
+
```
# easy-elimination, first
if not PO9 return False