Mesa (main): isaspec: Extend split_bits(..) to accept a bitsize
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 14 13:11:41 UTC 2022
Module: Mesa
Branch: main
Commit: 119d8488ddc78cf83a93ffb25893dd26c9c23eed
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=119d8488ddc78cf83a93ffb25893dd26c9c23eed
Author: Christian Gmeiner <christian.gmeiner at gmail.com>
Date: Tue Jun 7 17:38:50 2022 +0200
isaspec: Extend split_bits(..) to accept a bitsize
Make split_bits(..) more generic.
Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Reviewed-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16996>
---
src/compiler/isaspec/decode.py | 8 ++++----
src/compiler/isaspec/isa.py | 10 +++++-----
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/compiler/isaspec/decode.py b/src/compiler/isaspec/decode.py
index 9f50dc94a11..1ee7cd29b4d 100755
--- a/src/compiler/isaspec/decode.py
+++ b/src/compiler/isaspec/decode.py
@@ -145,7 +145,7 @@ static const struct isa_case ${case.get_c_name()}_gen_${bitset.gen_min} = {
.enums = &${isa.enums[field.type].get_c_name()},
% endif
% if field.get_c_typename() == 'TYPE_ASSERT':
- .val.bitset = { ${', '.join(isa.split_bits(field.val))} },
+ .val.bitset = { ${', '.join(isa.split_bits(field.val, 32))} },
% endif
},
% endfor
@@ -162,9 +162,9 @@ static const struct isa_bitset bitset_${bitset.get_c_name()}_gen_${bitset.gen_mi
.min = ${bitset.get_gen_min()},
.max = ${bitset.get_gen_max()},
},
- .match.bitset = { ${', '.join(isa.split_bits(pattern.match))} },
- .dontcare.bitset = { ${', '.join(isa.split_bits(pattern.dontcare))} },
- .mask.bitset = { ${', '.join(isa.split_bits(pattern.mask))} },
+ .match.bitset = { ${', '.join(isa.split_bits(pattern.match, 32))} },
+ .dontcare.bitset = { ${', '.join(isa.split_bits(pattern.dontcare, 32))} },
+ .mask.bitset = { ${', '.join(isa.split_bits(pattern.mask, 32))} },
.num_cases = ${len(bitset.cases)},
.cases = {
% for case in bitset.cases:
diff --git a/src/compiler/isaspec/isa.py b/src/compiler/isaspec/isa.py
index 6575f0b2e9b..8f53df124ab 100644
--- a/src/compiler/isaspec/isa.py
+++ b/src/compiler/isaspec/isa.py
@@ -551,14 +551,14 @@ class ISA(object):
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
+ def split_bits(self, value, bitsize):
+ ''' Split `value` into a list of bitsize-bit integers '''
+ mask, parts = (1 << bitsize) - 1, []
+ words = self.bitsize / bitsize
while value:
parts.append(hex(value & mask))
- value >>= 32
+ value >>= bitsize
# Add 'missing' words
while len(parts) < words:
More information about the mesa-commit
mailing list