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

index da92f80436b7b4914bd1cdb5b68b58482433def3..67df273a731f6a6f8fa3dec4ed3b329a32775b16 100644 (file)
@@ -149,24 +149,51 @@ EXT200-231:
 EXT900:
 
 ```
+    # easy first step
     if not PO9                 return False
-    if Word[30:31] != 0b00     return False
-    if Word[62]    =  0b1      return False
-    if Word[62:63] =  0b00 and
+    # eliminate EXT0xx, 32-Unvec-in-64b
+    if Word[31] = 0b1          return False
+    # eliminate EXT2xx
+    if Word[30:31] =  0b10 and
+       Word[33:37] != 0b10001   return False
+    # eliminate currently-RESERVED areas
+    if Word[30:31] =  0b10 and
+       Word[62]    =  0b1      return False
+    # eliminate final RESERVED area
+    if Word[30:31] =  0b10 and
+       Word[62:63] =  0b00 and
        Word[6:29 ] =  0x000000 return False
+    # last-remaining is EXT900
     return True
 ```
 
-EXT000-063:
+**EXT000-063**: (includes Prefixed)
 
 ```
     if PO1                     return False # or other reserved
-    if not PO9                 return False
+    if not PO9                 return True  # prefixed needs more
+    # eliminate EXT900
     if Word[30:31] =  0b00     return False
+    # eliminate Prefixed-EXT900, RESERVED and EXT200
     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
     return True
 ```
 
+**SVP64**:
 
+```
+    # easy-elimination, first
+    if Word[30]    =  0b0      return False
+    if not PO9                 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
+    return True
+```