Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20541>
static inline uint64_t
bitmask_to_uint64_t(bitmask_t mask)
{
+% if isa.bitsize <= 32:
+ return mask.bitset[0];
+% else:
return ((uint64_t)mask.bitset[1] << 32) | mask.bitset[0];
+% endif
}
static inline bitmask_t
{
bitmask_t mask = {
.bitset[0] = val & 0xffffffff,
+% if isa.bitsize > 32:
.bitset[1] = (val >> 32) & 0xffffffff,
+% endif
};
return mask;
static inline uint64_t
bitmask_to_uint64_t(bitmask_t mask)
{
+% if isa.bitsize <= 32:
+ return mask.bitset[0];
+% else:
return ((uint64_t)mask.bitset[1] << 32) | mask.bitset[0];
+% endif
}
static inline bitmask_t
{
bitmask_t mask = {
.bitset[0] = val & 0xffffffff,
+% if isa.bitsize > 32:
.bitset[1] = (val >> 32) & 0xffffffff,
+% endif
};
return mask;
self.leafs.setdefault(b.name, []).append(b)
def validate_isa(self):
+ # We only support multiples of 32 bits for now
+ assert self.bitsize % 32 == 0
+
# Do one-time fixups
# Remove non-leaf nodes from the leafs table:
for name, bitsets in list(self.leafs.items()):