mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 20:58:04 +02:00
i965/vec4: add a byte_offset helper
v2: wrap the helper in a namespace to make clear that it is an
implementation detail of byte_offset() and is not intended
to be used independently (Curro).
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
173558445d
commit
5a4ce9f9a7
1 changed files with 50 additions and 0 deletions
|
|
@ -60,6 +60,49 @@ retype(src_reg reg, enum brw_reg_type type)
|
|||
return reg;
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
||||
static inline void
|
||||
add_byte_offset(backend_reg *reg, unsigned bytes)
|
||||
{
|
||||
switch (reg->file) {
|
||||
case BAD_FILE:
|
||||
break;
|
||||
case VGRF:
|
||||
case ATTR:
|
||||
case UNIFORM:
|
||||
reg->offset += bytes;
|
||||
assert(reg->offset % 16 == 0);
|
||||
break;
|
||||
case MRF: {
|
||||
const unsigned suboffset = reg->offset + bytes;
|
||||
reg->nr += suboffset / REG_SIZE;
|
||||
reg->offset = suboffset % REG_SIZE;
|
||||
assert(reg->offset % 16 == 0);
|
||||
break;
|
||||
}
|
||||
case ARF:
|
||||
case FIXED_GRF: {
|
||||
const unsigned suboffset = reg->subnr + bytes;
|
||||
reg->nr += suboffset / REG_SIZE;
|
||||
reg->subnr = suboffset % REG_SIZE;
|
||||
assert(reg->subnr % 16 == 0);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
assert(bytes == 0);
|
||||
}
|
||||
}
|
||||
|
||||
} /* namepace detail */
|
||||
|
||||
static inline src_reg
|
||||
byte_offset(src_reg reg, unsigned bytes)
|
||||
{
|
||||
detail::add_byte_offset(®, bytes);
|
||||
return reg;
|
||||
}
|
||||
|
||||
static inline src_reg
|
||||
offset(src_reg reg, unsigned delta)
|
||||
{
|
||||
|
|
@ -129,6 +172,13 @@ retype(dst_reg reg, enum brw_reg_type type)
|
|||
return reg;
|
||||
}
|
||||
|
||||
static inline dst_reg
|
||||
byte_offset(dst_reg reg, unsigned bytes)
|
||||
{
|
||||
detail::add_byte_offset(®, bytes);
|
||||
return reg;
|
||||
}
|
||||
|
||||
static inline dst_reg
|
||||
offset(dst_reg reg, unsigned delta)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue