*/
nir_address_format_32bit_index_offset,
+ /**
+ * An address format which is a simple 32-bit offset.
+ */
+ nir_address_format_32bit_offset,
+
/**
* An address format representing a purely logical addressing model. In
* this model, all deref chains must be complete from the dereference
case nir_address_format_64bit_global: return 64;
case nir_address_format_64bit_bounded_global: return 32;
case nir_address_format_32bit_index_offset: return 32;
+ case nir_address_format_32bit_offset: return 32;
case nir_address_format_logical: return 32;
}
unreachable("Invalid address format");
case nir_address_format_64bit_global: return 1;
case nir_address_format_64bit_bounded_global: return 4;
case nir_address_format_32bit_index_offset: return 2;
+ case nir_address_format_32bit_offset: return 1;
case nir_address_format_logical: return 1;
}
unreachable("Invalid address format");
switch (addr_format) {
case nir_address_format_32bit_global:
case nir_address_format_64bit_global:
+ case nir_address_format_32bit_offset:
assert(addr->num_components == 1);
return nir_iadd(b, addr, offset);
nir_u2u64(b, nir_channel(b, addr, 3)));
case nir_address_format_32bit_index_offset:
+ case nir_address_format_32bit_offset:
case nir_address_format_logical:
unreachable("Cannot get a 64-bit address with this address format");
}