add hack overloaded meaning of destwid to be pack/unpack.
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 12 Sep 2022 21:36:29 +0000 (22:36 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 12 Sep 2022 21:36:29 +0000 (22:36 +0100)
only supposed to be used on sv.setvl

src/openpower/sv/trans/svp64.py

index bd5f9b763515a0d28fd6c281524fa85971fedb3d..c9436e9c1498adf797af91a3ee04140500c902a2 100644 (file)
@@ -1094,6 +1094,13 @@ class SVP64Asm:
                 destwid = decode_elwidth(encmode[3:])
             elif encmode.startswith("sw="):
                 srcwid = decode_elwidth(encmode[3:])
+            # HACK! using destwid for pack/unpack TODO, separate setvl RM
+            elif encmode == 'pk':
+                destwid = 0b10
+            elif encmode == 'up':
+                destwid = 0b01
+            elif encmode == 'pu':
+                destwid = 0b11
             # element-strided LD/ST
             elif encmode == 'els':
                 ldst_elstride = 1
@@ -1647,6 +1654,12 @@ if __name__ == '__main__':
         'sv.ffmadds 6.v, 2.v, 4.v, 6.v',  # correctly converted to .long
         'svshape2 8, 1, 31, 7, 1, 1',
     ]
+    lst = [
+        'sv.setvl 2, 3, 4, 0, 1, 1',
+        'sv.setvl/pk 2, 3, 4, 0, 1, 1',
+        'sv.setvl/up 2, 3, 4, 0, 1, 1',
+        'sv.setvl/pu 2, 3, 4, 0, 1, 1',
+    ]
     isa = SVP64Asm(lst, macros=macros)
     log("list:\n", "\n\t".join(list(isa)))
     # running svp64.py is designed to test hard-coded lists