(no commit message)
authorlkcl <lkcl@web>
Fri, 9 Jun 2023 12:38:23 +0000 (13:38 +0100)
committerIkiWiki <ikiwiki.info>
Fri, 9 Jun 2023 12:38:23 +0000 (13:38 +0100)
openpower/sv/po9_encoding/discussion.mdwn

index d394c3842c1f8385433600462a7cb784a72aba58..5a739b338ff879cfa0e50e5b93a381d2496dd349 100644 (file)
@@ -127,6 +127,10 @@ unavailable (used by EXT900).
 |PO9|  nnnn  | 1 1 | Defined Word-instruction | SVP64:EXT000-063   |
 ```
 
+The following identification-criteria may be easily verified by taking
+a copy of the table above and striking out each line that fails each
+test.  Only EXT000-063 are not by a "process of elimination"
+
 Length detection:
 
 ```
@@ -197,3 +201,53 @@ EXT200-231:
     # all remaining combinations are SVP64:EXTnnn
     return True
 ```
+
+**SVP64Single**:
+
+```
+    # easy-elimination, first
+    if not PO9                 return False
+    # eliminate 32-bit EXT900
+    if Word[30:31] =  0b00     return False
+    # eliminate SVP64:EXT000-063
+    if Word[30:31] =  0b11     return False
+    # eliminate anything "Identity"
+    if  Word[6:29 ] =  0x000000 return False
+    # eliminate SVP64:EXT200-231
+    if Word[30:32] =  0b101     return False
+    # eliminate anything not SSingle:EXT900
+    if Word[30:31] =  0b10 and
+       Word[33:37] = 0b10001 and
+       Word[62:63] != 0b00      return False
+    # everything left is SVP64Single
+    return True
+```
+
+**RESERVED**: (no need to pass for further detailed decode)
+
+```
+    # easy-elimination, first
+    if not PO9                 return False
+    # eliminate EXT900
+    if Word[30:31] =  0b00     return False
+    # eliminate SVP64:EXT000-031
+    if Word[30:31] =  0b11     return False
+    # eliminate SSingle:EXT000-063
+    if Word[6:29 ] != 0x000000 and
+       Word[30:31]  =  0b01    return False
+    # eliminate EXT200-231
+    if Word[30:31] =  0b10 and
+       Word[33:37] = 0b10001   return False
+    # eliminate SSingle:EXT900
+    if Word[30:31] =  0b10 and
+       Word[6:29 ] != 0x000000 and
+       Word[33:37] = 0b10001 and
+       Word[62:63] = 0b00      return False
+    # eliminate SVP64:EXT900
+    if Word[30:31] =  0b10 and
+       Word[33:37] = 0b10001 and
+       Word[62:63] = 0b01      return False
+    # all else needs further detailed decode
+    return True
+```
+