mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 08:08:06 +02:00
isaspec: inherite parent's bitset gpu gen requirements
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13300>
This commit is contained in:
parent
d77b9fb518
commit
dff8a0c4cb
2 changed files with 23 additions and 5 deletions
|
|
@ -159,8 +159,8 @@ static const struct isa_bitset bitset_${bitset.get_c_name()} = {
|
|||
% endif
|
||||
.name = "${name}",
|
||||
.gen = {
|
||||
.min = ${bitset.gen_min},
|
||||
.max = ${bitset.gen_max},
|
||||
.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))} },
|
||||
|
|
|
|||
|
|
@ -265,13 +265,13 @@ class BitSet(object):
|
|||
self.encode = BitSetEncode(xml.find('encode'))
|
||||
|
||||
self.gen_min = 0
|
||||
self.gen_max = ~0
|
||||
self.gen_max = 1 << 32 - 1
|
||||
|
||||
for gen in xml.findall('gen'):
|
||||
if 'min' in gen.attrib:
|
||||
self.gen_min = gen.attrib['min']
|
||||
self.gen_min = int(gen.attrib['min'])
|
||||
if 'max' in gen.attrib:
|
||||
self.gen_max = gen.attrib['max']
|
||||
self.gen_max = int(gen.attrib['max'])
|
||||
|
||||
# Collect up the match/dontcare/mask bitmasks for
|
||||
# this bitset case:
|
||||
|
|
@ -338,6 +338,24 @@ class BitSet(object):
|
|||
return parent.get_size()
|
||||
return self.size
|
||||
|
||||
def get_gen_min(self):
|
||||
if self.extends is not None:
|
||||
parent = self.isa.bitsets[self.extends]
|
||||
|
||||
assert (self.gen_min == 0) or (self.gen_min >= parent.get_gen_min()), "bitset {} should not have min gen lower than the parent's one".format(self.name)
|
||||
|
||||
return max(self.gen_min, parent.get_gen_min())
|
||||
return self.gen_min
|
||||
|
||||
def get_gen_max(self):
|
||||
if self.extends is not None:
|
||||
parent = self.isa.bitsets[self.extends]
|
||||
|
||||
assert (self.gen_max == (1 << 32 - 1)) or (self.gen_max <= parent.get_gen_max()), "bitset {} should not have max gen higher than the parent's one".format(self.name)
|
||||
|
||||
return min(self.gen_max, parent.get_gen_max())
|
||||
return self.gen_max
|
||||
|
||||
def get_c_name(self):
|
||||
return get_c_name(self.name)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue