freedreno/isa: add split_bits(..) methods
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Fri, 28 May 2021 08:15:24 +0000 (10:15 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 21 Sep 2021 20:25:31 +0000 (20:25 +0000)
Will be used to split a value into needed number of 32 bit words.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11321>

src/freedreno/isa/isa.py

index 8f5dfe0..d3264f2 100644 (file)
@@ -514,3 +514,18 @@ class ISA(object):
             parts.append('v[' + str(i) + ']')
 
         return ', '.join(parts)
+
+    def split_bits(self, value):
+        ''' Split `value` into a list of 32-bit integers '''
+        mask, parts = (1 << 32) - 1, []
+        words = self.bitsize / 32
+
+        while value:
+            parts.append(hex(value & mask))
+            value >>= 32
+
+        # Add 'missing' words
+        while len(parts) < words:
+            parts.append('0x0')
+
+        return parts